Home MSA
Post
Cancel

MSA

MSA의 등장배경

img

Monolithic Architecture

  • 소프트웨어의 모든 요소가 한 프로젝트에 통합되어있는 형태.

  • 소규모 프로젝트에 적합

한계점

  • 서비스/프로젝트가 커질수록, 영향도 파악 및 전체 시스템 구조의 파악에 어려움이 있음.

  • 빌드 시간 및 테스트시간, 배포시간이 기하급수적으로 증가

  • 서비스를 부분적으로 scale-out하기 힘듬

  • 부분의 장애가 전체 서비스의 장애로 이어지는 경우 발생

Micro Service Architecture

img

  • 하나의 에플리케이션을 여러 작은 서비스들로 나눠서 개발하는 아키텍쳐 스타일

  • 각각의 서비스들이 자신만의 프로세스로 동작하고 독립적으로 배포될수 있음.

MSA의 장단점

MSA의 장점

  • 요구사항을 신속하게 반영하여 빠르게 배포가능

  • 확장성이 용이하기 때문에, 클라우드 사용에 적합한 아키텍쳐

  • 장애가 전체 서비스로 확장될 가능성이 적음

  • 신기술 적용이 유연, polyglot 개발/운영이 가능하다.

MSA의 단점

  • 전체서비스가 커짐에 따라서 복잡도가 기하급수적으로 증가할수 있음.

  • 서비스간 호출시 API를 사용하기 때문에, 통신 비용이나 Latency 가 그만큼 늘어나게 됨.

  • 테스트/트랜잭션 - 서비스가 분리되어 있기 때문에 테스트와 트랜젝션의 복잡도가 증가하고, 많은 자원을 필요로 함.

  • 데이터 관리 - 데이터가 여러 서비스에 걸쳐 분산되기 때문에 한번에 조회가 어렵고 관리하기 어려움.

출처

https://velog.io/@tedigom/MSA-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1-MSA%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-3sk28yrv0e

This post is licensed under CC BY 4.0 by the author.

Monorepo

annotation

Comments powered by Disqus.

Trending Tags