コンテンツに移動
Anthos

Anthos の詳細: アプリケーションの開発とデリバリーを担う最新のプラットフォーム

2020年5月19日
Google Cloud Japan Team

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

「落ち着いて、ふだんどおりに過ごそう」この言葉は多くの人々に響くものでしょう。一方、これまでと変わることなくビジネスを運営していくという選択肢は、昨今の大多数の企業、特にアプリケーションの開発とデリバリーに携わるチームにとってはあり得ません。また、CIO の 71% が「俊敏性を高め、製品化までの時間を短縮すること」を自社の最優先事項として挙げています。ここでは、Anthos の採用を通じて、組織のアプリケーション開発とデリバリーの改善を果たす手立てについて解説します。

これまで、アプリケーションの開発とデリバリーでは、製品化までの時間を遅らせるいくつかの難題が足かせとなっていました。

  • オンプレミス環境と個々のクラウド環境でそれぞれ異なる、サイロ化されたアプリケーション運用チームとツール
  • ロールアウトが低頻度でリードタイムも長く、本番環境へのデプロイでリスクと複雑さが増大
  • 信頼性やセキュリティに関する課題がデプロイ中に捕捉されない
  • アプリケーション、チーム、更新の増加に伴って、スケーラビリティ、オブザーバビリティ、ガバナンスが不足

迅速かつ安全で信頼性の高い CI / CD の実現に向けた原則

コンテナ化を採用し、Anthos のような一貫性のあるポリシーベースのプラットフォームを併用することで、より高速かつ多機能な、セキュリティと信頼性に優れるアプリケーションの開発が促されます。結果として、絶え間なく変化する世界で常に優位を保つことが可能になります。ただし、旧型のセダンを単にレース場で走らせても、スピードの伸びしろが生じるわけではありません。それと同様に、Anthos を採用した後も、これまでと変わらないツールや方法論でアプリケーションの開発とデリバリーを進めていては、アプリケーション開発のスピードが目に見えて変化することはないでしょう。

Google は、きわめて大きな規模で運用できるサービスの構築を長年にわたって続けてきました。その間、アプリケーションの開発とデリバリーに関する原則を確立し、サイト信頼性エンジニアリング(SRE)などの概念や、Kubernetes などのイノベーションの提供を果たしています。Anthos では、オンプレミス環境とクラウド環境の両方に対応したツールでアプリケーションの開発とデリバリーを進めることができます。これらのツールは、以下のような数多くのメリットをもたらします。

ビルド、テスト、デプロイの自動化

継続的インテグレーション(CI)と継続的デリバリー(CD)によって、従来のソフトウェア デリバリー サイクルが抱えていた制約を解消し、オンデマンドのモデルに移行できます。アプリケーションのオペレータは、スケーリング、保守、更新が容易なフルマネージドのツールを利用して、ユーザーに新規のコードをすばやくプッシュできます。オンプレミスとマルチクラウドの両環境にわたって、現在のツールと統合される、ソース管理、アーティファクト リポジトリ、問題管理の方法論について、Google がガイダンスを提供します。

ポリシーベースのセキュリティ

セキュリティについては、、一元的に管理され、自動ツールで適用されるポリシーが基盤になります。Anthos では、すべての環境にわたって共通の管理レイヤが確立され、シンプルな手順で原則を実践できます。それらの環境にセキュリティ ポリシーとガバナンス ポリシーを適用するのが、Anthos Config Management です。コードの変更を必要としない簡潔なワークフローでポリシーを追加し、更新できます。また、Anthos に導入されている Binary Authorization などのテクノロジーでソフトウェアのサプライ チェーンを保護できるため、ビルドしたコードそのものが確実にデプロイされます。

ポリシーベースのセキュリティでは、絶えず変化するガバナンス基準やコンプライアンス基準に合わせたコードの修正ではなく、プロダクトと機能のビルドに集中できます。

予防的な信頼性テスト

CI / CD を実践すると、開発とテストの進行中に、自動化ツールで作成されるチェックを利用して、本番環境で生じる問題の緩和ではなく課題の発生阻止(シフトレフトのアプローチと呼ばれるもの)に集中できます。CI / CD に対する Google のアプローチは、ロールアウトとロールバックの自動化に対応しています。また、一貫性のある Anthos プラットフォームを活かして、より本番環境に近いテスト環境と開発環境を構築できるため、本番環境への実装に先立って互換性の問題を発見できます。  

CI / CD のユーザーとツール

現代的な CI / CD パイプラインの構成を検討するにあたっては、デベロッパー、オペレータ、セキュリティ管理者という組織内の 3 つのロールを考慮してください。それぞれのロールで使用できるツールを確認し、個々のロールが互いにどのようにやりとりするのかを見てみましょう。

https://storage.googleapis.com/gweb-cloudblog-publish/images/CI_CD_users_and_tools.max-1900x1900.jpg

デベロッパーは、アプリケーション コードと構成コード向けのストレージが提供され、コード変更レビューに備えることができるソースコード管理用の Git リポジトリを使用できます。Gitlab などの CI ツールを使用することも可能です。このサービスは、ソースコードをテストし、検証して、アーティファクト(Kubernetes 用のコンテナ イメージ)をビルドするものです。アーティファクトはデプロイ環境で使用できます。デベロッパーは、CI 中にビルドされるアーティファクト(コンテナ イメージ)を保存するためのコンテナ レジストリも使用できます。

また、オペレータも、アプリケーションのデプロイ手順の保存に Git リポジトリを使用できます。Kustomize や Anthos Config Management などの構成管理ツールを使用すると、CI で作成されるアーティファクトとデプロイ手順をパッケージにまとめることができます。つまり、構成プリミティブまたはブループリントの再利用や拡張が可能になるのです。最後に、継続的デリバリーのサービスを使用して、コードを環境をまたいでロールアウトするプロセスの定義、ステージング環境から本番環境までのプロセスの促進、変更の失敗に備えた容易なロールバックの提供を実現できます。

セキュリティ管理者は、インフラストラクチャ(クラスタ)に適用するポリシーを Git リポジトリに保存できます。また、Anthos Config Management でも提供されているポリシー管理サービスを使用して、クラスタへのポリシー適用のメカニズムを提供します(ロールベースのアクセス制御や割り当てなど)。これらのクラスタを Anthos GKE で管理すると、コンテナ オーケストレーションを提供し、CI の過程でビルドされるアーティファクトを実行し、ワークロードのスケーリング、ヘルスチェック、ロールアウトを実施するための手立てを提供できます。管理者は、ポリシーに対する変更が本番環境のクラスタにマージされる前に、変更内容を確認して承認します。

これらのツールはいずれも Anthos 環境での使用を想定したものであるため、Anthos Service Mesh をはじめとする Anthos の機能を組み込むことができます。Anthos Service Mesh では、サービスの詳細とともに、サービスが耐障害性の向上にどのように貢献しているかが可視化されます。これを Anthos と連動する形で実践する方法を、現代的な CI / CD 慣行の概要と併せて見てみましょう。

Anthos デプロイ環境での CI / CD

ソフトウェアの開発とデリバリーに関するプロセスは、ビジネス継続性、規制遵守、スケーラビリティ、開発チームや顧客との近接といった理由で、オンプレミス、クラウド、複数のリージョン、場合によっては複数のクラウドなど、複数の環境で進行することが少なくありません。Anthos を使用すると、2 つのリージョンでどのように CI / CD を実践できるのかを見てみましょう。最初のリージョンは開発環境、テスト環境、本番環境に使用され、2 番目のリージョンも本番環境に使用されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/CI_CD_in_an_Anthos_deployment.max-1100x1100.jpg

このアーキテクチャの例では、Anthos Config Management がクラスタの状態を継続的に同期します。また、アプリケーション オペレータによってデプロイされるすべての環境が組織のポリシーを遵守しているかどうかについて、セキュリティ管理者が Anthos Config Management を利用して確認します(1)。デプロイ プロセスへの移行前にデベロッパーがアプリケーションを取り扱うための開発クラスタは、Anthos GKE を使用してプロビジョニングされます(2)。環境内のすべてのクラスタにわたるサービス管理の機能が Anthos Service Mesh によって提供されるので、オペレータはアプリケーションをデプロイ可能な場所を把握できます(3)。CI のフェーズでビルドされるコンテナ イメージを Artifact Registry が格納します(4)。最後に、アプリケーション オペレータにより、すべての環境にわたって一律に、一貫性を保ってアプリケーションがデプロイされます(5)。

このような構成で Anthos の力を引き出すことによって、本番環境の構築先にかかわらず、迅速なコードデプロイを実現できます。

パートナーシップによって拡がる選択肢

Google Cloud が高い評価を受けている理由の一端は、パートナーのエコシステムにあります。GitLab は 10 万を超える組織で使用されている CI / CD ツールを提供し、その活発なコミュニティのコントリビューターは 2,200 人を超えます。上の図にある例で、Google はステージング環境から本番環境までのプロセスの円滑化に GitLab の CI サービスを利用しました。ベンダー ロックインの回避という Google Cloud の真価の中核となっているのが、パートナーとオープンソースに対するこのコミットメントです。

「世界各地の企業が、GitLab の CI / CD ツールでアプリケーションの開発とデリバリーを変革し、改善しています。GitLab が Anthos のパートナーとなっている理由は、柔軟なアプリケーション モダナイゼーション プラットフォームが提供されることにあります。ハイブリッド環境とマルチクラウド環境をまたいで、安全なアプリの開発とデリバリーを横断的に進めることができるのです。」- GitLab アライアンス担当 VP Brandon Jung 氏

使ってみる

イノベーションを加速する必要性が今日ほど高まったことは、今までほぼありません。組織の行動のスピードを引き上げることが必須課題となっていて、Anthos の導入に関心をお持ちの場合は、担当のアカウント チームまでお問い合わせいただくか、こちらのフォームにご記入ください。お客様とのミーティングを手配し、Anthos の導入によって得られる成果をご説明します。デベロッパーがコーディング以外の業務に費やす時間は 23~38% 削減され1、運用チームの生産性は 40~55% 向上し1、セキュリティ タスクの生産性は 60~96% 向上しています1。

- By アプリケーション モダナイゼーション ソリューション マネージャー Brandon Royal


1. Total Economic Impact レポート

投稿先