본문 바로가기

Personal/Cloud

Cloud Native Architecture

확장 가능한 아키텍처

- 시스템의 수평적 확장에 유연

- 확장된 서버로 시스템의 부하 분산과 가용성을 보장한다.

- 시스템 또는, 서비스 애플리케이션 단위의 패키지 (컨테이너 기반 패키지)

- 모니터링

 

탄력적 아키텍처

- 서비스 생성 -> 통합 -> 배포, 비즈니스 환경 변화에 대응 시간 단축

- 분할된 서비스 구조

- 무상태 통신 프로토콜

- 서비스의 추가와 삭제 자동으로 감지

- 변경된 서비스 요청에 따라 사용자 요청 처리(동적 처리)

 

장애 격리

- 특정 서비스에 오류가 발생해도 다른 서비스에 영향 주지 않음

 

Cloud Native Application

CI/CD

- 지속적인 통합, CI(Continuous Integration)

- 통합 서버, 소스 관리(SCM), 빌드 도구, 테스트 도구

- ex) Jenkins, Team CI, Travis CI

- 지속적인 배포

- Continuous Delivery

- Continuous Deployment

- Pipe line

- 카나리 배포와 블루 그린 배포

DevOps

더 자주 통합, 테스트, 배포할 수 있는 구조가 될 수 있다.

 

Container 가상화 - Cloud Native Architecture 핵심

맨 오른쪽 - 전통적인 시스템

중간 - 가상화 시스템

맨 왼쪽 - 컨테이너 가상화 기술 시스템(가상화보다 더 빠르고 가벼움)

 

참고 및 TMI

-> 12 Factors: 애플리케이션이 Cloud 환경에서 올바르게 게 동작하기 위해서 지켜야 하는 12가지 규칙

https://medium.com/dtevangelist/12-factors-%EB%9E%80-b39c7ef1ed30