애플리케이션 설계 권장사항

이 가이드에서는 App Hub 내에서 애플리케이션을 설계하고 정의하기 위한 권장사항을 제공합니다. 효과적인 애플리케이션 설계는 애플리케이션 중심 Google Cloud의 모든 이점을 활용하는 데 핵심이며, 가시성, 거버넌스, 운영 효율성을 향상합니다.

애플리케이션 설계의 핵심 원칙

다음 핵심 원칙을 준수하면 강력하고 유지관리 가능하며 비즈니스 목표에 부합하는 애플리케이션을 만들어 App Hub에서 얻는 가치를 극대화할 수 있습니다.

  • 비즈니스 기능 반영: 기술 레이어나 개별 마이크로서비스가 아닌 비즈니스 기능이나 엔드 투 엔드 워크플로를 중심으로 App Hub 애플리케이션을 정의합니다. 애플리케이션은 비즈니스의 고유한 가치 스트림을 나타내야 합니다.

  • 명확한 소유권 결정: 각 애플리케이션에 명확한 속성 및 속성을 할당하여 검색 가능성 및 거버넌스를 지원합니다. 특히 애플리케이션 소유자를 추가하면 책임감이 강화되고 커뮤니케이션이 간소화됩니다.

  • 애플리케이션 경계 고려: 작업, 모니터링, 거버넌스에 적합한 경계를 정의합니다. 애플리케이션 내 리소스는 관리 작업을 간소화하고 운영 위험을 줄이기 위해 공통 운영 수명 주기와 영향 도메인을 공유하는 것이 좋습니다.

    운영 목적으로 애플리케이션의 경계를 고려할 때는 Google Cloud Observability에서 데이터 수집 및 표시를 어떻게 구조화하는지 이해하는 것이 중요합니다. App Hub는 애플리케이션 경계에 중점을 두는 반면 Google Cloud Observability는 범위를 사용하여 프로젝트 전반에서 표시되고 분석 가능한 원격 분석 데이터를 정의합니다. 이러한 관측 가능 범위의 구성은 호스트 프로젝트 또는 관리 프로젝트와 특정 관계가 있으며, 이를 통해 여러 프로젝트의 원격 분석 데이터를 집계하고 보는 방법을 결정합니다. 통합 뷰를 위해 이를 구성하는 방법을 자세히 알아보려면 관측 가능성 범위 구성을 참고하세요.

  • 진화에 적응: 향후 아키텍처의 변경사항과 성장을 수용하도록 애플리케이션을 설계합니다.

  • 반복적으로 개선: 조직의 구조, 팀, 비즈니스 우선순위의 변화를 반영하도록 애플리케이션을 정기적으로 검토하고 조정합니다.

애플리케이션으로 정의할 항목

App Hub에서 애플리케이션을 구성하는 요소를 이해하는 것은Google Cloud에 애플리케이션 관리 기능을 효과적으로 통합하는 데 기본이 됩니다. 애플리케이션은 특정 비즈니스 기능을 공동으로 제공하는 서비스와 워크로드를 그룹화합니다. App Hub의 애플리케이션, 서비스, 워크로드의 핵심 개념에 대한 자세한 내용은 개념 및 데이터 모델을 참고하세요.

App Hub 애플리케이션에 적합한 경계를 결정하려면 다음 주요 질문을 고려하세요.

  • 이 리소스 모음은 어떤 사용자 또는 비즈니스 가치를 제공하나요?
  • 이러한 구성요소는 공통 운영 수명 주기를 공유하나요?
  • 이러한 리소스 전반에 걸쳐 명확하고 통일된 소유권이 있나요?
  • 이 그룹화가 효과적인 모니터링 및 문제 해결에 도움이 되나요?

예: OpenTelemetry 데모 아키텍처

OpenTelemetry 데모 아키텍처Ad, Cart, Checkout과 같은 마이크로서비스를 포함하는 전자상거래 시스템을 나타냅니다. App Hub에서 이 애플리케이션을 가장 잘 정의하려면 다음 권장사항을 고려하세요.

  • 전체 전자상거래 시스템을 하나의 App Hub 애플리케이션으로 모델링합니다(예: my-ecommerce-site).

    • 개별 마이크로서비스의 컴퓨팅 인스턴스(예: Google Kubernetes Engine(GKE) 배포)는 App Hub 워크로드에 매핑됩니다.
    • 부하 분산된 gRPC/HTTP 인터페이스와 같은 네트워크 엔드포인트는 App Hub 서비스에 매핑됩니다.
  • 광고, 장바구니, 결제와 같은 각 마이크로서비스를 자체 App Hub 애플리케이션으로 등록하지 마세요. 이 접근 방식은 비즈니스 컨텍스트를 조각화합니다.

App Hub에서 서비스 및 워크로드로 지원하는 인프라 리소스에 대한 자세한 내용은 App Hub 지원 리소스를 참고하세요.

설계 전략

다음 설계 전략을 사용하여 App Hub 설정이 확장 가능하고 관리 가능하며 운영 관행에 부합하는지 확인하세요.

전역 및 리전 애플리케이션 중에서 선택

App Hub 애플리케이션을 설계할 때 기본적인 결정은 전역으로 정의할지 리전으로 정의할지입니다. 이 선택은 포함할 수 있는 리소스, 데이터 처리, 지연 시간, 비용, 규정 준수에 영향을 미칩니다.

  • 전역 애플리케이션은 여러 Google Cloud 리전에 기본적으로 분산되어 있거나 전역 애플리케이션 부하 분산기와 같은 전역 리소스를 사용하는 서비스 및 워크로드에 가장 적합합니다.
  • 리전 애플리케이션은 모든 애플리케이션 구성요소가 단일 Google Cloud 리전 내에 있는 경우에 권장됩니다. 아키텍처에서 허용하는 경우 일반적으로 이 방법이 가장 좋습니다.

다음 권장사항 목록은 전역 애플리케이션과 리전 애플리케이션 중에서 선택하는 데 도움이 됩니다.

  • 리전 애플리케이션 우선순위 지정: 가능한 경우 지연 시간 감소, 리전 간 네트워크 트래픽 비용 절감 가능성, 데이터 위치 요구사항과의 정렬, 리전별Google Cloud 기능 및 장애 도메인과의 내재적 호환성과 같은 이점을 활용할 수 있도록 애플리케이션을 리전으로 설계하세요.
  • 전역 애플리케이션을 전략적으로 사용: 시스템 구성요소가 리전에 걸쳐 분산되어야 하거나 전역 Google Cloud 서비스가 포함된 경우에만 전역 애플리케이션을 선택합니다.
  • 멀티 리전 시스템 분해: 단일의 응집력 있는 전역 기능을 형성하지 않는 리소스가 여러 리전에 있는 경우 각 리전 내 리소스에 대해 별도의 리전 애플리케이션을 정의하는 것이 좋습니다. 이렇게 하면 각 배포의 지역화 이점이 극대화됩니다.

자세한 비교와 이 선택의 영향에 대한 자세한 내용은 전역 및 리전 애플리케이션을 참고하세요.

환경을 별도의 애플리케이션으로 정의

다양한 배포 환경을 별도의 앱 허브 애플리케이션으로 나타낼 수 있습니다. 이 접근 방식은 보안, 권한, 운영 위험에 대한 강력한 격리를 제공하여 환경 간에 실수로 인한 영향을 방지합니다.

예를 들어 개발, 스테이징, 프로덕션 환경에 각각 my-app-dev, my-app-staging, my-app-prod로 애플리케이션을 구성할 수 있습니다.

단일 애플리케이션 내에서 Environment 속성을 사용하여 리소스에 태그를 지정할 수 있지만 환경을 별도의 애플리케이션으로 분리하면 액세스 제어, 정책 시행, 모니터링을 위한 정확한 경계를 제공할 수 있습니다. 세부정보를 제공하고 역할을 추가로 지정하려면 이러한 환경별 애플리케이션 내 리소스에서 Environment 속성을 일관되게 사용해야 합니다. 이 속성 및 기타 속성에 관한 자세한 내용은 거버넌스를 위한 속성 사용을 참고하세요.

팀 구조에 맞게 조정

애플리케이션 경계를 개발 및 운영을 담당하는 팀과 일치시키는 것이 좋습니다. App Hub의 애플리케이션 모델이 조직의 구조를 반영하므로 이 방법을 사용하면 소유권과 커뮤니케이션을 간소화할 수 있습니다.

거버넌스에 속성 사용

검색 가능성을 높이고 거버넌스를 적용하려면 모든 애플리케이션 리소스에 속성을 일관되게 적용하세요. 이러한 속성은 필터링, 보고, 정책 적용을 위한 풍부한 메타데이터를 제공합니다.

  • 중요도: 모니터링 및 사고 대응을 위한 리소스의 우선순위를 지정하는 데 도움이 됩니다.
  • 환경: 필터링 및 환경별 정책을 지원합니다.
  • 소유자: 가시성과 책임성을 제공합니다.

이러한 속성으로 리소스에 태그를 지정하기 위한 조직 표준을 수립합니다. 자세한 내용은 검색 가능성 및 거버넌스 지원을 참고하세요.

애플리케이션 관리 사용 사례 식별

설계부터 운영까지 원활한 애플리케이션 수명 주기 환경을 위해 App Hub를 App Design Center와 통합하세요.

  • 애플리케이션으로 등록할 기존 리소스가 있는 경우: 설정 모델의 기존 Google Cloud 리소스를 App Hub의 애플리케이션에 등록하여 통합된 가시성과 운영 제어를 확보합니다.
  • 애플리케이션으로 등록할 기존 리소스가 없는 경우: Application Design Center를 사용하여 새 애플리케이션을 설계하고 배포합니다. Application Design Center는 배포된 리소스를 App Hub에 자동으로 등록하므로 모델이 의도한 설계를 정확하게 반영합니다. App Design Center를 사용하면 애플리케이션 업데이트도 관리할 수 있습니다. 애플리케이션 템플릿이 변경되면 템플릿을 기반으로 하는 인스턴스를 업데이트하여 애플리케이션 업데이트가 일관되도록 할 수 있습니다.

리소스 계층 구조

표준 Google Cloud 리소스 계층 구조조직, 폴더, 프로젝트 리소스로 구성됩니다. App Hub는 설정 모델에 따라 앱 지원 폴더 및 호스트 프로젝트 개념을 통해 계층 구조 위에 애플리케이션 관리 레이어를 도입합니다.

선택한 설정 모델이 기존 Google Cloud 리소스 계층 구조에 어떻게 적합한지 이해하면 효과적인 거버넌스, 정책 시행, 리소스 검색이 가능합니다. 애플리케이션 관리를 위한 설정 모델을 선택할 때 권장 구조를 검토하고 리소스 계층 구조를 계획하세요.

지속적인 개선

애플리케이션 설계는 정적이지 않으며 일반적으로 시간이 지남에 따라 발전합니다. 애플리케이션이 비즈니스 요구사항, 팀 구조, 변화하는 아키텍처와 계속 일치하는지 정기적으로 검토하고 개선하세요.

Cloud 허브Gemini Cloud Assist의 인사이트를 사용하여 최적화 기회를 파악하고 이에 따라 애플리케이션을 조정하는 것이 좋습니다. 또한 Application Design Center를 사용하여 애플리케이션의 수명 주기를 관리할 수 있습니다. Cloud Hub의 배포 페이지에는 애플리케이션이 기반으로 하는 App Design Center 템플릿에서 업데이트가 제공되는 애플리케이션이 표시되어 업데이트 프로세스가 간소화됩니다.