마이크로 서비스 패턴 - 책 1장 정리

요약

MSA 아키텍처에 대한 개념

아키텍처 개념을 실제 설계 판단에 연결하기 위한 참고 노트입니다.

핵심 포인트

  • MSA 아키텍처에 대한 개념
  • 마이크로 서비스 패턴 Microservices Patterns
  • 들어가며
  • 1장 - 모놀리식 지옥에서 벗어나라
  • 확장 큐브와 마이크로서비스

지식 그래프

정리 내용

마이크로 서비스 패턴 Microservices Patterns

이 책의 한국어판 저작권은 대니홍 에이전시를 통한 저작권사와의 독점 계약으로 (주)도서출판 길벗에 있습니다. 저작권법에 의해 한국 내에서 보호를 받는 저작물이므로 무단전재와 복제를 금합니다. - 이 포스팅은 학습 목적으로 작성된 포스트로 문제가 있다면 내리겠습니다.

들어가며

이 책은 아키텍처, 개발이므로 개발자와 아키텍트, CTO 등 소프트웨어 개발 담당자를 대상으로 합니다. 주로 MSA 아키텍처에 대한 개념을 설명합니다. 엔터프라이즈 어플리케이션 아키텍처/설계의 기본적인 내용 정도만 익숙하면 된다. 3계층(3-tier) 아키텍처, 웹 애플리케이션 설계, 관계형 DB, 메시징/REST를 통한 프로세스 간 통신(IPC), 애플리케이션 보안에 관한 기초지식은 필요합니다.

1장 - 모놀리식 지옥에서 벗어나라

  • 모놀리식 지옥이 도래할 조짐과 마이크로서비스 아키텍처를 도입하여 지옥에서 벗어나는 방법
  • 마이크로서비스 아키텍처의 주요 특징과 장단점
  • 크고 복잡한 애플리케이션을 데브옵스 스타일로 개발하는 방법
  • 마이크로서비스 아키텍처 패턴 언어를 사용하는 이유

확장 큐브와 마이크로서비스

서비스 중심의 기능 분리와 모듈화로 독립적인 서비스의 독립성과 고유 책임 분산이 Y축을 의미한다. x축은 다중 인스턴스로 부하를 분산하는 것이다. 마지막 z축은 샤딩으로 트랜잭션 및 데이터 볼륨을 처리하기 위해 사용자를 나눠 서버에 분산하는 기술이다. 이 기술은 안정 해쉬등 다양한 알고리즘을 통해 정규 분포를 낮출 수 있다.

정리하며..

  • 모놀리식 아키텍처 패턴은 애플리케이션을 하나의 배포 단위로 구성한다.
  • 마이크로서비스 아키텍처 패턴은 독립적으로 배포 가능하면서 자체 DB를 보유한 서비스로 시스템을 분해한다.
  • 마이크로서비스 아키텍처는 자율적인 소규모팀으로 작업을 병행할 수 있어 소프트웨어 개발 및 배포 속도가 빠르다.

2장 - 분해 전략

애플리케이션 요건은 크게 두 가지 종류 입니다.

  • 애플리케이션이 정의한 기능 요건입니다. 유스케이스나 사용자 스토리 형태로 정의된 기능 요건은 어느 아키텍처에서나 구현가능합니다.
  • ~성으로 끝나는 품질 요건으로 확장성, 신뢰성 같은 품질 및 관리성, 테스트성 과 같은 요건도 포함됩니다. 데이비드 갈란이 작성한 <<소프트웨어 아키텍처 개론>>에서는

아키텍처 스타일은 체계적인 조직의 관점에서 시스템 군을 정의한다. 좀 더 구체적으로 말하면, 아키텍처 스타일은 그 스타일로 만든 인스턴스에서 사용 가능한 컴포넌트와 커넥터의 보케블러리, 그리고 잉들을 조합할 수 있는 제약 조건을 결정한다.

대부분의 애플리케이션에서는 아키텍처 스타일을 조합해서 사용한다. 모놀리식 아키텍처도 구현 뷰를 하나의 컴포넌트로 구성한 아키텍처 스타일이다. MSA는 애플리케이션을 느슨하게 결합된 여러 서비스로 구성하는 아키텍처 스타일이다.

모놀리식

마이크로서비스 아키텍처

하나의 6각형이 하나의 서비스를 의미할 때 하나의 컴포넌트(서비스)에 모든 기능이 들어간 모놀리식과 MSA와 같이 여러 서비스를 느슨한 연결(REST API 등) 을 통한 아키텍처의 차이점이 있다.

이 책의 한국어판 저작권은 대니홍 에이전시를 통한 저작권사와의 독점 계약으로 (주)도서출판 길벗에 있습니다. 저작권법에 의해 한국 내에서 보호를 받는 저작물이므로 무단전재와 복제를 금합니다.

출처