Cloud Native란?
클라우드의 이점을 최대로 활용할 수 있도록 애플리케이션을 구축하고 실행하는 방식을 말합니다.
기존 시스템에서의 애플리케이션은 클라우드 이점을 100% 활용하지 못했다면, 마이크로 서비스 아키텍처를 채택하고 컨테이너, 쿠버네티스와 같은 기술과 도구, DevOps, 애자일 방법론 등을 도입하여 개발자 생산성, 비지니스 민첩성, 확장성, 가용성 및 비용 절감 효과를 크게 높일 수 있습니다.
CNCF 정의
CNCF(Cloud Native Computing Foundation)
- 퍼블릭, 프라이빗, 하이브리드 클라우드 환경에서 확장성 있는 애플리케이션을 만들고 운영할 수 있다.
- 컨테이너, 서비스 메시, 마이크로 서비스, 불변의 인프라 스트럭처, 그리고 선언적 API가 전형적인 접근 방식에 해당한다.
- 회복성이 있고, 관리 편의성을 제공하며, 가시성을 갖는 느슨하게 결한된 시스템을 사용할 수 있다.
- 견고한 자동화와 함께 사용하면, 엔지니어는 최소한의 수고로 영향력이 크고 예측 가능한 변경을 할 수 있다.
클라우드 네이티브를 위한 주요 4가지 요소
1. DevOps
2. CI/CD
3. 컨테이너 기반 인프라
4. Micro Service
마이크로서비스
마이크로서비스 아키텍처는 애플리케이션을 이루는 서비스들을 기능 단위로 쪼개서 구축하는 것을 말합니다. 서비스끼리는 프로그래밍 언어에 구속받지 않는 API를 통해서 통신하며 각 서비스는 각각 자체 DB를 가지게 됩니다.
마이크로서비스 아키텍처는 애플리케이션을 작은 기능으로 나누어 구축하기 떄문에 개별 서비스들은 더 쉽게 변경하거나 확장할 수 있으며, 서비스마다 다른 언어, 프레임워크, 라이브러리를 사용할 수 있다는 장점이 있습니다. 하지만, 모놀리식 보다는 구조가 복잡하고 여러 서비스에 데이터가 분산되어 있어 데이터 관리가 어렵다는 단점이 있습니다.
참고: https://cloudmt.co.kr/?p=3927
'Back-end > Basic' 카테고리의 다른 글
SEDA(Staged Event-Driven Architecture) (0) | 2022.03.06 |
---|---|
Kafka Streams API (0) | 2022.03.06 |
쿠버네티스(kubernetes)를 왜 쓰는가? (0) | 2022.03.06 |
Jenkins 설정 (0) | 2021.11.23 |
Thread-safe 하다는 의미와 설계하는 법 (0) | 2021.11.22 |