반응형
Microservice
- SOA (Service Oriented Architecture) 의 경량화 버전 (Service: 특정 기능의 집합, service의 범위 정의가 중요)
- 모놀리틱 아키텍처(monolithic architecture / large Application )를 쪼개서 독립적으로 구분
- 독립적으로 deploy / 확장 될 수 있는 서비스들을 조합하여 large 어플리케이션을 구성하는 아키텍처 패턴입니다.
- 일반적으로 Service Discovery, API Gateway, Orchestration, Choreography, Context Boundary등의 서비스들의 조합
Monolithic architecture
legacy system의 경우
① 일부 모듈의 변경사항 때문에 전체 어플리케이션 개발/운영 프로세스와 패키징에 영향을 준다.
② 모듈별 특성에 맞는 신기술 또는 구조를 적용하기 어렵다.
③ 모듈별 확장이 어렵다.
MSA
① Application의 각 BL에 따라 책임이 명확한 작은 컴포넌트로 분리하여 이 서비스를 조합함으로서 기능을 제공하는 서비스 아키텍쳐 디자인 패턴
② 각 컴포넌트는 작은 책임 영역을 담당하고 완전히 상호 독립적으로 배포.
마이크로서비스는 하나의 비즈니스 영역의 책임을 담당한다. 그리고 여러 애플리케이션에서 재사용할 수 있다.
③ 데이터 통신은 HTTP와 JSON 같은 경량 통신 프로토콜을 사용.
④ 애플리케이션은 항상 기술 중립적 프로토콜을 사용해 통신하므로 서비스 구현 기술과는 무관하다. 따라서 마이크로서비스 기반의 애플리케이션을 다양한 언어와 기술로 구축할 수 있다는 것을 의미한다.
⑤ 작고 독립적이며 분산된 마이크로서비스를 사용해 조직은 명확히 정의된 책임 영역을 담당하는 소규모 팀을 보유할 수 있다. 이 팀들은 애플리케이션 출시처럼 하나의 목표를 향해 일하지만, 자기가 개발하는 서비스만 책임진다
- 작은 서비스들로 나누고, 각 서비스를 독립적으로 만듦 → loosely-coupled (이로 인해 오는 장점)
- 대용량 분산 환경에 적합
- 복잡도 감소
- 유연한 배포
- 재사용성 → 확장성
- 서비스별 hw/sw 플랫폼/기술의 도입 및 확장이 자유롭다.
- 개발자가 이해하기 쉽고 개발/운영 매 단계의 생산성이 높다.
- 지속적인 개발/디플로이가 biz capability 단위로 관련된 소수의 인원의 책임하에 이루어질 수 있다.
- fault isolation 특성이 좋다.
References
https://waspro.tistory.com/429
반응형
'DevOps' 카테고리의 다른 글
[mysql] user level lock (0) | 2020.01.08 |
---|---|
MSA (0) | 2019.10.08 |
AWS SaaS conference (0) | 2019.08.23 |
Linux (0) | 2019.08.21 |
rdb (0) | 2019.08.12 |