1 minute read

1. Cloud Native

1. 개념

Cloud Native는 애플리케이션을 클라우드 컴퓨팅 환경을 기반으로 개발, 배포, 운영/관리하는 소프트웨어 개발 방법론.

  • 개발 단계부터 클라우드 환경을 고려해 애플리케이션을 만드는 기술과 방법들을 포괄하는 개념.

2. 구성 요소

1. 마이크로서비스 아키텍처

애플리케이션을 독립적인 작은 기능들로 분해하여 구축.

  • 각각의 애플리케이션들을 마이크로 한 단위인 서비스로 분리해 독립적으로 개발 / 배포 / 운영
  • 애플리케이션의 모든 기능이 단일 소스로 통합된 모놀리식 구조에 비해, 상대적으로 배포/운영에 있어 유연/확장성이 높음.

2. 컨테이너 기술

실행에 필요한 모든 파일을 포함한 전체 실행(runtime) 환경에서 애플리케이션을 패키징하고 격리할 수 있는 기술

  • 운영체제를 제외하고 어플리케이션 실행에 필요한 모든 파일들을 패키징한 형태.
  • 기존의 서버에 하이퍼바이저를 설치하고, 그 위에 가상 OS(게스트 OS)와 앱을 패키징한 VM을 만들어 실행하는 방식인 ‘하드웨어 레벨’의 가상화와는 달리 컨테이너는 게스트 OS와 하이퍼바이저가 없는 ‘OS 레벨’ 가상화 구조이기 때문에 시스템에 대한 요구사항이 적음​​.(속도, 유연성, 확장성 측명에서 효과적)

3. DevOps

개발(Development)과 운영(Operation) 간의 긴밀한 협업/통합 프로세스를 통합해, 개발에서 배포까지 이르는 프로세스의 속도를 높이는 개발 문화/프로세스/업무 프레임워크

  • 릴리즈 주기를 단축시키기 위해 등장한 개념.

4. CI/CD

개발 - 빌드 - 테스트 - 배포의 전체 프로세스를 통합하고 자동화하여 안정적으로 지속적인 서비스를 제공하기 위한 방법

  • 프로세스 자동화를 통해 개발/배포 시간이 단축, 배포주기가 짧아짐.

    • 더 짧은 주기로 서비스 제공, 개선이 가능해짐.
    • 사용자 요구사항에 신속하게 대응이 가능해짐.
  • CI (Continuous Integration) : 애플리케이션 코드의 새로운 변경 사항이 정기적으로 빌드 및 테스트를 거쳐 공유 repo에 병합되는 것. (빌드, 테스트, 병합까지의 프로세스)
  • CD (Continuous Delivery / Depolyment)
    • Continuous Delivery : CI를 거친 소프트웨어가 항상 prod 환경에 올라갈 준비가 되어 있도록 자동화 된 프로세스.
    • Continuous Depolyment: CI를 거친 소프트웨어가 바로 prod 환경에 올라가도록 자동화 된 프로세스.

2. CNCF (Cloud Native Computing Foundation)

클라우트 네이티브 컴퓨팅 환경에서 필요한 다양한 오픈소스 프로젝트를 추진, 관리하는 리눅스 재단 소속의 비영리 단체

  • 인텔, ARM, 에저, 구글, 레드헷, Vmware 등등 500개 이상의 글로벌 기업들이 참여 중

  • 관리하는 프로젝트들의 경우, 3단계에 따라서 프로젝트 완성도를 관리함.

    • 성숙도 단계(Maturity levels) : SandBox, Incubating, Gradudation
      • Graduation 단계는 실제 운영환경에서 적용할 수 있는 정도의 프로젝트를 말함.

1.CNCF Landscape

CNCF Landscape

  • 모든 클라우드 네이티브 오픈 소스 프로젝트와 독점 제품을 카테고리로 컴파일하고 정리하여 현재 Cloud Native 환경에서 개발에 필요한 기술/툴들에 대한 개요를 제공

출처 & 참조