🤓 Cloud-Native
1️⃣ 일반적인 의미 “클라우드 네이티브”
- 클라우드 컴퓨팅 제공 모델의 이점을 활용하는 애플리케이션 구축 및 실행 접근 방법
- 핵심은 애플리케이션을 어떻게 만들고 배포하는지에 있으며 위치는 중요하지 않음
- 온-프로미스 환경과 달리 애플리케이션이 퍼블릭 클라우드에 위치함을 암시
2️⃣ CNCF가 정의하는 “클라우드 네이티브”
- 컨테이너화되는 오픈소스 소프트웨어 스택을 사용하는 것을 의미
- 애플리케이션의 각 부분은 자체 컨테이너에 패키징, 동적 오케스트레이션을 통해 각 부분이 적극적으로 스케줄링 및 관리되어 리소스 사용률을 최적화
마이크로서비스
지향성을 통해 애플리케이션의 전체적인 민첩성과 유지 관리 편의성을 높임
CNCF 클라우드 네이티브 정의 참고 : https://github.com/cncf/toc/blob/master/DEFINITION.md
Why👀 Cloud-Native Architecture
1️⃣ 확장 가능한 아키텍쳐
- 시스템의 수평적 확장에 유연
- 확장된 서버로 시스템의 부하 분산, 가용성 보장
- 시스템 또는, 서비스 애플리케이션 단위의 패키지(컨테이너 기반 패키지)
- 모니터링
2️⃣ 탄력적 아키텍쳐
- 서비스 생성-통합-배포, 비즈니스 환경 변화에 대응 시간 단축
- 분할된 서비스 구조
- 무상태 통신 프로토콜
- 서비스의 추가와 삭제 자동으로 감지
- 변경된 서비스의 요청에 따라 사용자 요청 처리(동적 처리)
3️⃣ 장애 격리(Fault isolation)
- 특정 서비스에 오류가 발생해도 다른 서비스에 영향 주지 않음
🙇♂️참조:
https://wonit.tistory.com/486
https://www.itworld.co.kr/news/109679
Spring Cloud로 개발하는 MSA, Inflearn, Dowon Lee