
Cloud Native Application 방식으로는 크게 3가지로 나눠짐
CI/CD + DevOps + Container 가상화
1. CI/CD
CI (Continous Integration) : 지속적인 통합
- 통합 서버, 소스 관리(SCM), 빌드 도구, 테스트 도구 ex) Jenkins, Team CI, Travis CI
CD : 지속적 배포
- Continuous Delivery (수동 반영)
- Continous Deployment (자동 반영)
- Pipe line
배포 전략 : 카나리 배포와 블루 그린 배포
- 카나리 배포
- 95% 사용자를 이전 버전 서비스 사용
- 5% 사용자를 새 버전 서비스 사용
- 블루 그린 배포
- 점진적으로 새로운 버전으로 옮겨갈 수 있는 방식
2. DevOps
Development + Operations
목적 : 개발조직과 운영 조직의 통합으로 고객의 요구사항을 빠르게 반영하고 만족도 높은 결과를 제시
기존의 엔터프라이즈 애플리케이션
고객의 요구사항에 맞춰서 도메인을 분석하고 시스템 설계, 애플리케이션 구현
그리고 테스트 다음 배포 과정을 거쳐서 시스템 개발을 완료하게 됨
이는 시간이 오래걸림
개발기간이 길어진다 == 변경사항과 요구사항에 바로 대처가 어려움
바로바로 수정될 수 있는 구조가 좋은데
자주 테스트하고 자주 피드백 받고 자주 업데이트하는 과정을 전체 개발일정이 완료될 때까지 지속적으로 끊임없이 진행해 가는 것을 DevOps라고 보면 됨.
클라우드 네이티브 애플리케이션은 서비스의 구조를 작은 단위로 분할할 수 있게 함으로써 더 자주 통합하고 더 자주 테스트하고 더 자주 배포할 수 있는 구조를 만듦.
3. Container 가상화
기존의 로컬 환경에서 운영하고 유지해야만 했었던 시스템들을 클라우드 환경으로 이전을 하면서 적은 비용으로 탄력성 있는 안정성 있는 시스템을 구축할 수 있게된 배경
Traditional Deployment -> Virtualized Deployment -> Container Deployment
Traditional Deployment

- 전통적인 개발 시스템
- 하드웨어 위에 운영체제 설치 그 위에 어플리케이션 운영
Virtualized Deployment

- 서버 가상화
- 운영체제 위에 Hypervisor(하이파이저)라는 기술을 이용하여 VM(가상머신)을 기동하는 방식
- 가상머신은 시스템이 가지고 있는 물리적 리소스를 쪼개 가상의 OS를 만든 후 그곳에 독립적인 어플리페이션 실행
- 장점: 각각의 가상머신에 어플리케이션을 독립적으로 운영할 수 있음
- 단점 및 한계: 가상머신에서 작동되고 있는 어플리케이션은 호스트 운영체제에 많은 부하를 줄 수밖에 없고, 이는 시스템 확장에 한계를 가져옴
Container Deployment

- 운영체제 위에 컨테이너 가상화를 기동하기 위한 컨테이너 런타임 서비스를 준비
- 컨테이너 가상화는 공통적인 라이브러리나 리소스를 공유하고 있기 때문에 각자 필요한 부분에 대해서만 독립적으로 실행 가능
- 공유할 수 있는 부분은 공유를 하고 기존에 가지고 있던 라이브러리 위에 필요한 부분들을 계층적으로 새롭게 올려서 쓰는 형태 구축 -> 작은 사이즈로 운영 가능
- 장점 : 운영체제 자체가 가상화될 수 있고, 플랫폼, 비들웨어, 프레임워크, 개발환경 등이 컨테이너 가상화로 만들어지게 됨으로써, 원하는 부분에 대해서만 가상화를 시킬 수 있다는 장점을 가짐
- 더 작은 리소스를 가지고 원하는 환경을 구축할 수 있음
'MSA' 카테고리의 다른 글
| Monolith vs Microservices (0) | 2026.01.02 |
|---|---|
| 12 Factors (0) | 2026.01.02 |
| [MSA-초기세팅]🏗️ MSA 환경 구성 (1) (0) | 2025.10.09 |
| [MSA-기획/설계] DDD기반 설계 EventStorming 도입하기 (0) | 2025.10.09 |