클라우드 도입을 위한 마이크로서비스 아키텍처로의 전환 방안
Refactoring Strategies to Microservice Architecture for Cloud Computing Adoption
- 발행기관 서강대학교 정보통신대학원
- 지도교수 박수용
- 발행년도 2024
- 학위수여년월 2024. 2
- 학위명 석사
- 학과 및 전공 정보통신대학원 소프트웨어공학
- 실제URI http://www.dcollection.net/handler/sogang/000000076617
- UCI I804:11029-000000076617
- 본문언어 한국어
- 저작권 서강대학교 논문은 저작권 보호를 받습니다.
초록
현재 A보험사의 보험 상품 서비스는 하나의 거대한 모놀리식 아키텍처로 되어있다. 상품 서비스는 지속적으로 추가되고 확장되면서 몸집이 비대해지고 서비스 간 연결이 복잡해졌으며, 이로 인해 변경이 어렵고 배포 시간이 늘어났으며 이로 인해 에러 발생 시 회복하는 속도가 현저하게 떨어졌다. 본 논문의 목적은 이러한 문제점을 파악하여 이를 보완하고 대체할 수 있는 클라우드 기반의 마이크로서비스 아키텍처로 전환하는 방법을 제시하는 데 목적이 있다. 또한 전환된 서비스가 안정적으로 운영될 수 있도록 DevOps 개발환경을 구축하여 지속적인 반영와 배포가 가능하게 했으며 에러 모니터링 시스템을 구성하여 에러상황 발생 시 시스템 운영자가 빠르게 인지할 수 있도록 하였다. 이를 통해 개발자는 애플리케이션 개발에만 신경쓸 수 있게 하고자 한다. 이번 연구에서 A 보험사 시스템 하나의 큰 서비스를 마이크로서비스로 나누어 정상 동작 하는 것으로 전체 시스템을 마이크로 서비스 아키텍처로 변환할 수 있다는 가능성을 증명하였으며, 서비스를 경량화 하고 결합을 느슨하게 만드는 것으로 안정성과 유연성을 확보하였다. 또한 애플리케이션의 장애상황 발생 시 빠르게 인지하고 재기동 될 수 있게 하였으며 이를 검증하는 테스트를 통해 정부 금융 기관의 서비스 수준 협약 지침에도 만족할 수 있다는 것을 증명하였다. 이번 클라우드 도입을 위한 마이크로서비스 아키텍처로의 전환 방안 연구가 클라우드를 도입하려는 개발 조직이 적절한 아키텍처를 도입할 수 있도록 도울 것이며, 나아가 도입된 시스템을 안정적으로 운영할 수 있는데 기여할 것이라 생각한다.
more초록
Currently, the insurance product service of Insurance Company A is built on a monolithic architecture, which has grown, and complexity as new services are continuously added and expanded. This has led to challenges in making changes, increased deployment times, and a significant decrease in the speed of recovery in case of errors. The purpose of this study is to identify these issues, propose ways to solve and replace them by transitioning to a cloud-based microservices architecture. Additionally, I have established a DevOps development environment to ensure continuous integration and deployment of the converted services. An error monitoring system has been implemented to promptly alert system operators in the event of errors. This allows developers to focus solely on application development. In this study, we have demonstrated the possibility of transforming the entire Insurance Company A’s system, currently consisting of a single large service into a microservices architecture that operates smoothly. We achieved this by lightweighting services, making their coupling more flexible, and securing stability and flexibility. Furthermore, we ensured rapid detection and rebooting in case of application failure, and through testing, we have proven that the system meets the service level agreement guidelines of government financial institutions. This research on refactoring to a microservices architecture for the introduction of cloud computing is expected to assist development organizations looking to adopt an appropriate architecture. Moreover, it is believed to contribute to the stable operation of the introduced system.
more목차
제1장 서론 1
1.1. 연구 배경 및 목적 1
1.2. 논문 구성 2
제2장 관련 연구 3
2.1. 클라우드 컴퓨팅 3
2.1.1. 가상화 기술과 자동화 기술 3
2.1.2. 온프레미스와 클라우드 컴퓨팅 서비스 비교 4
2.1.3. 클라우드 도입 사례 5
2.1.4. 클라우드 전환 유형 6
2.2. 마이크로서비스 아키텍처 7
2.2.1. 마이크로서비스와 모놀리식 아키텍처 비교 7
2.2.2. 마이크로서비스 아키텍처 도입 사례 연구 9
2.3. 관련 기술 13
2.3.1. 컨테이너 & Docker 13
2.3.2. Kubernetes 14
2.3.3. ELK Stack 16
제3장 마이크로서비스 시스템 설계 17
3.1. 마이크로서비스 아키텍처 분석 및 설계 17
3.1.1. 도메인 주도 설계를 통한 마이크로서비스 아키텍처 설계 17
3.1.2. Infrastructure 18
3.1.3. 시스템 설계 구성도 19
3.1.4 Storage 설계 21
3.2. DevOps 개발환경 구축 24
3.2.1. 자동 배포 구조 설계 24
3.3. 에러 모니터링 시스템 28
제4장 실험 및 성능평가 30
4.1. 테스트 시나리오 30
4.2. 성능 평가 33
제5장 결론 37
참고 문헌 38