MSA를 선택해야 하는 이유

키워드

MSA_1

MSA란 마이크로서비스 아키텍처(MicroService Architecure)의 약어로 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스로 구성된 프레임워크라고 할 수 있습니다. 즉, 마이크로 서비스는 단위 기준으로 관리가 되며, 각 서비스를 조직 단위별로 설계하여 각 단위 기준으로 자율적인 개발 및 배포가 가능합니다.

MSA_2

MSA 도입의 좋은 예

MSA를 도입하는 기업이 증가하는 이유는, 여러가지가 있지만, 그 중 가장 큰 이유는 단위기준의 개발이 가능하다는 특징이 있기 때문입니다.
특히 서비스를 담당하는 팀이 회원 관리, 상품 관리, 정산 관리 등으로 구별되어 있는 경우 MSA를 도입하기 좋은 환경이라고 할 수 있습니다.

실제 MSA를 도입한 기업으로는 예를 들면, 넷플릭스를 언급할 수 있는데, MSA를 도입한 이유는 가용성, 유연한 스케일링, 그리고 빠르고 쉬운 배포가 가능하기 때문입니다.
각 서비스들이 API로 연결되어 있고, 서비스에 따라 분할된 여러 개의 DB를 사용하고 있어, 서킷 브레이커로 어느 한 서비스에 장애가 발생해도 다른 서비스로 영향을
미치는 것을 차단합니다. 이를 통해 서비스 중단의 위험을 극복하면서 전 세계에 동영상 서비스 제공이 가능한 인프라를 구축하였습니다.

또한 쿠팡에서도 MSA를 도입하고 기존의 모놀리식 아키텍처 구조에서 발생된 문제를 해결하였습니다.
일부 장애가 발생하게 되면, 전체 서비스로 확대되어, 이로 인해 서비스 운영 오류가 빈번하게 발생되었지만, 독립적 운영이 가능해지면서 빠른 배포를 할 수 있게 되었고,
각 서비스의 수정 / 개선을 쉽게 할 수 있게 되면서 이로 인해 서비스 확장이 가능해졌습니다.

MSA 도입 시 장점과 주의사항

첫째, 여러가지 서비스를 각 개별적으로 작동하기에 서비스 하나에 문제가 생겨도 사이드 이펙트 이슈 범위가 작습니다.
MSA를 도입한 기업에서 공통으로 언급한 부분은 각 단위 기준 개발의 독립성이 보장되기 때문에, 장애가 발생해도 전체 서비스에 영향을 주지 않는 점입니다.

둘째, 기존 서비스를 유지하면서 유연한 확장이 가능합니다.
결합된 코드가 해당 기능에 한정되기 때문에, 그만큼 코드에 대한 복잡성이 줄어들고, 이에 따라 해당 서비스에 대한 부분만 확장이 가능합니다.

셋째, 각 서비스가 분리되어 있기에 변경이 있는 서비스 부분만 부분 배포를 쉽게 진행할 수 있습니다.
서비스 규모가 클수록, 전체 대한 파악이 어렵고, 해당 부분만 개발하기 어렵습니다. 이러한 이유로 분석 / 개발에 드는 시간이 많아지는데, MSA가 도입되게 되면, 개발 및 테스트 그리고 배포까지의 프로세스가 짧아져 업무가 향상되게 됩니다.

다만, MSA 도입 시 단점도 있습니다. 독립된 서비스로 운영하게 되면서, 각 서비스의 개발인력 규모가 커진다는 점입니다.
뿐만 아니라 각 서비스가 독립적으로 구성되기 때문에 중복되는 부분이 존재하게 되고 그만큼 메모리 사용량이 높아집니다.
또한 각 서비스를 구별하여 관리하기 때문에, 데이터 관리가 어렵고, 데이터 정합성이 다를 수 있습니다.

MSA는 이처럼 장점과 단점 모두 가지고 있는 아키텍처입니다.

MSA를 도입하기 전 고려해야될 점은
여러 서비스로 세분화되면서 각 서비스가 어떤 서비스를 활용할 수 있는지, 그리고 지원을 받을 수 있는지 권한, 소스 관리에 대한
고려가 필요하여, 여러 서비스를 사용하기에 마이크로서비스 분산DB 설계가 필요합니다.
뿐만 아니라 관리 대상 서버가 증가함에 따라 로깅, 추적, 모니터링, 테스팅에 대해 고려해야합니다.

(주) 넥스트이노베이션

서울특별시 광진구 천호대로 572 범천타워 8층

Tel. 02-6337-0310 / 02-6265-0901   |    Email. next@nextinnovation.kr

개인정보보호책임자 전병훈

COPYRIGHTⓒ NEXITINNOVATION. ALL RIGHTS RESERVED.