마이크로서비스

이 문서에서는 마이크로서비스를 소개하고 Cloud Monitoring에서 지원하는 마이크로서비스 유형을 설명합니다.

마이크로서비스라는 용어는 사용자별로 의미하는 것이 다릅니다. 경우에 따라 마이크로서비스는 시스템 아키텍처에 대해 이야기할 때 화이트보드에 그려진 '상자'에 해당합니다. 그 외는 시스템의 다른 마이크로서비스에서 독립적으로 개발, 배포, 작동할 수 있는 외부 공개 API로 결정되는 기능이 있는 네트워크 주소 지정 가능 엔드포인트를 설명하는 공식적인 정의에 해당합니다. 하지만 여전히 다른 사용자들은 App Engine 서비스 또는 Anthos Service Mesh 서비스와 같이 개발 플랫폼에서 제공하는 마이크로서비스 개념을 이해의 배경으로 합니다.

Google의 목표는 마이크로서비스 정의를 강요하지 않는 것입니다. Google에서는 사용자 아키텍처를 지원하기 위해 서비스 지향 모니터링 도구를 제공하여 디지털 혁신이 진행되는 동안 규모에 맞춰 시스템을 모니터링할 수 있도록 도움을 제공하고자 합니다. 코드를 단 한 줄도 변경하지 않고 모니터링 시스템에 대한 권장사항을 적용할 수 있도록 사용자와 작업할 것입니다.

Cloud Monitoring에서는 마이크로서비스를 모니터링하는 데 도움이 되도록 다음을 수행합니다.

  • 가능한 경우 마이크로서비스 자동 감지
  • Google Kubernetes Engine 및 Cloud Run 기반 마이크로서비스를 정의하는 안내 환경을 제공합니다.
  • 유연성을 극대화할 수 있도록 완전 커스텀 솔루션 제공

자동 검색된 마이크로서비스

일부 최신 개발 프레임워크에서는 전문가의 의견이 담긴 마이크로서비스 개념을 제공합니다. 이러한 프레임워크를 사용하는 아키텍처에서 Cloud Monitoring은 서비스가 배포, 업데이트 또는 삭제될 때 이를 자동으로 감지합니다. Monitoring은 프로젝트에서 생성한 메타데이터 스트림을 지속적으로 분석하여 이러한 감지를 수행합니다.

Cloud Monitoring은 다음 개발 프레임워크를 사용하여 빌드된 마이크로서비스를 자동으로 감지할 수 있습니다.

  • App Engine: App Engine에는 App Engine 서비스(이전에는 모듈)라고 하는 강력한 마이크로서비스 개념이 있습니다. 각 서비스는 자체 app.yaml 구성 파일로 구분됩니다.

  • Anthos Service Mesh: Cloud Monitoring은 단일 GKE 클러스터 위에 구축된 서비스 메시를 지원합니다. 이 구성에서 Anthos Service Mesh 서비스는 GKE 서비스에 직접 대응합니다. 모든 Anthos Service Mesh 서비스는 사용자 관리 서비스와 시스템 관리 서비스 모두를 자동으로 감지합니다.

  • 오픈소스 Istio on Google Kubernetes Engine: GKE에서는 GKE의 '부가기능' 기능을 제공하여 오픈소스(OSS) Istio를 지원합니다. GKE 부가기능을 사용하면 관리형 설치와 Istio 구성요소 업그레이드의 이점을 누릴 수 있습니다. Anthos Service Mesh와 마찬가지로 OSS Istio 서비스는 GKE 서비스와 직접 대응합니다.

자동 검색된 마이크로서비스의 대시보드

자동으로 검색된 모든 마이크로서비스의 서비스 대시보드가 자동으로 생성됩니다. 대시보드에는 서비스의 메타데이터 세부정보, 알림 타임라인, 서비스 수준 목표(SLO) 상태, 서비스와 관련된 로그가 포함됩니다. 각 구성요소에 대한 자세한 내용은 마이크로서비스 대시보드 사용에 설명되어 있습니다.

자동 검색된 마이크로서비스의 서비스 대시보드

GKE, Cloud Run, 커스텀 서비스

Cloud Monitoring은 다음 유형의 잠재적 또는 후보 서비스를 식별할 수 있습니다.

  • GKE 네임스페이스
  • GKE 서비스
  • GKE 워크로드
  • Cloud Run 서비스

하지만 이러한 후보가 많이 있을 수 있으며 모든 후보에 SLO를 만들 필요는 없습니다. Monitoring은 후보 서비스 목록을 만들며 목록에서 선택하여 모니터링 서비스로 취급할 서비스를 식별합니다. 그러면 Monitoring에서 자동으로 서비스 인프라를 만듭니다.

기존 서비스 유형에 SLO를 만들려는 애플리케이션을 수용할 수 없는 경우 커스텀 서비스를 정의할 수 있습니다.

후보 서비스 식별 및 커스텀 서비스 만들기에 대한 자세한 내용은 마이크로서비스 정의를 참조하세요.