기업이 컨테이너 기반 애플리케이션 개발 및 배포로 전환하면서 별도의 엔지니어링 워크플로를 활용하여 분산된 팀을 관리하는 방법을 배워야 합니다. Google은 대기업이 컨테이너 기반 애플리케이션으로 전환할 수 있도록 엔터프라이즈 애플리케이션 청사진을 만들었습니다. 이 청사진은 클라우드 플랫폼 팀이 조직의 애플리케이션 개발 그룹이 사용할 수 있는 소프트웨어 개발 및 제공을 위한 관리형 플랫폼을 제공할 수 있도록 내부 개발자 플랫폼을 배포합니다.
엔터프라이즈 애플리케이션 청사진은 엔터프라이즈 기반 청사진과 호환되도록 설계되었습니다. 엔터프라이즈 기반 청사진은 Cloud ID와 같이 엔터프라이즈 애플리케이션 청사진이 사용하는 여러 기본 수준의 서비스를 제공합니다. Google Cloud 환경에서 엔터프라이즈 애플리케이션 청사진을 지원하는 데 필요한 기능을 제공하는 경우 엔터프라이즈 기반 청사진을 배포하지 않고도 엔터프라이즈 애플리케이션 청사진을 배포할 수 있습니다.
이 문서는 클라우드 설계자를 대상으로 하며, 엔터프라이즈 애플리케이션 청사진을 사용하여 Google Cloud에 새 엔터프라이즈 애플리케이션을 배포한다고 가정합니다. 하지만 Google Cloud에 기존 컨테이너화된 엔터프라이즈 애플리케이션이 이미 있는 경우 이 참조 아키텍처를 점진적으로 채택할 수 있습니다.
이 문서에서는 사용자가 서비스, 네임스페이스, 클러스터를 포함한 Kubernetes 구성요소를 이해하고 있다고 가정합니다. Kubernetes 및 Google Cloud에서의 구현에 대한 배경 정보는 Google Kubernetes Engine(GKE) Enterprise 버전 기술 개요를 참조하세요.
엔터프라이즈 애플리케이션 청사진 개요
대부분의 기업에서 개발자 플랫폼은 모든 개발자가 사용하는 공유 인프라를 관리합니다. 개발자 플랫폼은 주문형 애플리케이션 구성요소별로 빌드 파이프라인, 배포 파이프라인, 런타임 환경을 만듭니다. 개발자팀과 애플리케이션 운영자는 자신이 담당하는 애플리케이션 구성요소에만 액세스할 수 있습니다. 이 플랫폼은 가용성이 높고 안전한 애플리케이션의 배포를 지원하도록 설계되었습니다.
이 청사진은 엔터프라이즈 기반 청사진(또는 이에 상응하는) 위에 개발자 플랫폼을 배포합니다. 개발자 플랫폼에는 Google Kubernetes Engine(GKE) 클러스터, GKE Fleet, 애플리케이션 팩토리, 인프라 파이프라인, 플랫폼 모니터링, 플랫폼 로깅과 같은 리소스가 포함됩니다. 또한 개발자 플랫폼은 솔루션을 관리하는 사용자(개발자 플랫폼 관리자 및 애플리케이션 개발자)를 설정합니다.
조직은 이 청사진을 사용하여 서로 다른 애플리케이션 개발팀(테넌트라고 함)에 플랫폼에 대한 액세스를 제공할 수 있습니다. 테넌트는 일련의 리소스에 대한 공통 소유권을 보유한 사용자 그룹입니다. 테넌트는 컨테이너 기반 서비스로 플랫폼에서 실행되는 하나 이상의 애플리케이션을 소유합니다. 개발자 플랫폼의 애플리케이션은 소스 코드 및 구성의 번들입니다. 각 애플리케이션은 전용 CI/CD 파이프라인에 의해 빌드 및 배포됩니다. 테넌트와 애플리케이션은 런타임 및 CI/CD 파이프라인에서 서로 격리됩니다. 청사진에서 자동화를 제공하는 부분은 모든 테넌트에서 사용되며, 이를 멀티 테넌트라고 합니다.
개발자 플랫폼이 사용되는 방식을 설명하기 위해 청사진에는 Cymbal Bank라는 샘플 애플리케이션이 포함되어 있습니다. Cymbal Bank는 GKE에서 실행하도록 설계된 마이크로서비스 애플리케이션입니다. 이 애플리케이션은 재해 복구를 사용 설정하도록 Active-Active 구성으로 배포되는 고가용성 애플리케이션을 시뮬레이션하기 위한 것입니다. Cymbal Bank는 여러 독립 개발자 팀에서 애플리케이션이 개발되어 운영된다고 가정합니다.
다음 단계
- 아키텍처 알아보기(이 시리즈의 다음 문서)