
Istio network resilence
Timeout Envoy proxy에서 타 서비스를 호출할때 타임아웃 지정할 수 있다. 이때 타임아웃이 너무 길면 상대편 서비스가 죽었을때 긴 레이턴시가 발생할 수 있고, 반대로 너무 짧으면 여러 서비스를 거쳐 응답이 돌아올때 미처 기다리기 못하고 부적절한 예외가 발생할 수 있다. 따라서 적절한 타임아웃을 찾는게 중요하다. apiVersion: n...
Timeout Envoy proxy에서 타 서비스를 호출할때 타임아웃 지정할 수 있다. 이때 타임아웃이 너무 길면 상대편 서비스가 죽었을때 긴 레이턴시가 발생할 수 있고, 반대로 너무 짧으면 여러 서비스를 거쳐 응답이 돌아올때 미처 기다리기 못하고 부적절한 예외가 발생할 수 있다. 따라서 적절한 타임아웃을 찾는게 중요하다. apiVersion: n...
이전 포스팅에서는 쿠버네티스 클러스터 내부 통신을 담당하는 Service 오브젝트의 동작원리에 대해 깊게 살펴봤습니다. 클라이언트가 서비스를 이용하기 위해서는 결국 클러스터 외부에서 접속을 시도해야 합니다. 이때 클러스터의 가장 앞단에서 외부 트래픽을 보안/수정 처리를 한 후 내부 Service로 라우팅하는 역할을 하는 컴포넌트가 존재하는데, 이를 ...
최근 서비스 운영 환경은 쿠버네티스 클러스터 내에 마이크로서비스를 배포하는 방식이 메인스트림이 되었다고 생각합니다. 그만큼 사용자의 요청이 인그레스를 통해 들어오면 클러스터 내에서 여러 서비스 간 네트워크 통신을 거쳐 응답이 반환되는 구조입니다. 보통 클러스터로 진입하기 이전까지는 HTTPS 암호화 통신이 보장되지만 클러스터 내부로 들어오면 평문 데이...
쿠버네티스를 학습하면서 네트워크에 대한 부분이 어렵게 다가왔습니다. 특히 Spring Cloud 기반의 MSA 어플리케이션을 쿠버네티스 환경에 배포할때는 eureka service discovery의 역할을 쿠버네티스의 Service가 대신해줄 수 있다는걸 알게되면서 이 컴포넌트에 대한 깊은 이해가 필요하다고 생각했습니다. Service 오브젝트 사...
쿠버네티스를 잘 사용하기 위해서는 방대한 지식을 습득해야 합니다. 그 중 어플리케이션 개발자가 잘 알아야 하는 분야가 있을 것이고, 반대로 인프라 담당자가 잘 이해해야 하는 분야가 있을 것입니다. 저는 개발자로서 쿠버네티스 워크로드의 최소 단위이자, 우리가 만든 어플리케이션이 동작하는 환경인 파드에 대한 깊은 이해가 중요하다고 생각합니다. 이번 포스팅...
Logback에 대해 자세히 알아보는 과정에서 AsyncAppender를 통해서 로깅 작업을 비동기적으로 수행할 수 있다는걸 알게 됐습니다. 그렇다면 내부적으로 로깅을 대신해주는 쓰레드풀이 존재하는건지 동작 원리가 궁금해서 직접 디버깅을 통해 알아보는 시간을 가졌습니다. AsyncAppender 설정 우선 logback에서 AsyncAppender...
이번 포스팅에서는 카프카의 멀티 브로커에서 사용되는 ISR(In Sync Replica)라는 개념에 대해서 알아보고자 합니다. ISR은 카프카가 메세지 유실 없이 가용성을 보장하기 위한 중요한 개념입니다. 또한 ISR 관련 설정에 따라 프로듀서가 메세지를 브로커에 정상적으로 전송하지 못할 수도 있기 때문에 잘 알아두는게 중요합니다. 주키퍼를 사용한...
카프카는 분산 이벤트 스트리밍 플랫폼으로써 대량의 이벤트에 대해 높은 처리량을 제공해주는 것으로 유명해서 많은 기업에서 도입한 솔루션입니다. 그렇다면 카프카는 내부적으로 어떤 구조를 사용하기에 이렇게 높은 처리량을 소화할 수 있는걸까요? 오늘은 그 방법에 대해 살펴보고자 합니다. 순차 I/O 사용한 성능 최적화 일반적으로 디스크 I/O는 메모리...
카프카는 분산 이벤트 스트리밍 플랫폼으로써 실시간으로 대량의 이벤트를 처리합니다. 이때 이벤트는 모두 디스크에 저장되서 토픽을 구독하는 모든 컨슈머가 이벤트를 소비할 수 있는 일대다 모델을 가지고 있는데, 그렇다면 카프카는 이 실시간으로 축적되는 이벤트를 어떻게 디스크에서 관리하고 있는지 궁금해졌습니다. 이번 포스팅에서는 카프카가 디스크에서 데이...
카프카는 처리량 조절을 위해 컨슈머 어플리케이션 개수를 유동적으로 조절할 수 있다. 이때 컨슈머 개수가 변동될때마다 각각의 컨슈머가 할당받는 파티션도 변경되는데, 이를 컨슈머 리밸런싱이라고 한다. 이번 글에서는 컨슈머 리밸런싱에 대해서 알아보고자 한다. 컨슈머 리밸런싱이 발생하는 경우 우선 어떤 경우에 리밸런싱이 발생하는지 알아보자. 크게 2가지 ...