반응형
HeroKu에서 만든 12개의 고려사항에 대한 정리입니다.
https://12factor.net/
- Base Code
- 버전 제어
- 형상 관리
- 코드를 한 곳에서 배포(CI/CD)
- Dependency Isolation
- 각 마이크로 서비스는 각 종속성을 가지고 있어 전체 시스템에 영향도가 없어야함
- Configurations
- 코드 외부에서 마이크로 서비스에 필요한 작업 제공 필요
- 하드 코딩 된 설정 분리
- Linkable Backing Services
- DB, Caching, Broker(Kafka, MQ) 등 이용
- 리소스를 분리하여 서로 상호가능한 서비스 운영
- Stages Of Creation
- 빌드, 릴리즈, 실행환경 분리
- Stateless Processes
- 분리되어 독립적으로 실행 가능한 서비스여야 함
- Port Binding
- 각각의 서비스는 자체 포트로 운영 가능해야함
- Concurrency
- 많은 수에 작은 서비스를 확장해 나가야함(동시성)
- Disposability
- 특정 서비스가 없어도 다른 서비스에 영향이 없어야함
- Development & Production Parity
- 개발, 운영 단계 분리
- 수명 주기 전반에 걸쳐서 바로 서비스를 엑세스할 수 없게 해야함(API Gateway 등을 거쳐서)
- Logs
- 로그를 이벤트 스트림으로 처리해야함
- 기존 서비스와 분리가 되어 서비스가 동작하지 않더라도 로그는 정상적으로 적재되어야 함
- Admin Processes For Eventual Processes
- 운영되고 있는 모든 마이크로 서비스의 관리나 리소스 등을 관리할 수 있는 도구가 있어야 함
- 리포트나 데이터 관리 분석 가능
Pivotal Software 에서 3가지 고려사항을 추가했습니다.
- API First
- 모든 마이크로 서비스는 API로 동작
- Telemetry
- 모든 지표는 시각화, 수치화되서 관리
- Authentication and Authorization
- 각 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 |