Infra & Devops/Architecture

마이크로 서비스 아키텍처(MSA, MicroService Architecture) 기본 개념

겸둥이xz 2021. 9. 29. 02:37
반응형

MSA란?

 

  • Microservice는 SOA(Service Oriented Architecture)의 경량화 버전
  • 하나의 Monolithic Application을 핵심 기능으로 세분화한 것
  • 하나의 큰 어플리케이션을 여러개의 작은 단위로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처

Monolithic의 단점

  • 하나의 기능을 추가하거나 수정하면 전체 시스템을 재배포 해야함
  • 서비스가 커질수록 빌드, 테스트, 배포 시간이 기하급수적으로 늘어나고, 시스템 구조의 파악이 어려움
  • 서비스를 부분적으로 Scale-out하기 힘들다
  • 한 부분의 기능에 장애가 발생하면 전체 시스템이 마비됨

MSA의 장점

  • 서비스들이 상호 독립적이여서 유지보수 및 배포가 간편함
  • 서비스에 장애가 발생하면 각 서비스마다 독립적으로 발생하는 것이기 때문에 전체 시스템이 다운 되지않음
  • 확장성이 용이함 : 새로운 기능이 필요하면 새로운 서비스를 만들어 배포
  • 개발자는 각자 자신이 편한 언어로 개발가능

MSA로 구성된 전체 서비스가 커지면?

  • MSA는 보다 복잡한 아키텍처로, 전체 서비스가 커지면 그 복잡도가 기하급수적으로 늘어남
  • 서비스 간 호출 시 API를 사용하기 때문에, 통신 비용이나 Latency가 그만큼 늘어남
  • 서비스가 분리되어 있기 때문에 테스트와 트랜잭션의 복잡도가 증가하고, 많은 자원을 필요로함
  • 데이터가 여러 서비스에 걸쳐 분산되기 때문에 한번에 조회하기 어렵고, 데이터 정합성 관리가 어려움
반응형