본문 바로가기
[IT]/MSA

[MSA] Micro Service Architecture(MSA) 란 ?

by dop 2021. 2. 25.

마이크로 서비스란? 

마이크로서비스는 애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 서비스 지향 아키텍처 스타일의 일종인 소프트웨어 개발 기법이다.

위키백과에 마이크로 서비스를 검색하면 위와 같이 설명한다. (무슨소리인지 잘 모르겠다..)

 

마이크로 서비스가 발전하기 전 대부분의 웹 어플리케이션들은 모놀리식 아키텍처 형태로 개발되었는데,

이는 단 하나의 산출물로 패키징하여 배포하는 방식이었다.

어플리케이션이 크고 복잡해지면 각 팀의 의사소통과 조정비용이 크게 증가하고, 각 팀에서 변경이 있을 때 마다 어플리케이션 전체를 빌드/테스트해서 배포해야하는 문제점이 발생하게 된다.

(배포가 얼마나 번거로운 일인지 느꼈었다. Jenkins연동 전 까지는...)

 

이러한 문제점을 해결하기위해 착안된 것이 마이크로 서비스이다.

작은 분산서비스들로 구성하여 대형 어플리케이션을 제한된 책임을 갖는 컴포넌트 단위로 분리하여 보다 쉽게 관리할 수 있게 되었고, 각 팀은 배포시 독립적으로 빌드/테스트 배포하여 전체적인 개발효율이 증대되는 장점이 있다.

 

마이크로 서비스의 특징 

- 각자 책임이 명확한 작은 컴포넌트로 분해하고 이를 조합해서 솔루션을 제공한다.
- 각 컴포넌트는 작은 책임영역을 담당하고 완전히 독립적으로 배포된다.
- 클라이언트와 서비스 제공자 사이의 데이터 교한을 위해 경량 프로토콜(HTTP, JSON 등)을 사용한다.
- 항상 중립적 프로토콜(JSON이 가장 보편적)을 사용해 통신하므로 다양한 언어와 기술로 구축이 가능하다.

마이크로 서비스의 장점 

유연성 : 새로운 기능을 신속하게 제공하도록 분리된 서비스를 구성할 수 있다.

           단위가 작을수록 테스트/배포에 소요되는 시간도 단축된다.

회복성 : 문제가 발생했을 때 어플리케이션의 작은 부분에 국한되어, 전체장애로 확산되기 전에 억제된다.

확장성 : 분리된 서비스를 여러 서버에 쉽게 분산할 수 있어 기능 및 서비스를 적절하게 확장할 수 있다.

           모놀리식 서비스의 경우에는 한 부분에 병목점이 발생하면 전체를 확장해야하고 큰 비용이 소요됨.

 

728x90

'[IT] > MSA' 카테고리의 다른 글

[MSA] 마이크로 서비스의 빛과 그림자  (0) 2021.04.05
[MSA] MSA 학습하면서..  (0) 2021.03.05