클라우드 네이티브 어플리케이션
개념
클라우드 네이티브는 클라우드 컴퓨팅 모델의 장점을 모두 활용하는 애플리케이션을 개발하고 실행하기 위한 접근 방식
Traditional Application vs Cloud Native Application
구분 | 전통적인 애플리케이션 | 클라우드 네이티브 애플리케이션 |
---|---|---|
핵심 | 안정성 | 타임투마켓 |
개발 방법 | 폭포수형 개발 방법 | 애자일 개발 방법 |
팀구성 | 팀 구성 (개발팀, 운영팀, QA팀, 보안팀 등) | DevOps 팀 |
애플리케이션 구조 | 모노리스 | 마이크로서비스 아키텍처 |
자원 제공 형태 | 물리 서버 또는 가상화 서버 | 컨테이너 (OS 가상화) |
확장성 | 수동 확장 / 제한적 | 자동 확장 / 무제한 |
애플리케이션 아키텍처 | 강결합 / 모노리스 | 느슨한 결합 / 서비스 기반 / API 기반 통신 |
빌드/배포 | 수작업 | Continuous Integration / Continuous Delivery |
OS 의존성 | OS 종속 | OS 추상화 (OS 종속성 제거) |
클라우드 서비스
클라우드 서비스의 종류는 아래와 같이 크게 3가지로 나눌 수 있다.
- Infrastructure as a Service(IaaS, 아이아스, 이에스)
- 서비스로 제공되는 인프라스트럭처입니다. 개발사에 제공되는 물리적 자원을 가상화한다.
- Platform as a Service(PaaS, 파스)
- 서비스로 제공되는 플랫폼입니다. 개발사에 제공되는 플랫폼을 가상화한다.
- Software as a Service(SaaS, 사스)
- 서비스로 제공되는 소프트웨어입니다. 고객에게 제공되는 소프트웨어를 가상화한다.