-
MSA(Micro Service Architecture)개념 Self Study📝/cloud 2023. 2. 12. 21:38
MSA가 도입되기전
Monolitic : 하나의 암석으로 된 -> 사전적의미
- 장점
- 하나로 되어있어서 동일한 개발 툴을 사용해 개발됨.
- 배포 및 테스트도 하나의 애플리케이션만 수행하면 되므로 개발및 환경 설정이 간단하다.
- 각 컴포넌트 들이 함수로 호출되어 성능제약이 적고, 운영관리가 용이하다.
- 단점
- 빌드/테스트 시간이 길어진다 : 작은 수정에도 시스템전체를 빌드해야한다.
- 선택적 확장이 불가능하다: 이벤트로 인해 서비스 접속량이 폭증할 경우 프로젝트 전체 확장해야한다.
- 하나의 서비스가 모든 서비스에 영향을 준다 : 이벤트 서비스에 트래픽이 몰려 해당서버가 죽게된다면 다른 모든 서비스 역시 마비되는 상황이 발생
MSA(Micro Service Architecture)
- 단일 프로그램을 각 컴포넌트 별로 나누어 작은 서비스 조합으로 구축하는 방법
- 애플리케이션 로직을 각자 책임이 명확한 도메인 별로 분리하여 이를 조합해 솔루션을 제공한다.
-어플리케이션은 항상 기술 중립적 프로토콜을 사용해 통신하기때문에 서비스 구현기술과 무관하다. 이는 한 서비스를 구축하할때 개발언어 및 기술에 종속되지 않고 다양한 언어와 기술을 사용할 수 있다는 장점이있다.
- 장점
- 각 컴포넌트는 서비스 형태로 구현되고 API를 이용하여 타 서비스와 통신되고 독립된 서버로 타 컴포넌트와 의존성이 없다.
- 독립적이므로 부분적인 확장이 가능하다.
ex)트래픽이 증가한다면 해당 서버만 확장하면 된다.
- 단점
- 모놀리식에 비해 MSA의 경우에는 서비스간 호출을 API통신을 이용하므로 속도가 느리다.
- 통신을 사용하기위해 값을 데이터 모델로 변환시켜주는 오버헤드 발생 할수도 있음.
데이터 분리
- 데이터 저장시 하나의 DB에 중앙집중화 하지않고 서비스별 별도의 데이터베이스를 사용
- 같은 DB를 사용하더라도 나누어서 사용하게 된다.
- 독립적으로 개발/배포를 할수 있지만, 다른 컴포넌트의 데이터를 API를 통해 가져와야하므로 성능상 문제가 발생할수 있음.
API Gateway
- API서버 앞 단에서 모든 API서버들의 End-Point를 단일화 하여 묶어준다.
- API복잡한 서비스간의 API구조를 단순화 시켜준다.
모놀리식 MSA 마이크로서비스 아키텍처(MSA) 개념 소개 - CLIPSOFT
작성자 : 이응호 과장 마이크로서비스 아키텍처(MSA) 개념 소개 프리랜서로 일하고 있는 지인이 최근 구직을 하고 있었습니다. 그러면서 하는 말이 요즘 IT업계 구직시장에서 최고의 화두가 M
clipsoft.co.kr
'개념 Self Study📝 > cloud' 카테고리의 다른 글
클라우드 네이티브(Cloud Native) (0) 2023.02.20 Docker Compose (0) 2023.02.12 - 장점