MSA 학습(2) - Cloud Native Application
Cloud Native Application
- Microservices로 개발
- 개발된 Microservices는 CI/CD 시스템으로 자동으로 통합, 테스트, 배포 과정을 거침
- 기획, 구현, 테스트, 배포 과정을 시스템 종료 때까지 반복하는 DevOps
- Microservices를 Cloud 환경에 배포하기 위해 Container 가상화 기술을 사용
CI/CD
- 지속적인 통합, 배포
- Jenkins, Team CI, Travis CI 등 CI 시스템을 Git과 같은 형상 관리 시스템과 연동하여 사용
- 완성된 결과물을 배포하기 위해 카나리 배포, 블루그린 배포 등의 전략 존재
DevOps
- Development + Operations
- 개발 조직과 운영 조직의 통합으로 고객의 요구사항을 신속하게 반영하고 만족도 높은 결과물 제시
- DevOps 환경에 맞춰서 서비스의 구조를 작은 단위로 분할함으로써 자주 통합, 테스트, 배포할 수 있는 구조 설계
Container 가상화
- 기존 로컬 환경에서 운영하던 시스템을 Cloud 환경으로 이전하여 적은 비용으로 탄력있는 시스템을 구축하게 된 배경이 된 기술
- 기존 하드웨어 가상화, 서버 가상화에 비해 적은 리소스를 사용하여 서비스 구축
- OS위에 Container 가상화를 위한 소프트웨어를 작동하고 공통적인 라이브러리나 리소스를 공유해서 사용하고, 필요한 부분에 대해서만 독립적인 영역에서 실행