MSA
하나의 **큰 어플리케이션을 적당히 작은 서비스로 쪼개어 개발
**하는 것
각각의 어플리케이션은 API 형태로 외부에 노출, 실질적인 세부 사항은 모두 추상화된다.
각각의 어플리케이션 → 독립적인 프로세스로 실행되고 개별적으로 배포되어야 한다.
MSA 장점
- 분산형 개발을 통해 효율적인 개발이 가능 (각각의 목적에 맞는 기능들만 개발)
- **
하나의 서버가 다운
**되더라도 연관이 되지 않은 다른 서버에는 영향이 가지 않는다
(모놀리식의 단점)
- Scale-Out 간편하다(같은 사양으로 서버를 여러 대 증설하는것)
- 언어의 제약이 사라진다 (다른 서버의 언어에 구애받지 않고 사용하고 싶은 스택을 적용이 가능하다)
- 새로운 기능 확장에 유연해진다
- CI-CD 과정이 모놀리식보다 쉽기 때문에 고객의 요구에 빠르게 대처 가능
MSA 단점
- 장애 추적이 힘들다
- 구현하고 적용하기 힘들다