Cloud Native Architecture
특징
확장 가능한 아키텍처
- 시스템의 수평적인 확장에 유연하다.
- 확장된 서버로 시스템의 부하를 분산시켜 가용성을 보장한다.
- 컨테이너 기반(시스템 또는 서비스 어플리케이션 단위)의 패키지
- 사용되는 리소스를 모니터링 할 수 있다.
탄력적인 아키텍처
- 각 기능을 분리된 서비스로 개발
- CI/CD 파이프라인을 통해 여러 환경에 동일한 어플리케이션을 적용하는 시간을 단축시킨다.
- 분리된 서비스 간 원활한 통신을 위해 종속성을 최소화해야 한다.
장애 격리
- 분리되어 개발된 서비스들은 독립적인 어플리케이션과 같다.
- 특정 서비스에 오류가 발생해도 다른 서비스에 영향을 주지 않는다.
Cloud Service Application
Cloud Service Architecture
로 구현된 어플리케이션
특징
Microservices
CI/CD
- 지속적인 통합과 배포
- 형상 관리, 통합과 테스트
- 시스템의 정상적인 운영과 다운타임을 최소화 하는 것이 목적
* 카나리 배포와 블루/그린 배포
- 카나리 배포 : 95% 사용자는 이전 버전, 5% 사용자는 새 버전 서비스를 사용하게 함
- 블루/그린 배포 : 이전 버전과 거의 동일한 새 버전을 점진적으로 이전함
DevOps
- 개발 조직과 운영 조직을 통합해서 요구사항을 빠르게 반영
- 자주 통합, 자주 테스트, 자주 배포할 수 있는 구조
- 마이크로서비스에 문제가 발생했을 때 바로 수정해서 배포하는 과정을 반복할 수 있게 한다.
- 구현-테스트-배포를 시스템 종료까지 무한 반복
- 고객이 원하는 최선의 결과물을 만드는 데 목적
Containers
- 컨테이너 가상화를 통해 클라우드 환경으로 이전해서 적은 비용으로 탄력성 있는 시스템을 구축
- 하드웨어 가상화보다 적은 리소스를 사용
- 가볍고 빠르게 운영