1.클라우드 네이티브
1.Cloud Native
Native, 태생
클라우드 컴퓨팅 모델의 이점인 탄력성(Elasticity)과 분산 컴퓨팅 환경의 특성에 맞게 애플리케이션을 구축하기 위한 방법론
클라우드는 어디(where)에 관한 것이고, 클라우드 네이티브는 어떻게(how)에 관한 것
1-1. Cloud Native 정의
클라우드 네이티브 기술은 조직이 퍼블릭, 프라이빗, 그리고 하이브리드 클라우드와 같은 현대적이고 동적인 환경에서 확장 가능한 애플리케이션을 개발하고 실행할 수 있게 해준다. 컨테이너, 서비스 메쉬, 마이크로서비스, 불변(Immutable) 인프라, 그리고 선언형(Declarative) API가 이러한 접근 방식의 예시들이다.
이 기술은 회복성, 관리 편의성, 가시성을 갖춘 느슨하게 결합된 시스템을 가능하게 한다. 견고한 자동화 기능을 함께 사용하면, 엔지니어는 영향이 큰 변경을 최소한의 노력으로 자주, 예측 가능하게 수행할 수 있다.
Cloud Native Computing Foundation은 벤더 중립적인 오픈 소스 프로젝트 생태계를 육성하고 유지함으로써 해당 패러다임 채택을 촉진한다. 우리 재단은 최신 기술 수준의 패턴을 대중화하여 이런 혁신을 누구나 접근 가능하도록 한다.
탄력성, Elasticity
사용자의 수요에 따라 신속하게 필요한 컴퓨팅 자원을 유동적으로 제공하고 회수하고 전환할 수 있는 특성
2. Cloud Native Application
설계 및 개발 단계부터 클라우드 네이티브한 환경을 고려하여 설계된 애플리케이션
클라우드 기반에서 동작하는 애플리케이션이자, 클라우드 환경에서 잘 동작하기 위한 목적을 가지고 개발된 애플리케이션
따라서 이상적인 클라우드 네이티브 애플리케이션은 Cloud Native가 가져야 할 핵심 특성들을 가진 애플리케이션이라고 볼 수 있음
→ 뒤에서 설명
모던 개발 환경에서 클라우드 네이티브 애플리케이션이 필요한 이유
트래픽에 대한 탄력적인 대응 가능
개별 모듈로 분리되어 테스트가 용이함
비용 효율성
빠른 배포 등