필자가 MSA 로 넘어간 시점도 언 6년이 다되어간다.
당시 레거시 소스전체를 다운로드 받는데에만 몇시간이 걸렸고 빌드에만 1시간 이상이 걸렸던...
오류 하나 발견되어 (오류를 심지어 쉽게 찾았음에도 불구하고) 재배로 나가는 시간만 1시간 이상이...
걸렸던 거대 시스템의 한 개발자로써 상당히 불편함을 느끼고 있던 도중 MSA구조는 이러한 상황을
해결하는데 돌파구가 되었다.
저정도 까지의 시스템이 아니더라도 MSA구조(유사 MSA라도)로 넘어오는 회사들이 많다.
물론 넘어오면서 시스템 복잡성이 증가되는 것도 사실이다.
이 글에서는 MSA 장점과 단점에 대해서 다룰려고 한다.(MSA가 perfect한 아키는 아니다)
[장점]
1. 빌드 시간을 획기적으로 단축 시켜준다.
가장 큰 장점 중 하나일 것이다. Netflix의 MSA 전환사례를 보면 전환 후 하루에 수백번 이상을 운영 배포
진행한다고 알려져있다. 그만큼 빌드시간이 짧고 자동화된 파이프라인을 통해(CICD) 빠르게 배포할 수
있는 것이다.
(Netflix 관련 장표는 아래에서 확인가능하다)
2. 서비스 처리 속도 향상
하나의 서버에서 처리해야할 처리량이 획기적으로 줄어든다. 왜? MSA로 쪼개진 micro service 가 각각 다른 서버에
분포되어 배포되어 지기때문이다. 성능향상이 유저 경험도 달라지게 한다.
3. 장애시 격리 처리
각각의 서비스들이 다 각각의 서버에 배포되어있고 하나의 장애가 시스템 전체의 장애로 퍼지는 것을 막을 수 있다.
이를 지원하는 대표적인 패턴이 서킷브레이크, 사이드카이다(다른 장표에서 다룰 예정)
4. 개발팀의 분리
쪼개진 마이크로 서비스별로 팀 조직을 달리가져 갈 수 있다. 큰 조직의 문제점이 유연한 대처와 빠른 의사결정, 전파
변화를 하는데에는 느리다는 단점이 있는데 이를 서비스 분리를 통해 진행할 수 있다.
5. 무한한 확장가능
더이상 DB나 서버의 성능향상을 기다리지 않아도 된다. 몰로리식방식에서도 LB등을 이용하여 서버증가는 가능
했지만 DB의 한계까진 극복할 수 없었다. 아무리 Oracle로 샤딩 처리를 한다해도 인덱스 내부 처리등의 한계로
복잡한 쿼리 수행을 하는데에 몇분이 수행되는 경우도 빈번했다.(쿼리튜닝, SGA 튜닝은 이미 한 이후이다.)
위에서 언급한거 말고도 여러 장점들이 있을 것이다.
이제 단점에 대해서 알아보려한다.(다음 장표에서)
https://www.slideshare.net/slideshow/microservices-at-netflix/37814066
MicroServices at Netflix - challenges of scale
MicroServices at Netflix - challenges of scale - Download as a PDF or view online for free
www.slideshare.net
'Architecture > MSA' 카테고리의 다른 글
멱등성 이란 ? idempotent (0) | 2025.02.18 |
---|