본문 바로가기

카테고리 없음

Cloud Native App : CNA

Today Key : Cloud Native App, CNA, Microsoft, Service, MSA, Immutable Infrastructure

 

어제 프레젠테이션용 CNA 포스팅에 이어서, 오늘은 기존의 형식의 CNA 포스팅입니다.

큰 줄기는 당연히 이번 포스팅 내용을 기준으로 만든 프레젠테이션 자료였기 떄문에 똑같지만

아주 약간 추가되어 있는 내용이라고 보시면 될 것 같습니다. 

혹시 수정이나 추가되었으면 하는 부분은 알려주시면 감사하겠습니다.


 

Cloud Native App 개요

Native App

   - 특정 플랫폼이나 Device에서 사용되도록 개발된 Application.

      최적화 환경에서 구동되기 때문에 성능적으로 Web App 비해 우수.

Web App [ Native App ]

   - 일반적인 표준 Web 기술을 사용하여  Platform이나 Device에 상관 없이 사용되도록 개발된 Application.

      표준 기술로 구현하기 때문에 멀티플랫폼, 플랫폼에 대한 이식성이 우수

 

Cloud Native

  - 클라우드 환경에 최적화 됨, 혹은 태생이 클라우드인, 클라우드 전용

 

Cloud Native App

   - 클라우드 환경에 최적화되어 서비스 되도록 개발된 Application

    - Native App이라는 명칭을 쓰지만, Cloud 환경 어디에서든 구동되기 때문에 의미상으로는 Web-App 같음.

   

 

Cloud Native App 특징

Scalable

    - 유연한 서비스 확장이 가능 (별도의 아키텍처를 변경이 없이)

    - 서비스에 대한 일시적인 확장 수요에 따라서 빠른 서비스 확장 축소가 가능

Agility

    - Application 배포 업데이트 등을 빠르게 구현 가능

    - 빠른 배포 업데이트를 위해 서비스는 독립된 하나의 작은 형태로 동작

Continuity

    - 서비스가 지속적 배포되고, 관리될 있도록 .

    - 서비스에 대한 업데이트 시에도 기존 서비스를 즉각적으로 대체 가능. (서비스 연속성)

    - 서비스 배포를 빠르고, 쉽게 구현하여 지속적인 서비스의 배포(업데이트, 오류 수정 등의 이슈) 가능.

Automation

    - 자동화를 통해서 서비스에 대한 확장 축소가 가능.

    - Applicaion 구동되기 위한 플랫폼을 손쉽게 자동으로 구축이 가능

 

 

 

 

 

Cloud Native App 이해하기 위한 특징

The twelve-factor app

서비스로 제공되는 Web-App, 혹은 SaaS(Software As A Service) 불리는 최근의 소프트웨어를 개발하기에 적합한 방법론

 

 

 

Micro Service

독립적이고 매우 작은 개별 서비스들로 전체의 서비스를 구성

서비스는 다른 서비스와의 종속성을 없애며, 하나의 서비스로 구성된 Application 비해서 가벼움.

 

http://zigispace.net/884

 

Standard API

REST-API와 같은 표준화 된 방식의 API 사용하여 서비스 간의 통신

표준화 통신 방식을 사용하기 때문에, 서비스의 구현은 Polyglot Programming 같이 다양한 방향으로

  구현이 가능. (서비스 간에 통신이 특정 방식이 아니라, 표준화 되어 있기 때문)

http://zigispace.net/891

 

Immutable Infrastructure

Develoment ,QA ,Deploy 전반에 걸쳐서 항상 동일한 환경의 인프라를 제공

Provisioning Tool 혹은 특정 Script 등의 형태 등을 통해서 동적으로 동일한 인프라 환경을 빠르게 제공 가능

  , 하나의 인프라를 구축 후에 지속적인 관리 형태 방식 이외의, 동일한 인프라를 새로 만들어서 기존 인프라를 쓰고

  버릴 있는(disposable) 형태 가져갈 있음

 

Container

단일 Host의 Resource를 격리하여 다수의 시스템을 운영하게 하는 OS 레벨의 가상화

Host OS Resource 공유해서 사용하기 때문에 매우 가벼움.

특히 Docker 같은 Container 형태에서는 이미지가 Layered 형태로 관리되기 때문에 이미지 자체가 가벼움

결국 Resource 대한 효율성 가벼운 형태이기 때문에 Application 배포에 유리

 

Self-Service Infrastructure
Infrastructure-as-a-Service

구조화 된 인프라 형태를 빠르게 배포 가능

IAC (Infrastructure as Code) 코드를 실행하는 것으로 인프라 구축이 가능