340
이벤트 기반 마이크로서비스 구축
뒤섞인, 단일 공유 테스트 이벤트 브로커가 될 공산이 큽니다. 테스트에 사용할 만한 ‘좋은’ 이
벤트 스트림과 ‘-
testing
-
01
’, ‘-
testing
-
02
’, ‘-
testing
-
02
-
final
’, ‘-
testing
-
02
-
final
v2
’
등의 접미사가 붙은 이벤트 스트림이 섞여 있을 것입니다. 이벤트 데이터는 신뢰하기 어렵고
최신 데이터인지도 모르겠고 스키마 포맷이 잘못된 경우도 있을 것입니다. 부족 지식은 여기서
도 적잖은 비중을 차지하는데, 테스트에 서비스 프로덕션 환경이 제대로 반영되지 못할 가능성
이 큽니다. 그리고 성능 테스트, 대량 데이터 적재, 무기한 보존되는 이벤트 저장소를 제공하기
위해 연속적으로 사용 가능한 스테이징 클러스터를 구축하는 비용이 만만치 않습니다.
도구에 적절히 투자를 하면 각 마이크로서비스가 자체 전용 클러스터를 불러와 이벤트 스트림
을 채운 다음 일부 프로덕션 데이터를 복사하는 식으로 프로덕션과 거의 동일한 환경에서 테스
트를 진행할 수 있습니다. 테스트가 끝나면 클러스터를 해체하거나 공유 클러스터에 남아 있는
테스트 찌꺼기를 제거합니다. 이 정도 수준까지 도달하려면 상당한 오버헤드가 필연적으로 따
르겠지만 온전한 멀티클러스터, 리던던시, 재해 복구 체계를 갖추려면 그만한 투자는 필요합니
다(자세한 내용은
14
장 참조 ).
단일 공유 테스트 클러스터가 본질적으로 나쁘다는 뜻은 아닙니다. 사용하지 않는 테스트 아티
팩트를 지우는 것처럼 소스 스트림을 깔끔하게 잘 정리하려는 ...