TL;DR
- Datadog은 하루 100조 건 이상의 이벤트를 처리하는 핵심 프로덕션 시스템인 이벤트 플랫폼 인테이크(EVP Intake)를 무상태 통신에서 상태 유지형 인코딩으로 전환하며, Antithesis로 새로운 프로토콜의 정확성과 기존 시스템의 불변 조건을 검증함.
- 상태 유지형 통신은 Datadog Agent와 Intake 사이의 디코딩 상태를 유지해 전송 데이터와 처리 리소스를 줄이는 구조임.
- 팀은 프로토타입 개념 검증(POC) 단계부터 Antithesis를 사용해 프로토콜 오류, JVM 충돌, 복잡한 타이밍 조합에서 발생하는 문제를 발견함.
- Antithesis를 활용한 불변 조건 중심 테스트는 기존 프로덕션 저널의 내구성 문제도 찾아냈으며, 이를 통해 개발 초기부터 테스트 속성을 설계하는 방식으로 전환함.
- Datadog은 메트릭 파이프라인에서 새 아키텍처를 파일럿으로 진행하며, 테스트 관행을 하네스 우선 엔지니어링에 통합해 향후 프로덕션 적용을 평가 중임.
상태 유지형 인코딩 프로젝트
- Datadog의 이벤트 플랫폼(EVP)은 고객이 프로덕션 시스템 전반에서 발생하는 상황을 파악하고 관리하는 데 필요한 데이터를 처리하는 핵심 플랫폼이며, 하루 100조 건 이상의 이벤트를 수집함.
- 고객 환경이 커지고 복잡해짐에 따라 EVP 인테이크 팀은 고객 데이터를 플랫폼으로 전달하는 파이프라인의 효율성을 높일 방법을 모색함.
- 2025년 가을 당시 파이프라인은 무상태 HTTP 기반 아키텍처를 사용함. 고객 환경에서 실행되는 Datadog Agent는 요청 간 디코딩 상태를 유지하지 않고 텔레메트리 데이터를 Intake로 전송함.
- 텔레메트리 양이 계속 증가하면서 팀은 Agent와 Intake 사이에 디코딩 상태를 유지하는 상태 유지형 모델로 전환하면 전송 데이터와 처리에 필요한 리소스를 줄일 수 있다고 판단함.
상태 유지형 인코딩은 전송하고 처리해야 하는 데이터 양을 크게 줄일 것으로 예상됨. 이 효율성은 고객이 의존하는 성능과 신뢰성을 유지하면서 늘어나는 텔레메트리 규모를 지원하는 데 도움이 됨.
- EVP Intake 팀의 시니어 스태프 엔지니어 Joy Zhang은 이 전환이 핵심 프로덕션 시스템에서 이뤄져야 하는 만큼, 대규모 아키텍처 변경과 테스트 모두 중대한 과제라고 설명함.
상태 유지형 시스템 테스트
- 팀이 Antithesis와 협업을 시작했을 때 상태 유지형 파이프라인의 부분 프로토타입은 이미 구축돼 있었음. 다음 단계로 나아가기 전에 새 아키텍처의 정확성을 신뢰할 수 있는 테스트 전략이 필요했음.
이 서비스들은 핵심을 지탱하는 매우 중요한 시스템이고 성숙도도 높음. 처음부터 새로 만드는 프로젝트가 아님. Datadog의 핵심 구성 요소 두 개가 통신하는 방식을 근본적으로 바꾸는 일이었으며, 프록시를 거치는 상태 동기화를 네트워크 지연과 장애 속에서 유지하는 일은 매우 까다로움.
- 팀은 초기 설계 단계부터 복잡한 시스템이 될 것을 예상하고 테스트 계획이 필요하다고 봄. 개발을 진행하면서 상태 유지형 인코딩 파이프라인에 Antithesis와 같은 테스트 도구가 필요하다는 확신이 커짐.
- Datadog의 다른 데이터 플랫폼 팀이 이미 Antithesis를 사용하고 있었음. EVP Intake 팀은 해당 팀의 경험을 바탕으로 Antithesis가 상태 유지형 인코딩 프로젝트에 필요한 테스트 방식을 제공할 수 있는지 평가하기 시작함.
아키텍처 테스트
- EVP Intake 팀은 며칠 안에 개발한 구성 요소를 상태 유지형 인코딩 파이프라인의 종단 간 프로토타입으로 통합함. 프로토타입을 컨테이너화해 Antithesis에 배포하고 프로토콜의 정확성을 테스트함.
- 동시에 Antithesis를 사용해 기존 아키텍처가 데이터 손실 방지와 같은 불변 조건을 지키는지도 검증함.
- 테스트 대상 시스템 규모가 커 Antithesis가 상태 공간을 얼마나 효율적으로 탐색할지, 탐색에 얼마나 오래 걸리고 리소스가 얼마나 필요한지는 처음에 불확실했음.
- 초기 테스트 실행에서 프로덕션 코드에 JVM 충돌을 일으킬 수 있는 문제가 드러남. Antithesis가 이와 같은 실패를 재현하는 것을 확인하면서 상태 유지형 인코딩 프로토타입 테스트에 Antithesis를 사용하는 데 대한 신뢰가 커짐.
처음에는 프로덕션에 가까워졌을 때 Antithesis를 사용하기 시작할 생각이었지만, 개념 검증 단계부터 시작해야 한다는 점을 깨달음. 이렇게 일찍 테스트하면 설계 구현의 문제를 해결하기 더 어려워지기 전에 찾을 수 있고, 프로덕션으로 나아가는 과정에서 더 큰 확신을 얻을 수 있음.
- Antithesis는 상태 유지형 인코딩의 프로토콜을 깨뜨리는 버그뿐 아니라 기존 테스트로 재현하기 어려운 복잡한 타이밍 조합도 실행함. 드러난 실패를 계기로 팀은 시스템 테스트 방식을 재검토함.
테스트에서 하네스로
- 상태 유지형 인코딩 프로젝트가 진행되는 동안 EVP Intake 팀은 에이전트 기반 개발 워크플로도 실험함. 이에 따라 Antithesis의 역할은 기존 소프트웨어 릴리스에 대한 전통적인 테스트에서 개발 워크플로 초기의 테스트로 확대됨.
- 팀은 새 소프트웨어를 설계할 때 불변 조건과 테스트 속성을 먼저 정의하기 시작함. Antithesis는 이러한 사고방식의 전환에 기여한 요소 중 하나임.
- 상태 유지형 인코딩 파이프라인의 내구성 보장을 뒷받침할 Intake용 새 라이브러리를 개발하던 소프트웨어 엔지니어 Michele Zoncheddu는 새 온디스크 버퍼를 구현하기에 앞서 불변 조건을 먼저 기록함.
- Michele은 Antithesis 연구 스킬을 현재 프로덕션에 배포된 저널에 적용해 같은 불변 조건이 성립하는지 점검함. 저장소와 새 설계, 진입점 목록을 제공한 뒤 몇 시간 만에 연구 에이전트가 기존 구현에서 핵심 내구성 불변 조건을 위반하는 단계의 연속을 찾아냄.
- 이 문제는 장애 주입 없이 일반적인 부하에서 통상적인 실행 경로를 따라 발생했으며 기존 테스트의 대상 경로에도 포함돼 있었음. 그러나 기존 테스트는 해당 불변 조건을 기준으로 구성되지 않았음.
개념 검증에서 파일럿으로
- 개념 검증 이후 EVP Intake 팀은 새 아키텍처의 파일럿 단계로 이동함. 초기 설계의 가정이 평가 결과와 부합해 메트릭 파이프라인에서 파일럿 구현을 시작함.
- 상태 유지형 통신 패턴은 여러 유형의 텔레메트리 데이터에 적용할 수 있도록 설계됨. 팀은 파일럿을 통해 학습하면서 더 넓은 범위의 적용 가능성을 평가할 계획임.
- 데이터 플랫폼 부문 시니어 디렉터 Joel Barciauskas는 개발 속도와 확신을 높이는 관행을 하네스에 포함해 다른 팀도 활용할 수 있도록 하고 있다고 설명함. EVP Intake 경험은 Antithesis와 같은 테스트 방식이 핵심 시스템의 야심 찬 변경을 추진하는 데 도움이 될 수 있음을 보여줌.
- 이 프로젝트는 Datadog이 하네스 우선 엔지니어링이라고 부르는 접근 방식도 반영함. 이 접근 방식은 AI 코딩 에이전트가 효과적으로 활용되도록 제약 조건과 불변 조건을 정의하면서 엄격한 검증을 유지하는 방식임.
- EVP Intake 팀은 Antithesis를 하네스에 통합해 복잡한 시스템 동작을 실행하고 개발 과정에서 핵심 불변 조건이 유지되는지 테스트함.
- 메트릭 파이프라인에서 상태 유지형 인코딩을 파일럿으로 진행하는 동안 이러한 테스트 관행은 프로덕션을 향해 나아가는 과정에서 새 아키텍처를 지속적으로 평가하고, 학습 내용을 향후 프로젝트에 적용하는 방법을 제공함.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요