Google Cloud Platform

サーバーレス コンピューティングの実現に向けて

イノベーションを通じて優れたソフトウェアを迅速に構築することは、多くの企業にとって共通の目標です。近年ではサーバーレス コンピューティングがアプリケーション開発のあり方を変え、インフラストラクチャではなくアプリケーション ロジックに焦点が当たるようになりました。ゼロ サーバー管理や、自動スケーリングによるトラフィック需要への対応、管理された統合セキュリティのおかげで、開発者は迅速に動き、俊敏さを維持しながら、優れたアプリケーションの構築という最も重要なタスクに集中することができます。

Google は 10 年以上前に App Engine を発表し、サーバーレスの考え方を広めることに一役買いました。開発者の生産性向上は、現在も当時と同じくらい重要です。私たちはこの数年、App Engine で学んだサーバーレスのメリットを、コンピュート、ストレージ、データベース、メッセージング サービス、データ アナリティクス、機械学習といったサービスで提供するべく奮闘しています。

そしてこのたび、Cloud Services Platform のローンチに合わせて、サーバーレス コンピュート スタックの重要な新展開を発表しました。

  • 新しい App Engine ランタイム
  • Cloud Functions の正式リリース : サポート言語の拡大、パフォーマンス向上、ネットワーキングおよびセキュリティ機能の追加
  • Cloud Functions のサーバーレス コンテナ
  • GKE サーバーレス アドオン
  • Knative(Kubernetes で動作するサーバーレス ワークロード向けのビルディング ブロック)
  • Cloud Firestore と Google Cloud Platform(GCP)サービスの統合

サーバーレス コンピュート サービスの拡充

私たちは、第 2 世代 App Engine スタンダード環境のランタイムで最近 Node.js 8 に対応したのに続いて、Python 3.7 と PHP 7.2 などをサポートしました。第 2 世代ランタイムは、任意のフレームワーク、ライブラリ、バイナリを実行できるイディオマティックなオープンソースの言語ランタイムを開発者に提供します。gVisor 技術をベースにしたこれらの新しいランタイムは、デプロイの高速化やアプリケーション パフォーマンスの向上を実現します。

また、イベント駆動型のコンピュート サービスである Cloud Functions の正式提供も開始しました。Cloud Functions では予測可能なサービスが SLA で保証されるようになり、グローバル ネットワーク フットプリントを利用して提供され、欧州とアジアでリージョンも追加されました。さらに、Python 3.7Node.js 8 のサポートや、ネットワーキングとセキュリティの管理など、お客様からの要望が高かった新機能で強化されており、全体的なパフォーマンスも向上しています。Cloud Functions は、BigQuery、Cloud Pub/Sub、機械学習 API、G Suite、Google アシスタント など 20 以上の GCP サービスをシームレスに接続して拡張できます。

サーバーレスとコンテナのいいとこ取り

お客様が App Engine と Cloud Functions のどちらをお使いであっても、Google のサーバーレス プラットフォームはツールとサービスの包括的な組み合わせを提供します。しかし、お客様からは「特定のランタイム、カスタム バイナリ、ワークロードのポータビリティなど、組織の要件にはカスタムなものもある」との声も寄せられています。大抵の場合、こうしたお客様はカスタム要件に対処するためにコンテナを使用します。そこで私たちは、サーバーレスとコンテナのいいとこ取りができるようにしようと考えました。

それを具現化したのが、今回発表したサーバーレス コンテナです。これを使用すれば、コンテナ ベースのワークロードをフルマネージド環境で実行でき、料金は使用した分しかかかりません。Cloud Functions のサーバーレス コンテナに興味のある方は早期プレビューにお申し込みください。コンテナ化された独自の関数を GCP で実行し、サーバーレスのメリットをすべて享受できます。

すでに Kubernetes Engine をお使いの場合は、新しい GKE サーバーレス アドオンにより、サーバーレス ワークロードを Kubernetes Engine にワンステップでデプロイして実行できます。ソースからコンテナを瞬時に生成し、コンテナ ベースのステートレス ワークロードを自動スケーリングできるほか、ゼロにスケールダウンすることも可能です。Kubernetes Engine でサーバーレス ワークロードの実行をサポートしている T-Mobile からは以下のようなコメントをいただきました。

「GKE サーバーレス アドオン技術のおかげで、ビルド / デプロイや自動スケーリング、モニタリング、オブザーバビリティ(可観測性)などのオーバーヘッド タスクを気にする必要がなくなり、ビジネス ロジックだけに集中できるようになりました。」
― Ram Gopinathan 氏、T- Mobile の主席テクノロジー アーキテクト

Knative でサーバーレス ワークロードをどこでも実行

私たちは Google Cloud がすべてのタイプのワークロードの優れた実行環境だと考えていますが、オンプレミスやマルチクラウドでワークロードを実行する必要があるお客様もいます。こうしたフィードバックに応えるため、私たちは Knative(「ケイネイティブ」と発音)を発表しました。Knative は、GKE サーバーレス アドオンを支えているのと同じ技術によるオープンソースのコンポーネント セットです。

Google と PivotalIBMRed HatSAP との密接なパートナーシップのもとで開発された Knative は、モダンなコンテナ ベースのサーバーレス アプリケーションの構築とデプロイに必要なビルディング ブロックを提供することで、Kubernetes ベースのコンピューティングを推し進めます。

Knative は、アプリケーションの実行時に共通する難しい要素に焦点を当てています。具体的には、ソースによるコンテナのビルドのオーケストレーション、デプロイの際のトラフィックのルーティングと管理、ワークロードの自動スケーリング、イベント エコシステムへのサービスのバインディングなどです。Knative は、従来のアプリケーションや関数、コンテナであるかどうかにかかわらず、ワークロードのデプロイに必要な使いやすいイディオマティックな言語サポートと標準化されたパターンを提供します。

Knative は、一般的なパターンと体系的にまとめられたベスト プラクティスの実装を再利用可能な形で提供します。これらは、実際に成功した Kubernetes ベースのフレームワークやアプリケーションで共有されているものです。たとえば、Knative に含まれるビルド コンポーネントは、コンテナ イメージやコンテナ以外のアーティファクト(成果物)をビルド、テストして Kubernetes クラスタにデプロイするための強力な抽象化と柔軟なワークフローを提供します。

お使いのプラットフォームに Knative を統合すれば、コンテナのポータビリティや使いやすさとサーバーレス コンピューティングの自動化や効率性のどちらかを選択する必要はなくなります。GCP、オンプレミス、他のクラウドのどこでワークロードを実行するかに関係なく、サーバーレス コンピューティングの実現に関する幅広い経験を持つ Google Cloud のメリットを享受できます。ぜひ Knative をお試しになるか、コミュニティにご参加ください。

包括的なサーバーレス エコシステム

もちろん、サーバーレス コンピューティングは、コードのビルドとデプロイ、データの保存、本番アプリケーションの管理を IT 環境全体で容易に行えない場合は役に立ちません。そのため、私たちはサーバーレス サービスの包括的なエコシステムを実現することに力を注いでいます。

たとえば Cloud Build を使用すると、サーバーレス アプリケーションのCI/CD(継続的インテグレーション / 継続的デリバリ)パイプラインを作成できます。Cloud Functions、App Engine、さらには Knative など複数のサーバーレス環境にまたがる形で、ビルド、テスト、デプロイを行うカスタム ワークフローを定義できます。

Google Cloud のサーバーレス スタックに最近加わった Cloud Firestore は、アプリケーション データの保存と同期を世界規模で行えるようにします。アプリケーション開発者は近いうちに GCP Console から Cloud Firestore に簡単にアクセスできるようになり、Cloud Firestore と Cloud Datastore の互換性も確保されます。

Monitoring、Logging、APM(アプリケーション パフォーマンス管理)というコア機能を備える Stackdriver スイートにも、新たに Service Monitoring という 4 つ目のコア機能が加わりました。これらを利用すれば、本番サーバーレス アプリケーションの運用や迅速な診断を行えます。

ユビキタス サーバーレス コンピューティングを支援

私たちは、運用を簡素化する方法や、ソリューションをより迅速に市場に提供する方法をこれからも追い求めていきます。GCP Marketplace で商用 Kubernetes アプリケーションが最近リリースされたことは、サードパーティ ソリューション プロバイダーが新しい技術を迅速に導入し、拡張可能なソリューションへの需要に対応していることを示しています。私たちはこうした新しいサービスも利用しながら、より多くの開発者が自身の選んだ言語とプラットフォームでサーバーレス コンピューティングを導入できるよう支援していきます。

Google Cloud の広範なサーバーレス技術についてはこちらをご覧ください。

*この投稿は米国時間 7 月 24 日、Engineering の Vice President である Eyal Manor によって投稿されたもの(投稿はこちら)の抄訳です。

- By Eyal Manor, Vice President, Engineering