MSA 아키텍처란?

마이크로서비스 아키텍처(MSA) 개념

마이크로서비스 아키텍처(micro-service architecture, MSA)는 단일 대규모 애플리케이션을 여러 개의 소규모 애플리케이션으로 분할하여 이들을 변경 및 결합할 수 있는 아키텍처이다.
특징 MSA의 성격에 대해서는 산업협정도 정식적인 정의도 없이 다음과 같은 특징을 갖는 개념이라고 생각해 주십시오.

- MSA는 서비스 지향 아키텍처(SOA) 스타일의 일종인 소프트웨어 개발기술이다.
- MSA의 서비스는 섬세하고 프로토콜도 가볍다.
- MSA는 어플리케이션을 여러 개의 소규모 서비스로 분류할 수 있습니다.
- MSA는 모듈성을 향상시키고 애플리케이션의 이해, 개발, 구축, 테스트, 도입을 용이하게 합니다.
- MSA를 사용하면 소규모 팀이 팀 고유의 서비스를 개별적으로 개발 및 펼칠 수 있습니다.
- MSA 에서는, 계속적인 리팩토링을 통해, 각 서비스 아키텍쳐를 1개로 통합할 수 있습니다.
- MSA에 의해, 계속적인 전개가 가능하게 됩니다.

전술한 바와 같이, 어플리케이션을 전문적인 기능으로 분할하는 것으로, 어플리케이션 추상화가 자연스럽게 가능하게 된다.
예를 들어 '인증'을 담당하는 서비스는 다른 서비스가 약속한 인터페이스를 사용하여 인증 프로세스를 실행할 수 있다.
또한, 검색창에서 "자동 완료"를 담당하는 서비스는 사용자의 입력을 받아 자동 완료 결과에 응답하면 되므로 API를 유지하면서 언제든지 자세한 구현을 용이하게 개선 및 변경할 수 있다.
최근 REST API의 일반화, Docker 등의 컨테이너 기술, 클라우드 컴퓨팅 환경의 진보로 마이크로서비스 구현이 쉬워졌다.

장점
먼저 MSA의 장점을 보겠습니다. MSA는, 서비스의 성장에 수반해, 모노리식 아키텍쳐의 문제를 어느 정도 보충할 수 있습니다.
▶ 배포 관점 서비스별로 개별 배포가 가능합니다 (배포 중에 서비스 전체를 중단하지 않습니다). 요건을 신속히 반영하여 신속하게 도입하겠습니다.
▶ 확장성 관점 특정 서비스로 쉽게 확장할 수 있습니다. 클라우드에 적합한 아키텍처입니다.
▶ 장애가 완전한 서비스로 확대될 가능성은 낮습니다. 부분적인 방해에 대한 고립은 쉽다.
또 신기술 적용에 유연성이 있고 다국어로 서비스를 개발 운영할 수 있다는 장점이 있다.

단점
모노리식 아키텍처는 보다 단순한 아키텍처인데 반해, MSA는 보다 복잡한 아키텍처이며, 서비스 전체가 성장함에 따라 기하급수적으로 성장할 수 있다.
▶ 성능서비스 간 통화에 API를 사용하기 때문에 통신비용과 대기시간이 증가한다.
▶ 테스트 트랜잭션 서비스가 분리되어 테스트와 트랜잭션의 복잡성이 높아지고 많은 리소스가 필요하게 됩니다.
▶ 데이터 관리 데이터는 서비스 간에 분산되기 때문에 한 번에 쿼리를 하기 어렵고, 데이터의 일관성을 관리합니다.

필요성
다음 항목이 대부분 현 상황에 해당한다고 생각한다면 마이크로서비스 아키텍처의 패턴을 고려하는 것이 좋습니다.
-어플리케이션전개에시간이걸리는경우.
- 간단한 기능 변경으로 기능 전체에 QA가 필요한 경우.
- 단순한 버그 수정은 종종 더 중요한 버그를 발생시킵니다.
- 현재 어플리케이션이 기능별로 분할되어 있는 경우 수십 개의 마이크로 서비스가 가능합니다.

'IT개발' 카테고리의 다른 글

크롤링이란?  (0) 2021.08.10
랜덤포레스트란?  (0) 2021.08.08
빅데이트 프로세싱이란?  (0) 2021.08.07
TensorFlow란?  (0) 2021.08.06
강인공지능이란?  (0) 2021.08.06

댓글

Designed by JB FACTORY