Google Cloud 아키텍처 프레임워크

Last reviewed 2024-08-27 UTC

Google Cloud 아키텍처 프레임워크는 설계자, 개발자, 관리자, 기타 클라우드 실무자가 안전하고 효율적이며 복원력이 우수하고 성능이 탁월하며 비용 효율적인 클라우드 토폴로지를 설계하고 운영하는 데 도움이 되는 권장사항을 제공하고 설명합니다. Google Cloud 아키텍처 프레임워크는 제대로 설계된 프레임워크 버전입니다.

여러 부서의 Google 전문가 팀이 아키텍처 프레임워크를 구성하는 설계 권장사항을 검증합니다. 이 팀은 Google Cloud의 확장 기능, 업계 권장사항, 커뮤니티 지식, 개발자의 의견을 반영하기 위해 아키텍처 프레임워크를 선별합니다. 주요 변경사항에 대한 요약은 새로운 기능을 참조하세요.

아키텍처 프레임워크의 설계 안내는 클라우드용으로 빌드된 애플리케이션과 온프레미스에서 Google Cloud로 마이그레이션된 워크로드, 하이브리드 클라우드 배포, 멀티 클라우드 환경에 적용됩니다.

아키텍처 프레임워크 카테고리

Google Cloud 아키텍처 프레임워크는 다음 다이어그램에 표시된 것처럼 5개 카테고리(원칙이라고도 함)로 구성됩니다.

Google Cloud 아키텍처 프레임워크

운영 우수성
클라우드 워크로드를 효율적으로 배포, 운영, 모니터링, 관리합니다.
보안, 개인 정보 보호, 규정 준수
클라우드에서 데이터 및 워크로드의 보안을 극대화하고, 개인 정보를 보호하며, 규제 요구사항 및 표준에 부합하도록 만듭니다.
안정성
클라우드에서 복원력이 우수하고 가용성이 높은 워크로드를 설계하고 운영합니다.
비용 최적화
Google Cloud에 대한 투자 가치를 극대화합니다.
성능 최적화
최적의 성능을 위해 클라우드 리소스를 설계하고 조정합니다.

핵심 원칙

아키텍처 프레임워크의 각 카테고리에서 권장사항을 살펴보기 전에 다음 핵심 원칙을 검토하세요.

변화를 위한 디자인

정적인 시스템은 없습니다. 사용자 니즈, 시스템을 빌드한 팀의 목표, 시스템 자체는 끊임없이 변화합니다. 변화에 대한 니즈를 염두에 두고 팀에서 정기적으로 소규모 변경사항을 제공하고 해당 변경사항에 대한 빠른 피드백을 얻을 수 있도록 개발 및 프로덕션 프로세스를 빌드합니다. 변경사항을 배포할 수 있는 능력을 일관되게 보여주면 시스템을 담당하는 팀과 시스템 사용자를 포함하여 이해관계자와의 신뢰를 구축하는 데 도움이 됩니다. DORA의 소프트웨어 배포 측정항목을 사용하면 팀에서 시스템 변경의 속도, 편의성, 안전을 모니터링할 수 있습니다.

아키텍처 문서화

워크로드를 클라우드로 이동하거나 애플리케이션을 빌드하기 시작할 때 시스템에 대한 문서가 부족하면 큰 장애가 될 수 있습니다. 문서는 현재 배포의 아키텍처를 올바르게 시각화하는 데 특히 중요합니다.

품질 문서는 특정 문서의 양이 아니라 콘텐츠의 명확성, 유용성, 시스템 변경에 따른 유지보수 방식에 따라 결정됩니다.

클라우드 아키텍처를 적절하게 문서화함으로써 공통된 언어 및 표준을 수립하고 여러 직종의 팀이 효과적으로 소통하고 협업할 수 있습니다. 또한 이 문서에서는 이후 설계 결정 요소를 식별하고 안내하는 데 필요한 정보를 제공합니다. 설계 결정을 위한 컨텍스트를 제공하기 위해 사용 사례를 염두에 두고 문서를 기록해야 합니다.

시간이 지남에 따라 설계 결정도 진화 및 변화할 것입니다. 변경 내역은 팀이 이니셔티브를 조정하고 중복을 방지하고 시간 경과에 따른 성능 변화를 효과적으로 측정하는 데 필요한 컨텍스트를 제공합니다. 변경 로그는 현재 설계, 전략, 기록에 익숙하지 않은 새로운 클라우드 설계자를 온보딩할 때 특히 유용합니다.

DORA 분석을 통해 문서 품질 및 성과와 수익성 목표를 충족하는 조직 역량과 같은 조직 성과 간의 명확한 관계를 파악할 수 있습니다.

설계 간소화 및 완전 관리형 서비스 사용

단순성은 설계에서 매우 중요합니다. 아키텍처가 너무 복잡해서 이해하기 어려우면 시간이 지남에 따라 설계를 구현하고 관리하는 것이 어려워집니다. 가능한 경우 완전 관리형 서비스를 사용해서 기준 시스템 관리 및 유지보수와 관련된 위험, 시간, 노력을 최소화합니다.

프로덕션에서 이미 워크로드를 실행 중이면 관리형 서비스로 테스트하여 운영 복잡성을 줄이는 데 도움이 될지 확인합니다. 새 워크로드를 개발하려면 단순하게 시작해서 실행 가능한 최소 제품(MVP)을 구축하고 오버엔지니어링을 방지합니다. 시간이 지남에 따라 예외적인 사용 사례를 식별하고, 작업을 반복하며, 시스템을 점진적으로 개선할 수 있습니다.

아키텍처 분리

DORA의 연구에 따르면 아키텍처가 지속적 배포를 달성하기 위한 중요한 예측자입니다. 분리는 애플리케이션 및 서비스 구성요소를 독립적으로 작동할 수 있는 더 작은 구성요소로 분리하는 데 사용되는 기술입니다. 예를 들어 모놀리식 애플리케이션 스택을 개별 서비스 구성요소로 분리할 수 있습니다. 느슨하게 결합된 아키텍처에서는 애플리케이션이 다양한 종속 항목에 관계없이 함수를 독립적으로 실행합니다.

분리된 아키텍처는 다음을 수행할 수 있는 유연성을 제공합니다.

  • 독립적인 업그레이드를 적용합니다.
  • 특정 보안 제어를 적용합니다.
  • 각 하위 시스템의 안정성 목표를 설정합니다.
  • 상태를 모니터링합니다.
  • 성능 및 비용 매개변수를 세부적으로 제어합니다.

설계 단계 초기에 분리 프로세스를 시작하거나 확장에 따라 시스템 업그레이드의 일부에 통합할 수 있습니다.

스테이트리스(Stateless) 아키텍처 사용

스테이트리스(Stateless) 아키텍처는 애플리케이션의 안정성과 확장성을 모두 향상시킬 수 있습니다.

스테이트풀(Stateful) 애플리케이션은 데이터의 로컬 캐싱과 같은 태스크를 실행하기 위해 여러 종속 항목을 사용합니다. 스테이트풀(Stateful) 애플리케이션은 진행 상황을 캡처하고 정상적으로 재시작하기 위한 추가 메커니즘이 필요한 경우가 많습니다. 스테이트리스(Stateless) 애플리케이션은 공유 스토리지 또는 캐시된 서비스를 사용하여 상당한 로컬 종속 항목 없이 태스크를 수행할 수 있습니다. 스테이트리스(Stateless) 아키텍처를 통해 최소한의 부팅 종속 항목으로 애플리케이션을 빠르게 수직 확장할 수 있습니다. 애플리케이션은 하드 재시작을 견디고, 다운타임을 줄이고, 최종 사용자에게 더 나은 성능을 제공할 수 있습니다.