nya0

MSA에 분산 트레이싱 붙이기 — OpenTelemetry, Tempo, Grafana를 고른 이유와 구현 과정

🥑 들어가며 서비스를 여러 개로 나눈 뒤로 장애를 고치는 시간보다 장애가 어디서 났는지 찾는 시간이 더 길어졌다. 이 글에서는 Kubernetes 위의 여러 서비스가 HTTP와 Kafka로 통신하는 환경에서 분산 트레이싱을 붙인 경험을 정리한다. 설명을 위해 서비스 역할을 orchestrator(요청 조율), datalake(데이터 관리), aut...

PostgreSQL AT TIME ZONE과 월 단위 연산의 함정

🥑 들어가며 회사 업무 중에 이 글을 보고 “어 이거 우리도 당할 수 있겠는데?” 싶어서 코드를 뒤져봤다. 결론부터 말하면 지금 담당하고 있는 서비스들엔 해당 패턴이 없어서 당장 문제는 없었지만, 나중에 다른 프로젝트에서 raw SQL로 날짜 연산을 직접 짤 일이 생기면 바로 걸릴 수 있는 함정이라 TIL로 남겨둔다. 📌 문제: AT TIME ...

Service Registry, Service Discovery, Sidecar, Service Mesh

🥑 들어가며 MSA 환경에서는 하나의 큰 애플리케이션을 여러 서비스로 나누어 운영한다. 서비스가 나뉘면 각 서비스는 독립적으로 배포되고 확장될 수 있지만, 동시에 서비스 간 통신을 어떻게 안정적으로 처리할 것인지가 중요한 문제가 된다. 단일 애플리케이션 안에서는 메서드 호출로 끝나던 일이 MSA에서는 네트워크 호출이 된다. 네트워크 호출은 실패할 ...

Kubernetes Image

Kubernetes란?

🥑 들어가며 컨테이너 기반 애플리케이션을 운영하다 보면 단순히 컨테이너를 실행하는 것만으로는 부족하다. 서비스가 죽었을 때 다시 띄워야 하고, 트래픽이 늘어나면 인스턴스를 늘려야 하며, 배포 중에도 사용자가 서비스를 계속 사용할 수 있어야 한다. Kubernetes는 이런 컨테이너 운영 문제를 해결하기 위한 컨테이너 오케스트레이션 도구다. 이번 글...