KEEP GOING
MSA(MicrodoftService Architecture)이란 무엇인가 본문
MSA (MicrodoftService Architecture)
(1) 마이크로서비스(Microservice)의 의미
마이크로 서비스는 독립적으로 배포/확장 가능한 서비스들을 조합하여 큰 어플리케이션을 구성하는 아키텍처 패턴이다.
보통 API Gateway, Orchestration, Service Discovery, Choreography, Context Boundary 등의 서비스들의 조합으로 이루어져 있다.
Netflix, Twitter, Amazon, Nike 등의 회사에서 채택한 아키텍처로 소개되면서 14년 초반부터 현재까지 주목 받고 있다.
(2) 아키텍처(Architecture)의 의미
아키텍처란 최적화를 목표로 시스템 구성과 동작원리, 구성환경 등을 설명 / 설계하는 설계도를 말한다.
기본 Computer Science 지식을 기반으로 주변 환경등을 고려하여, 고급 소프트웨어를 구성하는 방법을 연구하고
이를 바탕으로 가이드하는 역할을 한다.
MSA 장점
- 각각의 서비스가 모듈화되어 있어 모듈끼리 RPC, message-driven API 등을 이용해 통신 가능하다.
- 개별 서비스 개발이 신속함, 유지보수 용이함
- 기술 스택을 다르게 가져갈 수 있음.
즉, spring 기반 java를 사용중이더라도 node.js 기반 javasript로 블록체인 개발 모듈을 연동할 수 있음
- 마이크로서비스는 서비스별 독립 배포가 가능함
- 마이크로서비스는 각 서비스 부하별로 scale-out이 가능함. 메모리, cpu 활용면에서 효율성 증가
MSA 단점
- 개발 환경과 실제 운영 환경이 다를 수 있다. 즉, 통합 테스트가 어려움
- 실제 운영환경에서 배포하기 어려움.
만약 서비스 1개를 재배포한다면, 타 서비스들과의 연계도 일일이 검사해야 함
- 모놀리식에 비해 매우 복잡함.
모놀리식은 단일 트랜잭션을 유지한다.
하지만 MSA는 서비스가 각기 다른 데이터베이스를 가질 수 있다.
또한 서비스 연결시 통신이 필요하므로 트랜잭션 유지가 어렵다.
- 분산된 서비스를 가지므로 개발자가 내부 시스템 통신을 규정해야 함
출처 : wooaoe.tistory.com/57
tuhbm.github.io/2019/04/24/architecture/
waspro.tistory.com/429
blog.skby.net/msa-micro-service-architecture/
'etc' 카테고리의 다른 글
우대 자격증 정리 (0) | 2021.01.27 |
---|---|
2021 데이터자격시험 sqld/sqlp 시험일정 (0) | 2021.01.11 |
금융정보보호 컨퍼런스 FISCON 2020 (0) | 2020.11.11 |
동적 메모리 할당 : malloc(), memset() (0) | 2020.11.10 |
깃허브(GitHub) 명령어 오류 해결 : git push -u origin master (0) | 2020.11.10 |