views4GCPのストレージサービスについてまとめてみた。Exp:23510闇の戦士です。先進的なサービスが数多く発表されました。今後のコンテナ開発を大きく変える可能性のあるものでした。PlatformファミリーであるKnativeの3つの役割を、サンプルコードを交えて使い方と共に解説していきます。このシリーズは以下の構成の予定です。StepKnativeで変わるものKnativeを使用するためには、Kubernetesがインストールされたクラスタを用意する必要がありますが、KnativeはKubernetesと同様にコンテナをオーケストレーションするためのものである、という点は変わりません。Knativeは、クラウドにおけるPaaSやFaaSのようなアーキテクチャを、Knativeがインストールされていれば(つまり、Kubernetesクラスタであれば)どこでも実現できるものです。登場によって、オンプレミスからクラウドへ向いていたワークロードの移行方向が逆転する可能性を秘めていると感じましたし、Keynote内でも「クラウドの力をオンプレへ持ってくる」という表現がされていました。Knativeを使用することによって以下のようなことが実現できます。徹底解説シリーズそれぞれの記事で触れます。Knativeの3つの役割Knativeには大きく分けて3つの機能があります。Buildは、その名の通りコンテナをビルドするための機能です。使っていればコンテナのビルドは済んでしまうので、GCPを使用している開発者にとってはあまり恩恵を感じませんが、Knativeが使えればどこでもコンテナをビルドできるというのは、ワークロードをオンプレミスで実行している開発者にとっては役立つ場面があるかもしれません。Buildでビルドしたコンテナを、プライベートなコンテナレジストリへpushすることができます。Storageやプライベートなものを含むGitHubリポジトリを指定することもできます。GitHubリポジトリの場合には特定のリビジョンを指定することも可能です。ServingはKnativeの中核を成す機能です。Registryへ保存されているコンテナイメージを起動し、サービスとして実行することができます。Servingを使うことによって長時間(だいたい5分くらい)アクセスのないコンテナの起動Pod数をゼロにすることが可能になる他、トラフィック分割によるコンテナ単位でのカナリアリリースなど、Kubernetesではできなかったかゆいところに手が届くようになります。Servingは雑に言ってしまうとGCPのAppEngineのようなもので、コンテナを作ってあとはServingの定義ファイルさえ書いてしまえば自分たちのサービスを提供することができるシンプルさです。Pub/Subへのメッセージを処理するFaaSのような役割を担います。思想に基づき、コンテナをFaaSのようなものとして起動し、サービス同士の疎結合性を高める目的があります。Knativeの始め方あらゆる場合について、公式ドキュメントに非常に詳しく書いてあります。Step3つのKnativeコンポネントの使い方についての解説記事を書いています。これら3つの要素については次回以降の記事で触れていきます。