クラウドとオンプレミスの違いはAPI操作
――『絵で見てわかるクラウドインフラとAPIの仕組み』が出版されたのは4年以上前ですね。このシリーズは好評でずっと売れ続けているようです。ただ、この本が出版された時期と現在では、クラウドのテクノロジーの状況が大きく変わったと思います。
平山:この本を出した時には、まず「クラウドのコンピュータリソースをAPIで操作する」ということを理解してもらう必要がありました。当時、オンプレミスの既存システムからクラウドに移行させるにあたって、実運用の一番大きな違いは、従来のデータセンターやハードウェアに対しておこなっていたオペレーションまでもがすべてAPIで実行できるということだったのです。
クラウド上のコンピューターリソースをAPIで操作できるようになったことで、Infrastructure as Code(IaC)やImmutable Infrastructureといった方法も可能になった。当時は、クラウドのメリットはどちらというとコストやスピードが強調され、このAPI操作が画期的だということがあまり理解されていなかったと思います。
――当時の技術的課題は何だったのでしょう。
平山:当時、一番の課題としてはクラウド上のOSでした。仮想マシン(VM)をクラウド上で立ち上げてもOS上での設定ファイルやパッケージ更新、OSのディレクトリー構造などをOS側で操作するとなると結局WindowsやLinuxのコマンドの操作になってしまい、クラウドのAPIで操作ができません。仮想ネットワークや仮想ストレージ、仮想マシンなどはクラウド上のAPIで操作できるのですが、その上のOSのコントロールとなると、まったくクラウドっぽくない従来と同じOS操作を行う必要がありました。
そうした理由もあって、例えば、この本の第8章オーケストレーション(Infrastructure as Code)では、まだ5-7章のサーバ、ストレージ、ネットワークの部分とOSやミドルウェアの部分を別々に2段構成でデプロイメントしているため、多少ギクシャクした説明になっています。具体的には、クラウドインフラ(IaaS)のレイヤーはAWS Cloudformation やOpenstack Heatを使っていますが、OSやミドルウェアはChefやPuppetを使うというように、分離されていました。前半のAPIの説明とインフラ部分の説明は、この本の内容で今も変わらずに活用はできると思います。
Kubernetesがマルチクラウド時代のOS
――当時と今の大きな違いは何でしょう。この本では、Dockerについては触れられていますが、Kubernetesについてはまだですね。
平山:そうですね。kubernetesの登場が、本書が出てからの一番の変化です。Kubernetes は従来のOS操作をコンテナを基盤としてAPIで制御できます。そのため、Kubernetesが出てきたことで、クラウドネイティブという考え方が浸透し、OSの操作までもがクラウド的になりました。
以前であれば、Amazon EC2上にLinuxを動作させる場合、Linux OSと Amazon EC2のIDは違うので別々の操作が必要になってしまい、管理も別々に必要でした。Kubernetesによって一元的に、APIでコントロールできるようになって、ようやく移植性と互換性があるマルチクラウドが可能になったといえます。KubernetesによってAPIで制御できるということは、クラウドと同様に、コントロールプレーンと実行環境を分離できるということです。そのコントロールプレーンを統合すれば、複数のクラウド環境でもKubernetesを統合的に制御できることになります。この点が、クラウドの原理そのものですので、KubernetesがクラウドOSであると呼ばれる理由だと思います。
この本では、マルチクラウドといってもVM前提で複数のクラウドを動かすこととネットワーク接続性を重視して解説していますが、クラウド間のVMとOSで完全に互換性があるわけではないので難しく、その注意点ばかりを書いている形になっていますね。
――マルチクラウドが注目される背景は何でしょうか?
平山:クラウドベンダーが大手数社に絞られていくなかで、ユーザーからリスク回避と最適化の観点で複数のクラウドを自在に使いこなしたいという、単純な市場競争のニーズが背景だと思います。AmazonはパブリッククラウドであるAWSのシェアが大きいのでどちらかというとマルチクラウドにあまり注力はしていないように感じますが、具体的には、IBM、Google、Microsoft、VMwareなどは、クラウド環境はどこでも動かせるようにしようというハイブリッドクラウド戦略とマルチクラウド戦略に感じます。そのため各社がKubernetesを標準にしたハイブリッドクラウド及びマルチクラウドに対応したテクノロジーを出してきています。具体的には、IBM/RedHat連合のOpenShift、GoogleのAnthos、MicrosoftのAzure Arc、VMwareのTanzuなどです。ここ数年の変化は、個人的にはOSがメインフレームからオープン系に変わったぐらいの変化に近いと言えると思います。また、先見性のある著者陣6名中、5名が転職し、ハイブリッドクラウドやマルチクラウドをリードしている会社(IBM、Red Hat、Microsoft、Google)に移っているのも、その変化の注目度を表していると言えるのではないでしょうか(笑)
――そういう意味では、この本の「次」が待たれますね。
平山:この本の時代はコンテナ技術としてのDockerがようやく出てきた頃で、時代は大きく変わりました。従来のOSではなく、Kubernetesをベースにしたオーケストレーション、Infrastructure As Code、マイクロサービス上のアプリケーションなどを含んだマルチクラウドが次の本のテーマになると思いますね。今、その本を書いています。来年に出版の予定でタイトルは未定ですが、『絵で見てわかるDXを実現するためのマイクロサービスの仕組み』(仮)のような方向になると思います。
――DXとクラウドネイティブの関係を解き明かす本になりますか?
平山:そうですね。DXというと定義も広く、曖昧で議論はありますが、基本はITありきでビジネスそのものを変革するという考え方ですから、ひとつの観点としては経営やビジネスの部門が、クラウドを使ってシステムを作るのが最良ということで、「内製化」ということも射程に入ってきます。
なぜDXにAPIが重要かと言うと、APIが進化していけば、ユーザー部門でもAPIを使うことでコツさえつかめばシステムの開発と運用ができるようになるからです。これまで以上に、業務を分かっている人がAPIを活用して実行をすることで、本当にビジネスに直結するのための良いシステムができるようになる。クラウド上のOSも含めたリソースを全てAPIを使って自在にコントロールできるKubernetesを中心とするクラウドネイティブの技術は、DXの時代に欠かせないものになると思います。
――そうなるとITベンダーのビジネスも変わりますね。
平山:例えばですが、実際にわれわれIBMのビジネスも、大きく変わりました。LinuxとKubernetesのリーディングカンパニーであるRed Hat社の買収を完了し、アウトソーシング事業の分社化を発表して、クラウドなどの先端テクノロジーを提供する会社に特化しようとしています。実際に、ブロックチェーンやAI、エッジコンピューティングなど、先進技術のクラウドのプラットフォーム上で提供を進めていますが、それは単一のパブリッククラウド環境ではなく、Kubernetesをベースにしたハイブリッドクラウド及びマルチクラウド環境を前提にしています。そして、そういう意味では、テクノロジーカンパニーとしての原点に回帰し、その技術を直接エンドユーザーにAPIで簡単に利用できるようとし、お客様のDX化を本格的に推進しようとしているのです。
次作はDX時代に必要なクラウドテクノロジーの解説になりますが、ただそういう時代になっても、この『絵で見てわかるクラウドインフラとAPIの仕組み』の中心部分は、変わずに、DXの裏側の基盤技術として動いていることになると思います。この本のエッセンスの部分は、これまでかなりの分量で抄録記事として公開していますので、それまでに、ぜひじっくり読んでおいてもらいたいですね。本書は技術的に深い内部構造まで言及していますが次作でDXとマイクロサービスを活用するためにも、その裏側の基盤技術の動作原理を理解するという観点で、併せて読んでもらいたいと思います。
――次作を楽しみにしています。ありがとうございました。