지그재그, 모놀리식에서 마이크로서비스로의 여정
by DD
8년 전
조회수 4
모놀리식 아키텍처에서 마이크로서비스로 전환하며 서비스 구조를 개선함
상품 검색 서버를 시작으로 Elasticsearch 도입 및 코드 분리 진행
BFF 패턴을 활용, DynamoDB와 Lambda를 적용하여 유연성 확보
모놀리식에서 MSA로의 전환 배경
초기 모놀리식 아키텍처는 개발 속도를 높이는 데 기여했지만, 서비스 규모가 커지면서 확장성과 유지보수에 어려움을 겪었다. 구체적으로, 상품 검색 서버의 Elasticsearch 전환을 위해 코드 분리가 필요했고, 로그 관리 시스템 개선을 위해 마이크로서비스 도입을 결정했다. 따라서, 서비스 독립성을 확보하고, 기술 부채를 해결하고자 했다.
BFF 패턴과 서비스 간 통신
마이크로서비스 전환 과정에서 BFF(Backend for Frontend) 패턴이 자연스럽게 구성되었다. Apache Thrift를 사용하여 서비스 간 통신을 구현했는데, 이는 REST API보다 효율적인 통신을 가능하게 한다. 반면, 서비스 간의 데이터 일관성을 유지하기 위한 추가적인 노력이 필요하며, 비동기 이벤트 처리를 위해 메시지 큐 도입을 고려하고 있다.
MSA 전환의 과제와 교훈
마이크로서비스 전환은 코드 분리, 데이터베이스 분리, 배포 자동화 등 다양한 과제를 수반한다. 데이터 손실과 같은 실수를 방지하기 위해, 점진적인 전환 전략과 충분한 테스트가 필요하다. 따라서, 모니터링 및 로그 수집 시스템을 강화하여 문제 발생 시 빠른 원인 파악 및 대응이 가능하도록 해야 한다.