처음에는 Kafka 브로커의 플랫폼 업그레이드가 지루하고 시간이 걸리는 작업이었으며, 수 시간 동안 수동적으로 모니터링하고 기다려야 했다. 이를 개선하기 위해 다중 존 아키텍처를 구현했는데, 이는 여러 브로커가 동시에 업데이트될 수 있도록 허용하여 가용성을 영향을 주지 않았다. 그러나 Kubernetes의 기본 롤링 업데이트 전략은 복제본의 존 분포로 인해 적합하지 않았다.
커스텀 논리를 개발하여 업데이트를 제어할 수 있도록 했다. 이렇게 하면 존 내부의 여러 브로커가 동시에 다시 시작할 수 있었다. 이를 Kubernetes 배치 작업으로 구현하여 안정성을 보장하고 실수로 인한 배포 문제를 방지했다.
프로덕션에서 테스트한 결과, 3개의 병렬 처리를 사용할 때 업그레이드를 약 2시간 내에 완료할 수 있었다. 존 내부의 모든 브로커를 동시에 다시 시작하는 것은 기술적으로 가능했지만, 남아 있는 브로커에 대한 부하를 증가시키는 것을 방지하기 위해 피했다.
다중 존 아키텍처와 커스텀 업데이트 논리는 업그레이드 시간을 7시간에서 약 2시간으로 줄였다. 이 개선은 업그레이드 시간을 단축하는 것 외에도 업그레이드 중 발생하는 노동과 스트레스를 줄였다.
새로운 프로세스는 Kafka 클러스터에 대한 업그레이드를 빠르고 효율적으로 수행할 수 있도록 보장했으며 업그레이드 중 최소한의 영향을 주었다. 프로젝트의 성공은 업그레이드 기간의 단축 뿐 아니라 업그레이드 중 느끼는 편안함과 마음의 평화도 포함되었다.
etsy.com
Adding Zonal Resiliency to Etsy’s Kafka Cluster: Part 2
