OTHER

[OTHER] 마이크로 서비스 아키텍처

집한구석 2021. 9. 28. 14:40
728x90

Microservices

https://dzone.com/articles/microservice-architecture-learn-build-and-deploy-a

  • 소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성
  • 구성 : Container, Funcations, API Gateway 등

MSA 등장배경

  • 모놀리식 아키텍처에 한계점으로 인해 등장함
  • 모놀리식의 경우 서비스 변경이 어려움 (여러 컴포넌트가 하나의 서비스에 강하게 결합되어 있어, 수정시 영향도가 큼)
  • 모놀리식은 모든 구성요소가 한프로젝트에 통합되어 있는 형태라 규모가 커질 수록 작은 변경에도 높은 테스트 비용이 발생하며, 하나의 시스템을 개발하여 배포하기 때문에 배포시 비용이 큼
  • 모놀리식 아키텍처에서 부분 서비스 장애시, 전체 서비스의 장애로 확대될 가능성이 큼

MSA 특징

  • 애플리케이션 로직을 각자 책임이 명확한 작은 컴포넌트 들로 분해하고 이들을 조합한 솔루션을 제공
  • 각 컴포넌트는 작은 책임 영역을 담당하고 완전히 상호 독립적으로 배포됨, 마이크로서비스는 비즈니스 영역의 한부분에서만 책임을 담당, 여러 애플리케이션에서 재사용이 가능해야함
  • 마이크로서비스는 몇가지 기본 원칙에 기반을 둠, 서비스 소비자와 서비스 제공자 사이의 데이터 교환을 위해 HTTP / JSON과 같은 경량 통신 프로토콜을 사용
  • MSA는 API를 통해서만 상호작용 할 수 있음, end-point를 API형태로 외부에 노출하고, 실질적인 세부 사항을 모두 추상화 (내부 구현로직, 아키텍처 프로그랭언어, 데이터베이스 등 철저하게 가려짐)
  • 작고 독립적이라서 분산된 마이크로서비스 특징을 살려 명확하게 정의된 책임 영역을 담당하는 소규모 팀을 구성할 수 있음