[논문 리뷰] Microservices: Migration of a Mission Critical System
이 논문은 덴스케 은행의 미션 크리티컬 FX 코어 시스템을 모놀리식 아키텍처에서 마이크로서비스 아키텍처로의 이관에 대한 실세계 사례 연구를 제시하며, 자동화, 서비스 디스커버리, 오케스트레이션, 느슨한 결합을 통해 확장성, 유지보수성, 운영 유연성이 크게 향상됨을 입증한다. 이전의 모놀리식 아키텍처에서 오랫동안 지속된 문제들인 강한 결합, 복잡한 배포, 가시성 부족 등의 문제를 해결하여 더 견고하고 확장 가능한 금융 시스템을 구현하였다.
The microservices paradigm aims at changing the way in which software is perceived, conceived and designed. One of the foundational characteristics of this new promising paradigm, compared for instance to monolithic architectures, is scalability. In this paper, we present a real world case study in order to demonstrate how scalability is positively affected by re-implementing a monolithic architecture into microservices. The case study is based on the FX Core system, a mission critical system of Danske Bank, the largest bank in Denmark and one of the leading financial institutions in Northern Europe.
연구 동기 및 목표
- 미션 크리티컬 금융 시스템의 모놀리식 아키텍처에서 마이크로서비스 아키텍처로의 이관 과정에서 발생하는 과제와 이점을 조사하는 것.
- 실제 운영 환경에서 마이크로서비스가 시스템의 확장성에 어떻게 기여하는지 분석하는 것.
- 자동화, 오케스트레이션, 서비스 디스커버리와 같은 핵심 기술 요소들이 마이크로서비스의 확장성 잠재력을 어떻게 해방시키는지 규명하는 것.
- 모놀리식 아키텍처에서 흔히 발생하는 악성 패턴(예: 결합도 높음, 배포 복잡성, 모니터링 부족 등)이 아키텍처 전환을 통해 어떻게 해결되는지 보여주는 것.
- 고위험 금융 기관에서 실사용 가능한 산업 수준의 마이크로서비스 도입 사례를 제공하는 것.
제안 방법
- 덴스케 은행의 FX 코어 시스템에 대한 상세한 사례 연구를 수행하여 기존의 모놀리식 아키텍처와 새로운 마이크로서비스 아키텍처를 비교 분석하였다.
- 핵심 마이크로서비스 원칙인 유한한 컨텍스트(bounded context), 세밀한 서비스 크기, 운영 독립성 등을 식별하고 구현하였다.
- Docker를 통한 컨테이너화와 Kubernetes를 이용한 오케스트레이션을 통해 서비스 배포, 확장, 수명 주기 관리를 수행하였다.
- 동적이고 내구성이 강한 서비스 간 통신을 가능하게 하기 위해 서비스 디스커버리(예: Consul)와 로드 밸런싱을 통합하였다.
- 시스템 전반의 가시성을 확보하기 위해 중앙 집중식 로깅(LoggingService, Elasticsearch, Kibana)과 모니터링(MonitoringService, Icinga, cAdvisor)을 구축하였다.
- 각 서비스가 독립적으로 기술 스택을 선택할 수 있도록 허용하는 폴리글랏 아키텍처를 도입하여 벤더 종속성 감소를 달성하였다.
실험 결과
연구 질문
- RQ1미션 크리티컬 모놀리식 시스템을 마이크로서비스 아키텍처로 이관할 경우 시스템의 확장성에 어떤 영향을 미치는가?
- RQ2실제 운영 환경에서 마이크로서비스의 전체적인 확장성 잠재력을 해방시키기 위해 필수적인 기술적 요소는 무엇인가?
- RQ3마이크로서비스는 모놀리식 금융 시스템에서 흔히 발생하는 공통적인 악성 패턴을 어느 정도 해결하는가?
- RQ4새로운 아키텍처는 배포, 모니터링, 운영 제어력에 어떤 개선을 이룬다?
- RQ5기업용 시스템에서 실세계 마이크로서비스 이관 과정에서 발생하는 실질적 과제와 트레이드오���은 무엇인가?
주요 결과
- 개별 서비스의 워크로드에 따라 독립적으로 확장할 수 있도록 함으로써 마이크로서비스 아키텍처가 시스템의 확장성에 크게 기여하였다.
- 이전의 모놀리식 아키텍처에서 오랫동안 지속된 악성 패턴인 큰 크기의 강하게 결합된 컴포넌트, 공유 컴포넌트, 복잡한 배포 과정 등의 문제를 해결하였다.
- 서비스 간 독립성과 컨테이너화 덕분에 정지 시간이 없는 배포가 가능해졌고, 종속성 갈등도 감소하였다.
- 중앙 집중식 로깅과 모니터링을 통해 통합된 시스템 상태 개요를 확보하여 문제의 사전 탐지가 가능해졌다.
- RabbitMQ를 통한 메시지 기반 코디네이션 방식을 도입함으로써 서비스 간 결합도를 낮추고 장애 내성 능력을 향상시켰다.
- 폴리글랏 아키텍처를 통해 기술적 유연성이 향상되어 기존의 .NET 및 MS SQL 플랫폼에 대한 의존도를 감소시켰다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.