1. 마이크로서비스

seohan·2022년 6월 7일
0

마이크로서비스는 비즈니스 도메인 관련을 모델링한 릴리즈 가능한 서비스이다. 서비스는 기능들을 포함하고 있으며 다른 서비스들도 접근이 가능하다. 이러한 빌딩 블록으로부터 더 복잡한 시스템을 구축한다. 예를 들어 마이크로서비스로는 재고관리, 주문관리, 선적관리 등이 있으며 함께 전체적인 커머스 시스템을 구성한다.

외부에서 보면 한 마이크로서비스는 블랙박스로서 엔드포인트 상에 비즈니스 기능을 제공한다. 컨슈머는 이 엔드포인트를 통해 기능을 액세스 한다. 내부의 구현 상세는 외부로부터 완전히 숨겨진다.

핵심 개념

독립적으로 배포 가능

다른 마이크로서비스를 배포하지 않아도 변경 사항을 배포할 수 있다. 더 중요한 점은 시스템에서 여러분이 배포를 다루는 방식이다.
독립적으로 배포 가능하려면 느슨한 결합이어야 한다. 변경 사항이 다른 서비스에 영향을 주지 않아야 한다.

비즈니스 도메인 중심으로 모델링

도메인 주도 설계 기법은 실제의 도메인을 코드로 더 잘 표현하도록 해준다. 마이크로서비스 아키텍처는 이와 동일한 아이디로로 서비스 경계를 정의한다.

비즈니스 도메인 중심으로 서비스를 모델링하면 새로운 기능을 펼치기 쉬우며 서비스들을 다른 방식으로 조합하여 더 쉽게 새로운 기능을 제공할 수 있다.

하나 이상의 서비스를 수정해야 하는 기능은 대가가 크다. 각 서비스에 걸친 작업을 조율해야하고 새 버전의 배포 순서를 잘 관리해야 한다. 이것은 단일 서비스일때보다 더 많은 작업이 필요하다.

아래 그림은 전형적인 3개 티어의 아키텍처이다. 걱 레이어는 다른 서비스 경계를 나타내며 각 서비스 경계는 관련 기술적 기능을 기반으로 한다.

자신만의 상태를 관리

마이크로서비스는 데이터베이스 공유를 피해야 한다는 아이디어를 사람들이 가장 어려워 한다. 다른 마이크로서비스가 잡고 있는 데이터를 액세스하고자 하면 그 마이크로서비스에게 그 데이터를 요청해야 한다. 이렇게 해야 어떤 것을 공유할지 숨길지를 결정하는 능력을 제공된다.

규모

유연성

아키텍처에 맞게 조직을 배치

좋아하는 장르를 지정할 수 있는 기능을 하려고 한다. 이 경우 아레그림과 같은 부분의 변경이 필요하다.

profile
코드코드

0개의 댓글