Cloud & Platform
PaaS 기반 MSA(Microservices Architecture) 개발 방법론
PaaS 기반 MSA(Microservices Architecture) 개발 방법론 학습 내용을 정리한 백필 노트입니다.
이 글은 2025년 학습 기록을 블로그 형식으로 정리한 백필 노트입니다.
1. 앱 현대화(Application Modernization)
개요
- 핵심 영역:
- 인프라 현대화: 클라우드 IaaS/PaaS 도입.
- 컨테이너화: Windows .NET·Spring Boot 컨테이너 전환.
- DevOps/GitOps: AKS 기반 GitOps·DevOps 환경, 자동화 배포.
- Service Mesh & Serverless: Istio 및 Azure Functions 구성.
적용 방안
- Container화:
- 공통 패키지·라이브러리·모듈 포함, Base 이미지 보안 검증, Git 기반 Dockerfile 관리, Jenkins 등 CI/CD 자동화.
- 서비스 단위 최소화, 독립적 개발·배포, API 연계.
- DevSecOps, CI/CD, 장애 대비(Self-Healing), Blue/Green·Rolling Upgrade 배포 전략.
- MSA 설계:
- 서비스별 독립 개발·운영, API First 설계, All-Active 클러스터 및 GitOps 기반 PaaS 체계 적용.
2. 클라우드 네이티브 애플리케이션을 위한 MSA 개발 방법론
- 프로세스:
- 진단 및 계획: 기존 시스템 현황 분석, 영향도 평가, 개발 대상 선정.
- 모델링 및 설계: 서비스 분할 기준 수립, 도메인·업무 서비스 분석, 기술 스택·아키텍처 설계.
- 개발·테스트·배포: Spring Boot/Cloud 기반 서비스 개발, DevOps 및 CI/CD 환경 구성, 단위·통합 테스트 자동화.
- 운영·최적화: 성능 측정·최적화, 모니터링 및 서비스 검증, 안정화.
3. 컨테이너화(Containerization) 표준 방법론
- 4단계:
- 진단 및 분석: 신규 구축 대상 인프라·서비스 분석, 클라우드 전환 요구 수렴, To-Be 구성 결정.
- 이미지 설계: 최적 OS·필수 패키지·라이브러리·모듈 선정 후 Base 이미지 설계.
- 이미지 빌드: Dockerfile 정의, CI/CD 파이프라인으로 빌드·테스트·형상 관리.
- 이미지 검증: Docker Registry 등록 후 단위·통합·보안 테스트로 최적화.
5. MSA 모델링 방법론
- 도메인 주도 설계(DDD): 도메인 전문가가 업무 기능을 소프트웨어로 모델링, 피드백을 통해 설계 강화.
- Bounded Context: 독립된 서비스와 모델로 분리.
- Contract-First(API-First): RESTful API 표준화 설계.
- Decomposed Database: 데이터베이스를 서비스별로 분할해 의존성 최소화.
- Event-Driven Architecture: Event Generator·Channel·Processing Engine으로 실시간 분산 처리.
5. MSA 세대 기반 아키텍처 진화
- MSA 1.0: Spring Cloud/Boot 기반 Java 단일 아키텍처.
- MSA 2.0: GitOps + Spring Cloud/Boot + Kubernetes 기반 Polyglot 아키텍처.
- MSA 2.5: Spring Cloud/Boot/Vert.X + Kubernetes, Sidecar Service Mesh 적용.
- MSA 3.0: Istio + Kubernetes, 다언어 지원, 애플리케이션 코드에서 트레이싱·라우팅 등 제거.
- MSA 4.0: Istio + Kubernetes + Serverless, 일부/전체 서비스를 Function으로 구현, GitOps 연동.