Istio 트래픽 미러링과 지연 주입으로 카오스 테스트
새 버전을 프로덕션에 올리기 직전, “실제 트래픽에서는 어떻게 동작할까”라는 질문에 명쾌하게 답할 수 있는 팀은 많지 않습니다. 스테이징을 통과한 코드가 실 사용자 요청 패턴, 특정 헤더…
새 버전을 프로덕션에 올리기 직전, “실제 트래픽에서는 어떻게 동작할까”라는 질문에 명쾌하게 답할 수 있는 팀은 많지 않습니다. 스테이징을 통과한 코드가 실 사용자 요청 패턴, 특정 헤더…
리드 레플리카는 읽기 부하를 분산하는 가장 손쉬운 확장 수단이지만, 동시에 서비스 데이터 정합성을 가장 흔하게 무너뜨리는 원인이기도 합니다. 방금 작성한 글이 목록에서 사라지거나 결제 직후 잔액이…
동시 접속 수만 건을 처리하는 서버를 운영하다 보면, 애플리케이션 코드는 최적화가 끝났는데도 처리량이 어느 지점에서 벽에 부딪히는 경험을 하게 됩니다. CPU도 메모리도 여유가 있는데 새 연결이…
S3 요금 청구서를 처음 뜯어보면 대부분 놀랍니다. 저장 용량보다 요청·검색 요금이 생각보다 크고, 몇 년째 아무도 읽지 않는 오래된 객체가 여전히 표준 클래스에서 최고 단가로 과금되고…
Kafka를 운영하다 보면 결국 마주하는 지표가 컨슈머 랙(consumer lag)입니다. 프로듀서가 쌓아 놓은 마지막 오프셋(LOG-END-OFFSET)과 컨슈머가 커밋한 오프셋(CURRENT-OFFSET)의 차이, 즉 “아직 처리하지 못한 메시지 수”입니다. 랙이 일정하면…
쿠버네티스 클러스터를 처음 띄우면 모든 파드는 서로 자유롭게 통신할 수 있습니다. 프론트엔드 파드가 결제 DB에 직접 붙고, 이름 모를 배치 잡이 인증 서비스의 내부 API를 호출할…
PostgreSQL은 커넥션 하나를 OS 프로세스 하나로 매핑하는 프로세스 기반 아키텍처입니다. 안정성과 격리에는 장점이지만, 커넥션이 수백 개로 늘어나는 순간 스케줄링 오버헤드와 메모리 압박이 급격히 커집니다. 애플리케이션이 오토스케일링으로…
마이크로서비스 환경에서 하나의 느린 백엔드가 전체 서비스를 끌어내리는 장애를 겪어 본 팀이라면 서킷브레이커의 필요성을 몸으로 압니다. 응답이 지연되는 업스트림에 요청이 쌓이면 커넥션과 스레드가 고갈되고, 그 압력은…
수억 건이 쌓인 시계열 테이블은 어느 순간부터 조용히 서비스를 갉아먹습니다. 인덱스가 메모리에 다 올라가지 못해 캐시 히트율이 떨어지고, VACUUM은 몇 시간씩 돌며, 오래된 데이터를 지우는 DELETE는…
어느 인기 상품 페이지의 캐시 키가 TTL 만료로 사라지는 순간, 그 키를 조회하던 수천 개의 요청이 동시에 캐시 미스를 만난다. 각 요청은 저마다 “내가 캐시를 다시…