마이크로 서비스란?

microservices_600x300

마이크로 서비스는 특정 비즈니스 기능을 수행하고 웹 인터페이스를 통해 통신하는 별도로 배포 가능한 서비스와 분산 애플리케이션을 빌드하는 아키텍처 프로세스를 설명합니다. DevOps 팀은 개별 기능을 마이크로 서비스에 묶고 구성 요소와 같은 마이크로 서비스를 결합하여 더 큰 시스템을 빌드합니다.

마이크로 서비스는 개방형/닫힌 원칙의 예를 적용합니다.

  • 확장을 위해 열려 있습니다(노출하는 인터페이스 사용).
  • 수정을 위해 닫혀 있습니다(각각은 독립적으로 구현 및 버전 관리됨).

마이크로 서비스는 모놀리식 아키텍처에 비해 많은 이점을 제공합니다.

  • 한 서비스의 문제가 애플리케이션의 다른 부분에 충돌하거나 영향을 주지 않도록 하여 SPOF(단일 실패 지점)를 제거할 수 있습니다.
  • 개별 마이크로 서비스를 독립적으로 확장하여 추가 가용성 및 용량을 제공할 수 있습니다.
  • DevOps 팀은 애플리케이션의 다른 부분에 불필요하게 영향을 주지 않고 새 마이크로 서비스를 추가하여 기능을 확장할 수 있습니다.

마이크로 서비스를 사용하면 팀 속도를 높일 수 있습니다. 지속적인 통합 및 지속적인 업데이트같은 DevOps 사례는 마이크로 서비스 배포를 구동하는 데 사용됩니다. 마이크로 서비스는 소프트웨어 개발 팀이 이벤트 기반 프로그래밍 및 자동 크기 조정과 같은 시나리오를 활용할 수 있도록 하여 클라우드 기반 애플리케이션 아키텍처를 잘 보완합니다. 마이크로 서비스 구성 요소는 다른 서비스와 통신하기 위해 일반적으로 REST 프로토콜을 통해 API(애플리케이션 프로그래밍 인터페이스)를 노출합니다.

점점 더 일반적인 방법은 컨테이너 클러스터를 사용하여 마이크로 서비스를 구현하는 것입니다. 컨테이너는 마이크로 서비스의 격리, 패키징 및 배포를 허용하는 반면 오케스트레이션은 컨테이너 그룹을 애플리케이션으로 확장합니다.

다음 단계

Azure의 마이크로 서비스에 대해 자세히 알아봅니다.