오픈마루
04778 서울시 성동구 뚝섬로1길 31 906 호
(성수동1가, 서울숲M타워)
Tel : 02-469-5426 | Fax : 02-469-7247
Email : sales@openmaru.io
최근 IT 시스템의 개발과 운용에 있어서 “Microservice (마이크로 서비스)”라고 하는 아키텍쳐를 도입하는 사례가 늘고 있습니다.
마이크로서비스 아키텍처는 간단히 말하면 서비스를 구성하는 각 요소를 ‘마이크로 서비스’라고 불리는 독립된 작은 컴포넌트로 구현한다는 방법입니다.
마이크로서비스 아키텍처 ( Microservices Architecture : MSA ) 란?
MSA 는 ThoughtWorks사의 마틴 파울러와 제임스 루이스가 만든 소프트웨어 아키텍처로, 모놀리식 아키텍처와는 달리, 비즈니스 기능에 맞추어 여러 개의 작은 「마이크로 서비스」로 분할한 후 연결하여 큰 소프트웨어 기능을 구현하는 것입니다. 이를 통해 신속한 개발, 실행 및 잦은 업그레이드, 뛰어난 가용성 및 확장성을 실현할 수 있습니다.
정리하자면,
MSA ( Microservices Architecture ) 는 애플리케이션이 서비스 모음으로 개발되는 애플리케이션 아키텍처의 한 유형입니다.
또한 MSA 다이어그램과 서비스를 독립적으로 개발, 배포, 유지관리할 수 있는 프레임워크를 제공합니다.
쉽게 풀어서 설명하자면,
마이크로서비스 아키텍처(주로 마이크로서비스라고도 함)란 애플리케이션 개발을 위한 아키텍처 스타일을 의미합니다. 마이크로서비스를 사용하면 대규모 애플리케이션을 각각 담당 영역을 가진 소규모의 독립적인 구성요소로 구분할 수 있습니다.
마이크로서비스 기반 애플리케이션은 단일 사용자 요청을 처리하기 위해 여러 내부 마이크로서비스를 호출하여 응답할 수 있습니다.
마이크로서비스 아키텍처 ( Microservices Architecture ) 와 모놀리식 아키텍처 ( Monolith Architecture ) 의 차이
모놀리식 접근법이란?
지금까지 소프트웨어 시스템의 대부분은 한 통으로 묶인 모놀리식 애플리케이션으로 개발되었습니다. 컴포넌트가 느슨하게 결합된 마이크로서비스 및 서비스 지향 아키텍처와는 대조적으로, 모놀리식 애플리케이션에서는 컴포넌트와 기능이 밀접하게 결합된다. 모놀리식 접근법에는 다음과 같은 단점이 있습니다.
코드 기반이 확대되는 반면에 개선이나 변경을 하기 어렵고, 개개의 변경이 어플리케이션 전체에 영향을 미칠 가능성이 있기 때문에 리팩토링이 쉽지 않음
모놀리식 애플리케이션 전체에 변경의 영향이 미치기 때문에, 테스트와 개발이 복잡함.
컴포넌트 하나의 장애로 전체 애플리케이션이 다운되므로 위험이 높음.
마이크로서비스는 기존의 모놀리식 시스템보다 뛰어난 유연성을 제공합니다.
대규모 개발팀을 통한 서비스 개발
사용자의 다양한 요구사항을 유연하게 수용
비즈니스 기능에 맞추어 분할하여 개발별적으로 강화
여러가지 형태의 개발 모델 지원
가장 큰 차이는 애플리케이션의 크기입니다. 모놀리식 아키텍처에서는 크기가 너무 커서 변경, 도입, 확장을 할 수 없습니다. 이 부분에서 마이크로서비스 아키텍처는 유연하게 대응할 수 있습니다.