본문 바로가기
아키텍처 | 설계

마이크로 서비스 아키텍처 12장

by 자유코딩 2020. 6. 8.

1. 비즈니스 개념에 따른 모델

- 바운디드 컨텍스트를 잘 나누고 개발한다.

 

2. 자동화 테스팅은 중요하다.

- 빠른 피드백을 얻기 위해서 CI/CD 를 활용한다.

- 어디에나 같은 방식으로 배포하기 위해서 같은 산출물(도커)를 활용한다.

 

3. 내부 구현 은폐

- REST 구조를 고려하라.

- 서로 다른 MSA 가 다른 기술 스택으로 구현되어도 문제 없도록 만들어라

- DB도 분산해라

 

4. 팀을 조직에 맞춰서 조정하라.

 - 콘웨이의 법칙

 

5. 오케스트레이션보다는 코레오그래피를 지향하라.

 - 비동기적인 작업 처리

 

독립적인 배포

 - 다른 서비스와 독립적으로 배포할 수 있도록 해라.

- 블루/그린 배포나 카나리 배포를 고려하라.

 

소비자 주도 계약 테스트

 - 소비자 입장에서 서비스는 ㅁㅁㅁ 해야 한다.

이런식의 내용을 적고 테스트 코드로 옮긴다.

 

버전관리

여러 버전의 엔드포인트가 공존하도록 개발해야 한다.

 

장애격리

- 어디서나 장애가 발생할 수 있다고 생각하고 개발한다.

- 타임아웃 설정한다.

- 회로 차단기, 격벽을 고려한다.

- 주어진 상황에서 가용성과 일관성 중에 어떤것을 희생하는게 맞는지 판단한다.

 

로그와 통계를 수집한다.

 - 시스템간 호출을 추적할 수 있는 상관관계 id 를 사용한다.

 - 상관관계 id = 서비스 호출을 추적할 수 있는 고유 값 ex) project service - 1123

 

msa 를 쓰지 말아야 할때

아직 바운디드 컨텍스트를 어떻게 나눠야 할지 모를때

해당 분야를 잘 모른다면 일단 모놀리틱으로 개발하고 컨텍스트를 나눈다.

잘못 나눠서 개발하는 것보다 그게 낫다.

 

 

 

댓글