コンテンツに移動
Containers & Kubernetes

GKE 上にエンタープライズ デベロッパー プラットフォームを構築し、高速で信頼性の高いアプリケーション配信を実現する

2024年3月21日
Google Cloud Japan Team

Try Gemini 1.5 Pro

Google's most advanced multimodal model in Vertex AI

Try it

※この投稿は米国時間 2024 年 3 月 8 日に、Google Cloud blog に投稿されたものの抄訳です。

DevOps の原則に根ざしたプラットフォーム エンジニアリングは、自動化されたインフラストラクチャ ツールとセルフサービス ツールにより、デベロッパー エクスペリエンスを効率化し、生産性を高めます。このブログ記事では、Google Kubernetes Engine(GKE)を利用して Google Cloud 上にセキュアでスケーラブルな社内デベロッパー プラットフォームを構築し、高速で信頼性の高いアプリケーション配信を実現する方法をご紹介します。

クラウド ファーストなインフラストラクチャを利用した最新のアーキテクチャを採用する

現代の最新テクノロジーの世界において、一歩先を進み続けることはアジャイルであることを意味します。迅速なイノベーションと信頼できるデリバリーを実現するビジネスが、成功の鍵を掴むこととなります。以下のような重要な要素を備えた最新のアーキテクチャを採用することで、ソフトウェア デリバリー プロセスは強化されます。

  • モジュラー システム: モジュラー システムの好例が、マイクロサービス ベースのアプリケーションです。マイクロサービス ベースのアプリケーションでは、単一の大きなモノリシック構造にするのではなく、小さな独立したサービスのコレクションに分割することで、アジャイルなデリバリーと迅速なイノベーションのロールアウトを可能にします。
  • Kubernetes(K8s)上でコンテナ化されたアプリケーション: コンテナはアプリケーションをパッケージ化してデプロイする軽量な手法であり、さまざまな環境間でのシームレスな移動を容易にします。GKE などの K8s プラットフォームは、宣言的な構成と自動化により、プラットフォーム エンジニアリングの堅牢な基盤を構築します。
  • 核となる最新のデータベース: 最新のデータベースは、昨今のビジネスで生成される大量のデータを処理できるよう設計されています。高いパフォーマンス、スケーラビリティ、信頼性を実現し、データに隠されたインサイトを得る上でも役立ちます。

最新のアーキテクチャを採用することで、デジタル時代の成功に不可欠なアジリティ、スケーラビリティ、セキュリティを実現できます。その成果は、デプロイの頻度、変更のリードタイム、復元の平均時間、変更の失敗率といった主要な指標の測定結果に表れます。

GKE 上にエンタープライズ デベロッパー プラットフォームをデプロイする

プラットフォーム エンジニアリングは、組織の社内デベロッパー プラットフォーム(IDP)の作成と管理を中心に構成されています。GKE は、Google Cloud エコシステムとの緊密なインテグレーションにより、IDP の理想的な基盤として機能します。GKE を利用して、開発者をサポートする堅牢なプラットフォームをどのように構築できるか見ていきましょう。

スケーラブルなデベロッパー向け Kubernetes 基盤を確立する

多くの組織は、分散拠点を管理し、複数のアプリケーションやチームをサポートしています。最初からスケールできるように構築されたプラットフォームを使用する場合は、GKE フリートの使用を検討します。この管理レイヤは、一元化されたコントロール プレーンから複数の Kubernetes クラスタを運用できるようにするもので、環境間の整合性を維持しながら、機能のデプロイ、アップグレード、モニタリングにより分散クラスタを効率的に管理できます。マルチクラスタ ゲートウェイとマルチクラスタ サービスをフリートに追加することで、クラスタ間通信やトラフィック管理を簡素化でき、マイクロサービス ベースのアプリケーションの可用性を向上できます。

また、フリートベースのチーム管理では、論理パーティションを確立し、組織に合わせたマルチテナント モデルを作成します。開発者は割り当てられた範囲(指定されたクラスタ、名前空間、ロールなど)内で自律的に行動できる一方、プラットフォーム エンジニアは一元化された監視機能とツールを利用できるため、コラボレーションと分離のバランスを簡単に取ることができます。

Config Sync のような GitOps ベースの Kubernetes 管理ツールを導入することで、自動化を促進し、運用効率や整合性を高めることができます。GitOps ワークフローには、変更をトラッキングするバージョン管理、問題を軽減する容易なロールバック、プロアクティブな構成のずれ防止などの利点があります。また、Config Sync は、複数のクラスタ全体にわたる構成の完全性と標準化の維持に役立ちます。しかも、Config Sync のマルチリポジトリ サポートにより、特定の構成要素を個別のアプリケーション チームに委譲できるため、複雑な環境での管理が簡素化されます。

堅牢な基盤で反復的なクラスタ管理タスクが自動化されるため、プラットフォーム エンジニアは価値の高いイニシアチブに集中できるようになります。たとえば、セルフサービス インフラストラクチャ ソリューションの開発や、フリート全体のアプリケーションの CI / CD パイプラインの最適化などに専念できます。

ゼロトラスト システム アーキテクチャを実装する

プラットフォーム エンジニアは、ゼロトラストの考え方を取り入れる必要があります。ゼロトラストは、いかなるユーザー、デバイス、ネットワーク トラフィックも本質的に信頼してはならないという基本原則のもとで運用されます。そのため、インタラクションが生じるたびに、継続的な認証と認可が必要となります。マイクロサービス ベースのアーキテクチャを採用するアプリケーションが増えれば増えるほど、複雑さと攻撃対象領域も大きくなります。しかも、従来の境界型のセキュリティ モデルは、ハイブリッドな勤務形態やリモートワークの浸透にともない、機能しなくなっています。GKE なら、ゼロトラスト セキュリティ戦略の実装をサポートする堅牢な機能を提供します。

マイクロサービスでは、Istio ベースの Anthos Service Mesh と Policy Controller を組み合わせることで、ID ベースの強固なセキュリティを実現します。相互 TLS とマイクロサービスのセグメンテーションを大規模に実施することで、ワークロードとクラスタ全体で多層防御を構築できます。一元化したポリシーの適用により整合性が確保されると同時に、監査ロギングによりコンプライアンスが強化されます。この包括的なアプローチは、ゼロトラストの原則に沿っているだけでなく、サービスに対する詳細なセキュリティ管理と最小権限アクセスを実現し、継続的な認証と認可が求められるようになります。

GKE Security Posture ダッシュボードは、インフラストラクチャとワークロードの継続的な可視化、実用的な分析情報の提示、傾向の分析、コンプライアンスのモニタリングを行い、明確な修復ガイダンスを提供する、一元化されたダッシュボードです。GKE クラスタを自動的にスキャンし、ワークロードとノード全体の構成ミス、脆弱性、ポリシー違反の可能性を特定します。また、実行時にワークロードをスキャンして、OS や言語パッケージの脆弱性リスクを軽減することもできます。さらに、オープンソースの Open Policy Agent Gatekeeper プロジェクトをベースにした GKE Policy Controller には、一般的なコンプライアンス管理とセキュリティ管理にそのまま利用できる 14 個のポリシー バンドルが用意されています。クラスタ全体にポリシーと予防的なガードレールが事前に適用されるため、セキュリティ基準やベスト プラクティス(CIS ベンチマークなど)に準拠しやすくなります。

プラットフォーム エンジニアリングは、ソフトウェア開発ライフサイクル(SDLC)を効率化することで開発者を支援し、迅速かつ安全なソフトウェア デリバリーを促進します。Google Cloud は、開発プロセスの各段階を保護する堅牢なプロダクトを提供し、ベスト プラクティスを可能にします。GKE は Cloud BuildCloud DeployCloud ArmorSecret Manager、およびその他の Google Cloud サービスと緊密に統合されていて、コードからプロダクションまでサプライ チェーンの完全性を確保する包括的なフレームワークを実現します。

Cloud FinOps を組み込んでコア プラットフォームを効率化する

企業は、予測できないクラウド費用に対処し、技術チームがより財務目標に沿って行動できるようにするために、Cloud FinOps に注目しています。費用削減が主な目的ではありますが、FinOps ではスピードも重視されているため、開発者は財務管理された環境下でイノベーションを起こすことができます。プラットフォーム エンジニアは、GKE の機能を活用して最初から費用を最適化できます。ワークロードのサイズ適正化、需要ベースのダウンスケーリング、効率的なクラスタのビンパッキング、割引の適用範囲の最大化などは、Kubernetes 費用を最適化するために注力できる重要なポイントです。

費用の可視化という点では、GKE のリソースに適切なラベルを付けることが、プロジェクト、チーム、さらには特定のアプリケーションに対して費用を詳細にトラッキングするために欠かせません。GKE のフリート スコープとチームスコープを使用すると、GKE のリソースに自動的にラベルを付け、費用の透明性を確保できます。また、GKE の高度な 4 方向自動スケーリングにより、本当に必要な容量に対してのみ料金を支払い、直接的な費用削減を実現できます。さらに、重要度の低いワークロードには Spot VM を利用するプラットフォーム ポリシーを作成することで、クラウド費用を大幅に削減できます。

FinOps は、一度設定すればそれで終わりというものではありません。モニタリング、レポート、サイズ適正化を継続的に行い、クラウドへの投資を健全な状態に保ちます。GKE を利用すれば、導入開始後も対応に困ることはありません。クラスタとワークロードを最適化するサイズ適正化が提案されるだけでなく、フリートおよびチーム全体のリソースの使用状況を一元的に確認できます。継続的に最適化することで、長期にわたり効率的かつスケーラブルなデベロッパー プラットフォームを構築できます。FinOps は、財務目標の達成状況をトラッキングし続け、こうした成長を持続可能なものにするためのガードレールとプロセスをわかりやすく提供します。

マネージド データベースでグローバルにスケーラブルなワークロードを構築する

コンテナとデータベースは、サーバーレス ウェブアプリ、リアルタイム不正検出、生成 AI のユースケースなど、クラウドネイティブなワークロード基盤を形成します。GKE は、Google Cloud のさまざまなデータベース オプション(AlloyDBSpannerFirestoreBigtable など)と統合されているため、技術スタックが簡素化されます。これにより、GKE を利用して自動スケーリング、高可用性、バックアップなどを効率的に運用しながら、アプリケーションのニーズに最適なデータベースを選択できます。

ここまで説明してきた以外にも、社内デベロッパー プラットフォーム構築の成功に貢献する重要な要素がいくつかあります。たとえば、堅牢なアプリケーション CI / CD パイプライン、包括的なロギングモニタリング ソリューションなどです。これらの要素の連携を以下の図 1 で確認しましょう。この図は、Google Cloud エコシステム内で可用性の高いマルチリージョン IDP を構築する主なコンポーネントを示しています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/Figure_1_GKE_Architecture.max-1500x1500.png

GKE Enterprise リファレンス アーキテクチャ ソリューション ガイドのプレビュー リリースについてもご紹介したいと思います。このガイドは、GKE と Google Cloud ソリューションを使用した社内デベロッパー プラットフォームのデプロイを支援することを目的としています。

GKE を使用したエンタープライズ デベロッパー プラットフォームの構築について詳しくは、ハンズオン プラットフォーム エンジニアリング ワークショップで学ぶことができます。セールスチームにお問い合わせください。さらに、90 日間の GKE Enterprise の試用版にご登録いただくと、GKE が提供するすべての高度な機能を詳細にお試しいただけます。試用版には Google Cloud コンソールから簡単にアクセスできます。

-プロダクト マネージャー Lisa Shen

-プリンシパル エンジニア Eric Tune

投稿先