새로운 애플리케이션을 개발 중인데, 마이크로서비스와 모놀리틱 아키텍처 중 어떤 것을 선택해야 할지 끊임없는 논쟁에 빠져들었다면? 이는 스위스 아미 나이프와 전문가용 공구 세트 중 하나를 선택하는 것과 같은 소프트웨어적 고민입니다. 둘 다 작업을 완료할 수 있지만, 잘못된 선택은 시간, 예산, 기술 부채의 낭비로 이어질 수 있습니다. 10년 이상 다양한 아키텍처로 팀들을 이끌어온 제 경험을 바탕으로, 장단점과 후회를 피하는 방법에 대해 솔직하게 이야기해 보겠습니다.
성능: 속도만이 전부가 아니다
과장된 부분을 걷어내고 핵심을 보겠습니다. 네, 마이크로서비스는 이론적으로는 쉽게 확장 가능합니다. 블랙프라이데이처럼 트래픽이 폭증하는 동안 결제 서비스는 자동으로 확장되지만 상품 카탈로그는 유휴 상태를 유지하는 전자상거래 앱을 상상해 보세요. 이것이 이상적인 모습입니다. 하지만 문제는 독립적으로 배포된 서비스들이 API를 통해 끊임없이 통신한다는 것입니다. 매번 상호 작용할 때마다 지연 시간이 발생하고, 갑자기 "확장 가능한" 시스템이 네트워크 호출로 인해 병목 현상을 겪게 됩니다. 서비스 메시 구성을 최적화하는 데 몇 달을 허비하면서 겨우 밀리초 단위의 성능 향상을 이룬 팀들을 보아왔습니다.
dzone.com
Microservices vs Monoliths: Picking the Right Architecture
