Kubernetes를 사용하면 조직이 나무 때문에 숲을 놓치기 쉽습니다. Kubernetes가 산업 표준이 되고 있음에도 불구하고 Kubernetes의 복잡성은 조직이 확장됨에 따라 큰 골칫거리를 일으킬 수 있습니다. 이러한 복잡성으로 인해 라틴 아메리카 최대의 디지털 지갑이자 현재는 은행인 디지털 은행 PicPay는 통합된 관찰성과 보안을 중심으로 Kubernetes 플랫폼 엔지니어링 방식을 채택하게 되었습니다.
오픈 소스 컨테이너 플랫폼으로서 Kubernetes는 기업들이 컨테이너 오케스트레이션을 관리하도록 10년간 지원해온 끝에, 성숙한 엔터프라이즈 기술로 자리매김했습니다. 클라우드 네이티브 컴퓨팅 재단(CNCF)에 따르면, Kubernetes를 사용 중이거나 평가 중인 조직의 비율이 2022년의 81%에서 84%로 증가했습니다. 하지만 Kubernetes의 복잡성에 관해서는 여전히 여러 가지 과제가 남아 있습니다. 현재 평균적인 배포 환경은 여러 클라우드와 데이터 센터에서 10개 이상의 소프트웨어 요소를 실행하는 20개의 클러스터로 구성되어 있습니다. 실제로, 76%의 기술 리더들은 Kubernetes의 동적 특성으로 인해 인프라에 대한 가시성을 유지하는 것이 기존 기술 스택에 비해 더 어렵다고 답했습니다. Kubernetes를 사용하면서 전반적인 인사이트가 아니라 지엽적인 정보에만 의존하는 조직이 많습니다. 오픈 소스라는 특성 덕분에 컨테이너 기반 애플리케이션을 배포, 관리 및 확장하는 업계 표준으로 자리 잡는 데 도움이 되었지만, Kubernetes 배포가 확대되기 시작하면 복잡성이 급격히 가중됩니다. 브라질의 금융 서비스 앱인 PicPay의 사례에서도 마찬가지였습니다. PicPay가 겪은 어려움과 이에 대응하여 팀이 도입한 Kubernetes 플랫폼 엔지니어링 전략에 대해, PicPay의 엔지니어링 부사장인 Martin Spier와 이야기를 나누었습니다.
Kubernetes의 복잡성 극복
3,500만 명 이상의 활성 사용자를 보유한 PicPay는 폭발적인 성장을 경험하고 있습니다. 2023년 총 결제액은 40% 증가한 2,710억 루피를 기록했으며, 매출은 35억 루피에 달했습니다. 이 회사는 엣지 계층에서 초당 수만 건의 요청을 수신하고 있으며, 분석 계층에서 시간당 수억 건의 이벤트가 발생하고 있습니다. 이 데이터를 관리하기 위해 PicPay는 수만 개의 포드와 1,000여 개의 마이크로서비스를 실행하는 100여 개의 Kubernetes 클러스터를 운영 중입니다. Spier는 “라틴아메리카에서 최대 클러스터를 형성하게 된 것으로 추정된다”며 “이는 좋은 일이 아니다”라고 말합니다. 게다가 갈수록 복잡해지는 Kubernetes 환경에 대한 옵저버빌리티를 충분히 확보하지 못하고 있었습니다. 그는 이어 “개발 팀이 시스템에서 어떤 일이 일어나고 있는지 파악하기 위해 로그에 크게 의존했습니다”라고 말합니다. 이로 인해 가시성과 확장성에 문제가 발생했습니다. 다양한 팀이 동일한 결과를 얻기 위해 서로 다른 솔루션을 사용하면서 서로 단절된 여러 IT 스택이 만들어졌습니다. 또한 로그 중심의 분석 접근 방식으로 인해 확장 프로세스가 복잡하고 비용이 많이 들었습니다. 로그 분석을 과도하게 반복하던 Spier와 팀원들은 지표, 트레이스 및 로그를 한곳에서, 그리고 컨텍스트 내에서 함께 사용함으로써 얻을 수 있는 가치, 비용 절감 기회, 생산성을 놓치고 있었습니다. 이러한 문제를 해결하기 위해 Spier와 팀원들은 솔루션을 단순화해야 했습니다. Spier는 “저희는 대규모 클러스터를 작은 클러스터로 나누고, 모두에게 관리형 인프라를 제공하기 위한 표준화를 구축하기로 결정했습니다”라고 말합니다. 회사의 목표는 옵저버빌리티를 표준화하고, Java나 포드에 사용할 메모리가 부족하거나 사용자가 요청한 리소스를 거의 사용하지 않거나 리소스 사용률이 100% 이르는 등의 일반적인 문제를 방지하는 것이었습니다.
전략적 Kubernetes 플랫폼 엔지니어링 접근 방식 도입
Spier는 Kubernetes를 단순하게 유지하려면 전략적 접근이 필요하다고 강조합니다. 그러면서 DevOps에서 플랫폼 엔지니어링 또는 파운데이션 엔지니어링으로 전환하는 것을 꼽습니다. Spier는 “소프트웨어는 여러 계층으로 구축되어 있습니다. 그리고 이 계층들은 서로 유사한 경향이 있습니다. 하지만 모든 팀이 자체 도구와 스택을 정의해야 한다면, 결국 수많은 작업이 중복됩니다. 따라서 플랫폼 엔지니어링에서는 통합 도구 세트를 도입하는 것을 목표로 합니다”라고 설명합니다. Spier는 덧붙여, 모든 가능한 사용 사례를 지원하려는 시도가 Kubernetes 복잡성을 해결할 때 빠지기 쉬운 또 다른 함정이라고 지적합니다. “예를 들어 대부분의 팀이 Java를 실행하는 경우, 이상치를 지원하는 것은 말이 되지 않습니다. 대신, 일반적인 사용 사례를 위한 최적의 솔루션을 만드는 것이 좋습니다.” 궁극적으로 기업들이 표준화된 Kubernetes 플랫폼 엔지니어링 접근 방식을 사용하여 복잡성을 관리하기 시작하는 시기는 빠를수록 좋습니다. Spier는 “여러 경쟁 플랫폼이 생겨나고 정말 번거로운 마이그레이션을 거쳐야 하는 상황이 오기 전에 시작하세요”라고 조언합니다.
통합 옵저버빌리티는 팀워크를 통해 Kubernetes의 복잡성을 해결한다고 할 수 있습니다.
PicPay가 Kubernetes 플랫폼 엔지니어링 전략을 구현하기 위해서는 엔드 투 엔드 옵저버빌리티를 확보해야 했습니다. 또한 지표와 트레이스의 값 및 컨텍스트를 로그 모니터링 체계에 통합하여 일원화해야 했습니다. Spier와 팀원들은 이를 실현하기 위한 솔루션으로 Dynatrace를 선택했습니다. PicPay와 Dynatrace의 파트너십을 통해 Spier와 팀원들은 플랫폼 엔지니어링 작업을 가속화할 수 있었고, 결과적으로 다음과 같은 몇 가지 주요 이점을 얻을 수 있었습니다.
- 지표, 트레이스, 로그를 한곳에 배치. Dynatrace 플랫폼은 모든 데이터를 컨텍스트에 따라 한곳에 통합합니다.
- 즉각적인 입력. Dynatrace는 대부분의 도구와 언어를 별도의 설정 없이 바로 지원합니다. 자동화된 알림. 이 솔루션은 자동 알림과 알림 기준 생성 기능을 제공합니다.
- 간편한 사용. 모든 관련 데이터가 단일 컨트롤 플레인의 동일한 위치에서 통합 뷰로 제공됩니다.
- Kubernetes에 대한 완전한 가시성. 모든 PicPay 워크로드가 Kubernetes에서 실행되므로, 문제가 발생하기 전에 감지할 수 있습니다.
- 비용 효율성. PicPay는 여러 도구를 하나의 플랫폼 솔루션으로 통합하여, 비용과 유지보수 작업을 줄이고 개발자가 혁신에 집중할 시간을 확보할 수 있게 되었습니다.