MSA

[MSA] MSA 특징 및 장단점

우엥우아앙 2021. 8. 18. 04:14

MSA 원칙

  • 마이크로서비스 구현시 지켜야할 원칙 : 서비스 하나에 책임도 하나

특징

1) API 를 통해서만 마이크로서비스와 서비스와 상호작용할 수 있다.

2) 마이크로 서비스는 가볍다.

3) 다양한 언어로 구성할 수 있다.

  • 동일한 기술 다른버전
  • 서로 다른 언어
  • 서로 다른 아키텍쳐

4) 마이크로서비스 환경에서의 자동화

  • 개발단계의 자동화를 위해 GIT과 같은 형상관리도구와 Jenkins, Travis CI 같은 지속적 통합도구를 함께 사용
  • 마이크로서비스는 단위 비즈니스 영역에 맞춰 만들어지므로, 일체형 어플리케이션보다는 자동화해야할 테스트 케이스가 수가적

5) 마이크로서비스를 지원하는 생태계

  • 데브옵스 프로세스, 중앙 집중식 로그관리, 서비스 헤지스트리, API 게이트웨이, 모니터링, 서비스 라우팅, 작업 흐름 통제 메커니즘

6) 동적이고 분산돼 있는 마이크로서비스

  • Rest 등 가벼운 통신 아키텍처, 또는 kafka 등을 이용한 message stream 을 주로 사용

7) 붕괴 저항성, 빨리 실패하기, 자체 치유

  • 빨리 실패하기란?
    • 장애를 견딜 수 있고 회복력이 좋은 시스템을 구축
    • 장애가 발생하지 않는 시스템을 구축하기보다는 장애를 예상하고 대응할 수 있는 시스템을 만드는 쪽에 무게를 둔다.
  • 자체 치유란?
    • 마이크로서비스에서 널리 사용되는 개념으로 시스템 장애로부터 학습하고 스스로 장애에 적은

장단점

장점

1) 복잡성의 문제 해결

2) 서비스는 팀 단위로 문제가 해결

3) 마이크로서비스의 개별 배포

4) 마이크로서비스의 개별 Scale-out

단점

1) 복잡성 증가

2) 데이터 Transaction의 일관성

3) 통합테스트의 어려움

4) 배포의 어려움

 

 

참고블로그

https://sabarada.tistory.com/51?category=822070