Kubernetes、Istio、Knative
昨年からSpringOneでも見かけるようになったKubernetes関連のセッションですが、PKSの発表から1年が経過した今年は大幅にその数を増しています。
Kubernetes関連技術の中でも多くの開発者から高い関心が寄せられているIstioについては、「Tale of Two Frameworks: Spring Cloud and Istio」という興味深いセッションがありました。同セッションでは、マイクロサービスアーキテクチャーの実現手段としてSpring CloudとIstioの2つを対比し、どちらかを選定する際に考慮すべきポイントが語られています。
Istioを採用する場合、アプリケーションを実装する上で特定のプログラミング言語やフレームワークに縛られることはないという大きなメリットがあります。一方で、すでに4年近い実績のあるSpring Cloudと比べて2018年7月にバージョン1.0がリリースされたばかりのIstioはまだ実績が少ないことや、すべての通信をサイドカーが仲介することに起因するパフォーマンス上のオーバーヘッドは考慮に入れる必要があるという点が注意点として挙げられていました。
また、Istioを採用した場合であってもサーキットブレーカのフォールバックなど、アプリケーション固有の実装が必要な箇所が残るという点についても説明されていました。
Kubernetes関連技術としてもう一つ目立って取り上げられていたのがKnativeです。KnativeはGoogle Cloud Next'18で発表されたばかりのプロダクトで、Kubernetes上でサーバーレスを実現するための各種機能を提供しています。
Pivotalは昨年のSpringOneで、同じくKubernetes上でサーバーレスを実現する手段としてriffを発表していました。riffの設計の一部はPivotalの手でKnativeに持ち込まれ、その上でriffにはKnativeを前提とした再構築が施されたそうです。
Mark Fisherさんのセッション「Introduction to Knative」ではKnative自体の紹介として、複数リビジョンのアプリケーションのルーティングを切り替えるデモや、gitリポジトリ上のソースコードからビルドテンプレートを用いてコンテナイメージを作成して起動するデモが披露されました。
Scott AndrewさんとEric Bottardさんのセッション「riffing on Knative」でもriffを用いて同様にソースコードからコンテナイメージを作成するデモがありました。riffではKnativeのデモに登場していたyamlの記述を一切行うことなく、同様の操作がCLIで簡単に行われており、その手軽さが強調されていました。
SpinnakerはCloud Foundryサポートへ
PivotalのJon SchneiderさんのMain Stageの講演ではマルチクラウド対応の継続的デプロイメントツールであるSpinnakerが紹介されました。
近年ではアプリケーションの実行基盤としてクラウド環境が当然のように使われていますが、クラウドの変化は激しく、仮想マシン、コンテナ、サーバーレスとさまざまな形態が登場しています。そのため、アプリケーションのデプロイ方法を複数のクラウド環境に対応させていく必要性も増してきています。Spinnakerはこのようなマルチクラウドの世界に対応していくためのツールとして注目を集めています。
SpinnakerはもともとNetflix社が開発していたツールで、現在ではGoogle社、Amazon社、Microsoft社、Pivotalなどが開発に参加しています。対応しているクラウド環境も、AWS、Azure、GCP、Google App Engine、OpenStack、Kubernetesと多岐にわたっており、今後リリース予定のバージョン1.10ではCloud Foundryサポートのプレビュー版も含まれるとのことです。
Spinnakerは2つの重要なコンポーネントを持ちます。
1つはInventoryで、複数のクラウド環境にデプロイしたアプリケーションを一覧として管理・閲覧するためのビューを提供します。
もう一つはPipelinesで、アプリケーションをデプロイするための一連の動作をパイプラインとして定義することができます。
また、Spinnakerはクラウド環境へのデプロイにおけるいくつかのベストプラクティスを一般化します。例えば、SpinnakerはBlue-Greenデプロイメント(SpinnakerではRed-Blackデプロイメントと呼ぶ)をサポートしており、クラウド環境ごとのやり方を考えなくてもSpinnakerの設定だけでBlue-Greenデプロイメントを簡単に実現することができます。その他にも、カナリア分析、ロールバック、ヘルスチェックなどがサポートされています。
Jonさんは「Spinnaker and the Distributed Monorepo」というセッションでもSpinnakerの紹介をされており、こちらでは実際のデモ画面を見せながらSpinnakerのより詳細な説明をされていました。セッション中は参加者から多くの質問が飛び出し、注目度の高さがうかがえました。
