666
마이크로서비스 아키텍처 구축 전면 개정판
션형 사가는 한 팀이 전체 프로세스를 책임질 때는 잘 작동하지만 여러 팀이 함께할 때는 문제
가 커진다는 것이다. 오케스트레이션형 사가는 여러 팀이 하나의 프로세스에 대해 협업해야 하
는 상황에서 복잡성이 증가하더라도 사용될 수 있다.
빌드빌드
각 마이크로서비스에는 고유한 빌드, 고유한
CI
파이프라인이 있어야 한다. 필자는 마이크로서
비스를 변경할 때 해당 마이크로서비스를 자체적으로 빌드할 수 있어야 한다. 모든 마이크로서
비스를 함께 빌드해야 하는 상황은 독립적인 배포를 훨씬 더 어렵게 만들기 때문에 피해야 한다.
7
장에서 설명한 이유로 필자는 모노레포를 좋아하지 않는다. 모노레포를 정말 사용하고 싶다
면 명확한 소유권 경계와 빌드의 잠재적 복잡성 때문에 발생하는 문제를 잘 이해해야 한다. 하
지만 모노레포를 사용하든 멀티레포 방식을 사용하든 각 마이크로서비스에는 다른 빌드와 독
립적으로 트리거할 수 있는 고유한
CI
빌드 프로세스가 있다는 점을 확실히 기억하라.
배포배포
마이크로서비스는 일반적으로 프로세스로 배포된다. 이 프로세스는 물리적 머신, 가상 머신,
컨테이너 또는
FaaS
플랫폼에 배포할 수 있다. 이상적으로는 마이크로서비스가 배포된 환경에
서 가능한 한 서로 격리돼 있어야 한다. 하나의 마이크로서비스가 많은 자원을 사용하면서 다
른 마이크로서비스에 영향을 미치는 상황을 원치 않는데, 일반적으로는 각 마이크로서비스가
격리된 자체 운영체제와 일련의 컴퓨팅 리소스들을 사용한다는 의미다. 컨테이너는 ...