Pivotal PlatformとPAS on Kubernetes
これまでPivotalはPivotal Application Service(PAS)とPivotal Container Service(PKS)を合わせてPivotal Cloud Foundry(PCF)の名前でアプリケーションプラットフォームを展開してきましたが、この度PCFは「Pivotal Platform」という名前でリブランディングされました。
コンテナオーケストレーション技術としては、PASはDiegoを、PKSはKubernetesをそれぞれ採用しています。両者のうち、PASではワン・コマンドでアプリケーションのデプロイなどを簡単に行える「cfコマンド」が利用可能ですが、PKSでは利用できません。ユーザのKubernetesに対するニーズが高まっている現状を受け、Kubernetes上でも同様の開発者体験(いわゆる「cf experience」)を可能にする、「cfコマンドが使えるKubernetes」であるPAS on Kubernetesが開発されました。
VMwareのビジョンの中でも語られた通りKubernetesの利用は広がっており、Pivotalとしてもコンテナ技術としてKubernetesへ注力していく姿勢が強調されていました。
Azure Spring Cloud
Microsoft CorporationとPivotalは合同で、Spring Bootで作成したアプリケーションをAzure 上で簡単にデプロイおよび操作できるサービス、Azure Spring Cloudを発表しました。Azure Spring CloudはSpring Cloudのコンポーネントをフルマネージドサービスとして提供します。実行環境はAzure Kubernetes Serviceであり、Pivotal製のKubernetesのリソースコントローラーであるkpackを採用しています。Main Stageではデモも行われ、Azure Cliによるアプリケーションのブルー・グリーンデプロイの様子や、Azure Monitorを使った分散アプリの監視のしやすさを説明してくれました。現在はプライベートプレビューを実施中であり、今後の発展に期待の膨らむサービスです。
クラウドネイティブにおける4つの重要な考え方
2日目のキーノートでは、PivotalのMark FisherさんとCornelia Davisさんから開発者が直面するクラウドネイティブソフトウェアの複雑さと、それを扱うための考え方について紹介がなされました。
クラウドネイティブソフトウェアの複雑さは高度に分散され、かつ継続的な変更が行われるという性質からもたらされており、そうしたソフトウェアの開発ではImmutable、Reactive、Reconciliation、Composableの4つの考え方が重要になると語られました。
これらの考え方についての紹介をまとめると以下のようになります。
- Immutable:副作用を行う計算は存在せず、すべての変数は書き換えられることがないという考え方
- Reactive:リクエスト/レスポンスという関係ではなく、他のコンポーネントからやってきたイベントへの反応の連鎖でシステムを構築する方法
- Reconciliation:ソフトウェアについて望ましい状態と現状とをそれぞれ「何であるか」という観点で比べ、チェックするという考え方
- Composable:小規模の関数を合成することで全体のシステムを構築するという考え方
Immutableのもたらす恩恵としては、repeatability(繰り返し同じ実行を再現することができる性質)が挙げられていました。例えばkpackはすでにビルドされたコンポーネントをアップデート(変更)するわけではなく、単純にコンポーネントのビルドだけをするため、任意のバージョンにソフトウェアを戻しても繰り返しビルドを行うことができます。Reactiveの紹介では具体例として、kpackがbuildpackのアップデートやコードコミットのイベントに反応してビルドを行う仕組みや、reactor・fluxモデルを用いた購買履歴に広告を関連付けるユースケースが示されました。Reconciliationについては、望ましい状態を宣言的に記述するスタイルが重要であり、特にAPIは宣言的なスタイルで用いられるべきであることが強調されました。最後に、Composableの達成はソフトウェアがImmutable、Reactive、Reconciliationに従っているかに左右されており、それぞれの考え方が関連し合っていることを再度強調していました。