마이크로서비스 구현패턴



## 견고한 마이크로 서비스 구축을 위한 주제
- 적정 크기 : 과도한 책임을 맡지 않도록 한다.신속한 변경 가능
- 위치 투명성 : 서비스 호출에 대한 물리적 상세 정보 관리
- 회복성 : 장애를 우회하고 빨리 실패하고 마이크로서비스 소비자를 보호하는 무결성 유지
- 반복성 : 새로운 서비 인스턴스가 시작할 때마다 운영 환경의 다른 서비스 인스턴스 구성과 코드 베이스를 동일하게 만드는 방법
- 확장성 : 비동기 프로세싱과 이벤트를 사용해 서비스 간 의존성을 최소화하고 원만하게 마이크로서비스를 확장하는 방법
## 핵심 개발 패턴
- 서비스 세분성 : 마이크로 서비스의 적정 수준
- 통신 프로토콜 : XML, JSON 등
- 인터페이스 설계 : URL을 구조화 하는 방법, 서비스 버전 관리
- 서비스간 이벤트 프로세싱 
## 라우팅 패턴 
- 서비스 디스커버리
- 서비스 라우팅
## 클라이언트 회복성 패턴
- 클라이언트 측 부하분산(client-side load balancing) : 인스턴스 위치를 캐싱하는 방법
- 회로 차단기 패턴 (circuit breakers pattern) : 고장난 서비스를 계속 호출하지 않게하는 방법
- 폴백 패턴(fallback pattern) : 호출 실패시 대체수단
- 벌크헤드 패턴 (bulkhead pattern) : 오작동 호출을 구분하는 방법
## 마이크로서비스 보안 패턴
- 인증
- 인가
- 자격 증명 관리와 전파
## 마이크로서비스 로깅 및 추적 패턴
- 로그 상관관계
- 로그 수집
- 마이크로서비스 추적
## 마이크로서비스 빌드 및 배포 패턴
- 빌드 및 배포 파이프라인
- 코드형 인프라스트럭처
- 불변서버
- 피닉스 서버

출처 : 존 카넬, "스프링 마이크로서비스 코딩 공작소", 정성권 역 (길벗, 2018)

댓글

이 블로그의 인기 게시물

Session 대신 JWT를 사용하는 이유

VSCode에서의 VIM 단축키와 키보드 구매 가이드

우분투에서 테스트링크(testlink)와 맨티스(mantis)로 테스팅 서버 구성하기