본문 바로가기

DevOps

MSA

반응형

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