開発プラットフォームを基盤ではなくプロダクトとして捉えてみる
とはいえ、いまや多くのコンテナやKubernetesは身近な存在になりつつある。アプリケーション開発者はどのようにコンテナとモダンな環境を捉えていけばいいだろうか。
柳原氏は「これからはクラウドネイティブの概念は避けて通れません」と言う。クラウドネイティブなアプリケーションだけではなく、クラウドネイティブなオペレーション然り、クラウドネイティブなプラットフォームも然り。もはやクラウドネイティブは頭文字や枕詞のようについてまわる。
ここで改めて「クラウドネイティブ」を確認しておこう。CNCF(Cloud Native Computing Foundation)の定義から一部引用すると「クラウドネイティブ技術は(各種クラウドの)近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらす」とある。「昔のような重厚長大でモノリシックなアプリケーションではなく、24時間365日止まらないようなスケーラブルなアプリケーションを作っていかなければならない、そんなパラダイムシフトが起きているのです」と柳原氏は説く。
そうしたパラダイムシフトにおける1つのキーワードとしてVMwareが打ち出しているコンセプトが「Platform as a Product(製品としてのプラットフォーム。以下、PaaP)」。インフラエンジニア向けの新しい概念のように見えるが、実はアプリケーション開発者に浸透しているアジャイル開発やDevOpsにも通じる概念だ。これはアジャイル開発が得意なPivotalを統合したVMwareらしいところでもある。
思い出してほしい。アジャイル開発では開発者(エンジニア)、デザイナー、プロダクトマネジャーの3つのロールがチームを組んでアプリケーションを作りあげていく。このアプローチをインフラに適用したもの、アジャイル開発におけるプロダクトをインフラ構築にも適用するのがPaaPになる。そう考えると少し親近感がわくのではないだろうか。
柳原氏は「大事なのがお客様、つまりユーザーの存在です」と強調する。アプリケーション開発でユーザーを意識することが重要であるのと同じように、プラットフォームにおいてもユーザーを意識することが重要になる。プラットフォームにおけるユーザーとなるのはアプリケーション開発をしている「開発者」である。
アジャイル開発における開発者は、PaaPではプラットフォームを作りあげていくインフラエンジニアにあたる。柳原氏は「SREの上位互換にあたると考えている」と話す。
繰り返しになるが、アジャイル開発におけるマインドセットをプラットフォームの世界に適用したのがPaaPとなる。長らくインフラを支えてきたVMwareに、アジャイル開発を各組織に浸透させてきたPivotalが1つになったからこそ実現できる世界だ。
なお「プラットフォーム」は「基盤」と同等と捉えられるものの、柳原氏はこの2つの用語を使い分けているという。「基盤」はかつてのように「構築したら、あとはそのまま使い続けるインフラ」というイメージで捉えている。一方「プラットフォーム」は「チームを作り、愛着を持ち、組織や企業とともに育てていくインフラ」としている。