MSA해설/MSA 관련 개념

MSA 단점 및 고려사항

kooangelo 2022. 11. 24. 19:49

MSA는 만병통치약이 아니다.
MSA의 장점은 그냥 얻어지지 않는다. 

공짜가 아니다.
당연히 단점이 있고, 사전에 고려해야할 사항이 있다.
제대로 준비하지 못한채 도입하려 덤빈다면, 흉내낸다면 오히려 단점만 더 부각될 것이다.
이렇게 힘든걸 왜 하자고 했느냐는 아우성만 빗발칠 것이다.


분산 환경으로 인한 복잡성
 - Monolith에 비해 서비스별 분산 환경으로 복잡
 - 분산 Transaction, 데이터 정합성 등 추가 설계/개발 필요
 - REST API 뿐 아니라 Domain Event 특징에 맞춰 추가 설계/개발 필요

Event Driven Architecture 고려/내재화 필요
 - Event 발행/구독의 장점 단점 내재화
 - Eventually Consistency 이해와 내재화

API First Design 필요
 - 서비스간 Interface : API, Publisher, Subscriber
 - 대내외 시스템 간 Interface
 - Consumer, Provider 간의 협의/약속

Test
 - 테스트 전략 : Unit Test, Service Test, Integration Test, End to End Test 등
 - Test 코드, 자동화
 - 모니터링, 오류추적, 통합 테스트 어려움

Learning Curve, 진입장벽
 - DDD, Cloud, DB, Inner/Outer Architecture, DevOps 등등 여러가지 개념과 기술 이해 필요
 - 개발/운영 조직, 조직 문화, PoC, 이행전략, 내재화 등의 방안 필요
 - MSA를 도입하려는 조직의 준비, 내재화 정도

 

  • Monolith에서 MSA로 전환하는 비용, 2배 ~ 10배 (정량적으로 가늠하기도 어려움, 상황에 따라 너무 다르므로)
  • 초기 생산성 낮음
  • 국내 MSA는 아직 완성되지 않은 방법론, 기술 등으로 과도기
  • AA, Facilitator, SWA, DBA, TA, 보안 전문가 등 최소로 필요한 아키텍트 준비