Cloud Native Application이란

Woo0·2023년 11월 8일
post-thumbnail

Cloud Native Application은 클라우드 컴퓨팅 환경에서 작동하도록 특별히 설계되고 구축된 소프트웨어 애플리케이션의 한 유형이다. Cloud Native Application은 확장 가능성, 유연성 및 내구성과 같은 클라우드 플랫폼의 이점을 활용하여 조직과 사용자에게 다양한 이점을 제공한다.

➡️ Cloud Native Application과 기존 Application의 차이점

구분Cloud Native Application기존 Application
애플리케이션 구조Microservicesmonolithic
빌드 및 배포CI/CD수작업
팀 구성DevOps역할에 따른 구성
자원 제공 형태Containers물리서버 or 가상화서버

서버를 자체적으로 구축하고 운영까지 하는 기존 Application은 자유롭게 커스터마이즈할수 있는 장점이 있지만 초기 비용이 커지기는 단점이 있다.

Cloud Native Application은 모든 것을 클라우드에 구축하기 때문에 초기 비용이 크게 들지 않지만 월단위로 이용 요금이 지불되는 단점이 있다.

➡️ Cloud Native Application를 구축함에 있어 고려해야할 12 Factors

  • Base Code: 코드 통합
  • Dependency Isolation: 종속성의 배제
  • Configurations: 환경설정의 외부관리
  • Linkable Backing Services: 백업 서비스의 분리
  • Stages Of Creation: 개발환경과 테스트 운영환경의 분리
  • Stateless processes: 상태 관리
  • Port Binding: 포트 바인딩
  • Concurrency: 동시성
  • Disposability: 서비스의 올바른 상태유지
  • Development & Production Parity: 개발과 운영환경의 통일
  • Logs: 로그의 분리
  • Admin Processes For Eventual Processes: 관리 프로세스

(+3 Factors)

  • API first
  • Telemetry
  • Authentication And Authorization

출처
Spring Cloud로 개발하는 마이크로서비스 애플리케이션 (이도원)
http://www.opennaru.com

profile
실패를 두려워하지 않는 백엔드 개발자가 되기 위해 노력하고 있습니다.

0개의 댓글