마이크로 서비스 구축위한 12가지 실천( Tweleve-Factor)

Developer:Bird·2021년 1월 14일
0

마이크로서비스

목록 보기
2/4

[성공적인 마이크로 서비스 아키텍처 위한 12가지 실천들]

1.코드베이스: 모든 애플리케이션 코드 및 서버 프로비저닝 정보는 버전관리 되어야한다. 각 마이크로서비스는 소스 제어 시스템 안에 독립적인 코드 저장소를 가져야한다.
2.의존성: Maven,gradle와 같은 빌드 도구를 이용해 명시적으로 선언
3.구성: 애플리케이션 구성을 코드와 독립적으로 저장.이때 소스코드와 절대 동일한 저장소 있으면 안된다.
4.벡앤드 서비스: 데이터베이스 구현을 자체 관리형 서비스에서 외부업체 서비스로 교체할 수 있어야 한다. 예를들어 PostGress->AWS
5.빌드,릴리즈,실행: 배포할 애플리케이션의 빌드,릴리즈,실행 부분을 철저히 분리, 코드가 빌드되면 실행중에 코드 변경 불가능.
6.프로세스: 서비스는 Stateless방식을 사용하여야한다. 서비스 인스턴스가 종료된다고해서 데이터 손실일어나면 안된다.
7.포트 바인딩: 별도의 웹 또는 애플리케이션 서버 없이도 서비스는 실행되어야 한다. HTTP포트 통해서 즉시 액세스 가능해야한다.
8.동시성:: 확장시 단일 서비스 내에서 스레드 모델에 의존하기보다는 더많은 마이크로서비스 시작 및 수평확장
9.폐기 가능 : Kill signal시 바로 종료
10.개발 및 운영 환경 일치 : 서비스가 실행되는 모든 환경(개발자의 데스크
톱 환경도 포함) 사이의 차이를 최소화

11.로그: 로그는 스트리밍 되야하고 중앙에 기록되어야한다.
12.관리 프로세스: : 개발자는 종종 담당 서비스에 대해 데이터 마이그레이
션이나 변환처럼 관리 작업을 수행해야 한다. 이러한 작업은 임의로 수행되면 안 되고 소스 코드 저장소에 유지 및 관리되는 스크립트에 의해 수행되어야 한다
각 환경에 맞추어 스크립트를 수정하지 않는다.

출처:https://12factor.net/

profile
끈임없이 발전하자.

0개의 댓글