Skip to content

Latest commit

 

History

History
74 lines (66 loc) · 2.52 KB

CloudNative-Architecture.md

File metadata and controls

74 lines (66 loc) · 2.52 KB

Cloud Native 아키텍쳐


ㅇ 확장 가능한 아키텍처
  - 시스템의 수평적 확장으로 인해 더 많은 사용자 요청 바등ㄹ 수 있음
  - 확장된 서버로 시스템 부하 분산, 가용성 보장
  - 스케일 업 (하드웨어 사양 높이는 것)
  - 스케일 아웃 (인스턴스 늘림)
  - 모니터링 확인
  
ㅇ 탄련적 아키텍처
  - 분리된 서비스로 개발
  - CI / CD 활용
  - 개발, 테스트 , 운영환경 
  - 종속성을 최소화 시켜야한다. (분리)
  - 상태를 갖지 않아야한다(무상태 프로토콜)
  - 서비스가 어디에 있는지 등록해야함 (디스커버리 서비스에 등록되고 삭제되는 작업을 거침)
  
ㅇ 장애 격리
  - 장애 복구에 띄어나다
  - 특정서비스에 오류가 나더라도 다른 서비스에 영향을 주지 않음

Cloud Native Application


  ㅇ Microserivces 형태로 개발된다.
  ㅇ CI / CD
  ㅇ DevOps (장애가 났을 경우 바로바로 수정해서 재배포 가능)
  ㅇ Containers (컨테이너 가상화)

CI/CD


  ㅇ 지속적인 통합 CI
    - 통합서버, 소스관리(SCM),빌드 도구, 테스트 도구
    - EX) Jenkins,Team CI, Travis CI
    
  ㅇ 지속적인 배포 CD
    - Continuous Deployment
    - Pipe line
    
  ㅇ 카나리 배포와 블루그린배포
    - 카나리 배포 : 95% 사용자 - 이전 버전 사용
                    5% 사용자 - 새 버전 사용
    - 블루그린 배포 : 100% 사용자 - 이전 버전, 새 버전 사용

DevOps


  ㅇ dev + op (개발 + 운영)
    - 서비스와 고객의 요구사항에 맞게 지속적으로 테스트하고 고객의 요구사항을 빠르게 도입시킬 수 있게 자주 통합 & 배포 & 테스트하는 구조

Container 가상화


  ㅇ 클라우드 네이티브 아키텍처의 핵심
  ㅇ 적은 비용으로 탄력성 있는 환경
  ㅇ 적은 리소스를 활용하여 서버 구축 가능
  ㅇ 하드웨어 가상화 기반
    - OS 위에 Hypervisor를 활용하여 가상화
    - 하나의 가상머신은 독립적은 OS를 가지고 있음
    - Host 운영체제에 많은 부하를 주고
    - 시스템 확장에 많은 제약
  ㅇ 컨테이너 가상화 기반
    - OS 위에 컨테이너 가상화(Container Runtime)을 활용하여 가상화
    - 공통적인 라이브러리나 리소스 공유
    - 각자 필요한 영역을 고유
    - 기존의 하드웨어 가상화보다 더 적은 리소스
    - 가볍고 빠르다