초보 개발자의 기록

MSA 개념 본문

Architecture/MSA

MSA 개념

bambinodeveloper 2022. 10. 2. 01:38
728x90

Microservice

비즈니스 애플리케이션을 구성하는 여러 개의 작은 기능들

독립적으로 배포 가능한 단위로 구성

마이크로 서비스는 사람과 조직 간의 커뮤니케이션을 최소화하고, 변경 범위와 이에 대한 리스크를 회소화함으로 딜리버리를 가속화

- 독립적 단일 기능

- 의존성 탈퇴

- 컨텍스트 의미 부여

- 데이터 조작 분리

- 상호 인터페이스

 

MSA

여러개의 작은 서비스를 구축하고 이들을 조합하여 비즈니스 애플리케이션을 개발하는 아키텍처 방식

각 서비스는 개별 프로세스로 실행되어야 하고, 가벼운 방법으로 통신

자동화된 배포방식을 이용하여 독립적으로 배포

중앙 집중적 관리 최소화

각 서비스는 서로 다른 언어와 데이터 저장 기술을 사용하여 구축 가능

장점

- 빠른 개발 및 대응 가능

- 개발 언어에 독립적

- 작은 규모의 팀으로 개발 및 운영 가능

- 장애/문제에 대한 영향도 최소화

- 클라우드 적용 용이

- 확장성 좋음

- 신기술 적용 수월

 

단점

- 장애 발생 시 근본적인 파악이 쉽지 않음

- 업무상 복잡하거나 서비스 간 의존성이 있는 로직의 경우 적용 어려움

- 다른 곳에서 api를 호출하는 경우 테스트 어려움

- 다수의 microservice가 하나의 트랜잭션으로 엮일 때 개발, 테스트 어려움

- 분산환경에서 데이터 정합성 문제 발생

 

728x90
반응형

'Architecture > MSA' 카테고리의 다른 글

MSA를 도입하려는 이유  (0) 2022.10.01
MSA와 DB 다양성 적용  (0) 2022.09.30
MSA 도입의 필요성  (0) 2022.09.29
MSA란 무엇인가?  (0) 2022.09.28