created : Thu, 18 Aug 2022 15:07:21 +0900
modified : Thu, 18 Aug 2022 15:16:06 +0900
공부 계기
구성요소
- Codebase : 각 마이크로서비스는 각자 코드베이스를 가지고 있고, 공유되지 않는다.
- Dependencies : 의존성을 명시적으로 관리하여야 한다.
- Config : 환경설정은 코드와 분리된다.
- Backing services : backing services 는 URL로 접근 가능해야한다.
- Build, release, run : 이 3단계가 명확히 분리되어야 한다.
- Processes : 무상태, 비공유 프로세스여야 한다. 만약 상태가 필요하면 backing services에서 처리한다.
- Port binding : 서비스 자체로 port binding 이 가능해야한다. (tomcat 같은게 내장되어야한다.)
- Concurrency : 복제를 통한 확장이 가능해야한다.
- Disposability : 시작과 종료는 최대한 빨리 그리고 gracefully shutdown 이 되어야한다.
- Dev/prod parity : 운영을 개발에서 재연가능해야한다.
- Logs : I/O가 병목이 될수 있으므로 바깥쪽으로 빼야한다. (기타 이유들도 있으니 참고자료 확인)
- Admin processes : 관리자를 위해 태스크를 지원해야한다.