본문 바로가기

- others

Cloud Native Application 고려사항

반응형

HeroKu에서 만든 12개의 고려사항에 대한 정리입니다.

https://12factor.net/

 

  1. Base Code
    1. 버전 제어
    2. 형상 관리
    3. 코드를 한 곳에서 배포(CI/CD)
  2. Dependency Isolation
    1. 각 마이크로 서비스는 각 종속성을 가지고 있어 전체 시스템에 영향도가 없어야함
  3. Configurations
    1. 코드 외부에서 마이크로 서비스에 필요한 작업 제공 필요
    2. 하드 코딩 된 설정 분리
  4. Linkable Backing Services
    1. DB, Caching, Broker(Kafka, MQ) 등 이용
    2. 리소스를 분리하여 서로 상호가능한 서비스 운영
  5. Stages Of Creation
    1. 빌드, 릴리즈, 실행환경 분리
  6. Stateless Processes
    1. 분리되어 독립적으로 실행 가능한 서비스여야 함
  7. Port Binding
    1. 각각의 서비스는 자체 포트로 운영 가능해야함
  8. Concurrency
    1. 많은 수에 작은 서비스를 확장해 나가야함(동시성)
  9. Disposability
    1. 특정 서비스가 없어도 다른 서비스에 영향이 없어야함
  10. Development & Production Parity
    1. 개발, 운영 단계 분리
    2. 수명 주기 전반에 걸쳐서 바로 서비스를 엑세스할 수 없게 해야함(API Gateway 등을 거쳐서)
  11. Logs
    1. 로그를 이벤트 스트림으로 처리해야함
    2. 기존 서비스와 분리가 되어 서비스가 동작하지 않더라도 로그는 정상적으로 적재되어야 함
  12. Admin Processes For Eventual Processes
    1. 운영되고 있는 모든 마이크로 서비스의 관리나 리소스 등을 관리할 수 있는 도구가 있어야 함
    2. 리포트나 데이터 관리 분석 가능

Pivotal Software 에서 3가지 고려사항을 추가했습니다.

 

  1. API First
    1. 모든 마이크로 서비스는 API로 동작
  2. Telemetry
    1. 모든 지표는 시각화, 수치화되서 관리
  3. Authentication and Authorization
    1. 각 API에 대한 인증
반응형

'- others' 카테고리의 다른 글

[Jenkins] Git, Bitbucket 연동  (0) 2021.05.08
[Jenkins] 설치 - Linux  (0) 2021.05.08
Gradle Multi Module 프로젝트 생성  (0) 2021.05.01
[탐색알고리즘] DFS  (0) 2020.11.21
[탐색알고리즘] 깊이 우선 탐색, 너비 우선 탐색  (0) 2020.11.16