―― Kubernetesについても、「これを使いさえすれば、『クラウドネイティブ』という美しい世界に近づけるのではないか」と考えて飛びつく人がいなくはないですよね。
青山 いなくはないです。ただし、私としては、それでもいいかなと思っています。理由は、Kubernetesを使うと、「こうすべき」という制約があり、ヘルスチェックやアプリケーション更新の手法などを、Kubernetesに合わせるしかなくなります。すると、組織の在り方やアプリケーション開発のやり方が、特定の方向に進みます。それによって結果的に、クラウドネイティブな開発に近づくという効果はあります。そういう意味では、「Kubernetesで文化的に良い方向に進めるから使う」というのもアリだとは思います。Kubernetesの全てを知ってから使うべきとは、一概に言えません。
―― 草間さんは、クラウドネイティブに関する誤解について、どうお考えですか?
草間 CNCFのクラウドネイティブに関する定義は、よくできていると思います。ただし、クラウドネイティブを分からない人に分かってもらうための定義ではなく、もともとクラウドネイティブなマインドセットを持ち、実践している人たちが、やっていることを後付けで表現したようなところがあります。「俺たちのやっていることは、一言でいうと『クラウドネイティブ』だったんだ」と。
「可観測性」「回復力」「マイクロサービス」などの言葉が、違和感なく受け入れられるのは、既にやっている人だという気がします。「『クラウドネイティブ』って何だ」とネットで検索して、Kubernetesやコンテナを使おうとしている人が、この定義を見ても、余計に訳が分からなくなってしまうのではないかという心配があります。
「クラウドネイティブ」には経緯があります。順番でいうと、まずコンテナのような技術が出てきて、アプリケーションの基盤が仮想マシンに比べて軽量化し、同時により簡単にデプロイできるようになりました。すると次に、1つのコンテナに何でも詰め込むのではなく、小分けにして、効率を上げ、デプロイメントの容易性や回復力(レジリエンシー)を高めた方がいいよね、そういう形でアプリケーションを作りたいよね、という話になります。さらに、それをやるのであれば、従来のモニタリングをさらに手厚くしなければならない、ということになります。マイクロサービス間の通信は、人間が追跡し、判断できる世界ではなくなってきます。人間が判断できる限界を超えて観測するために可観測性(オブザーバビリティ)のような考えが出てくるわけです。
こうした経緯が分かって初めて、CNCFによるクラウドネイティブの定義を理解できるところがあります。これが誤解、あるいは理解が進まない状況を生んでいる一因となっているのではないかと思います。
一方で、クラウドに移行するだけでクラウドネイティブだという誤解もあります。システムを設計する際、クラウドありきで考える「クラウドファースト」という言葉もありますが、これを実践することが即ちクラウドネイティブになるわけではありません。基盤がオンプレからクラウドに変わっただけの、せいぜい「クラウドレディ」に留まるケースも多いのです。
―― では、既存アプリケーションのコンテナへのリフト&シフトについてはどう考えていますか?
草間 そうですね。以前は、既存システムがちゃんと動いているのであれば、リスクを負ってコンテナに載せ替える必要はないのではと思っていましたが、多少変わりつつあるなあというのが正直なところですね。
2、3年前にKubernetesがはやり始めたころは、機能も不足して、載せ替えること自体にリスクがありました。しかしその後、Kubernetesは発達して、カスタムリソースやOperatorによって、人がやっていた運用をソフトウェアで自動化するような使い方ができるようになりました。すると、リスクを減らしつつ新しい基盤に移行できる可能性が出てきたことになります。必ずしも私がかつて抱いていたような、「リフト&シフトなんて要らないよ」というイメージでもなくなってきました。
―― 「クラウドネイティブ」をはき違えているなと感じるのはどういうときですか?
草間 私の経験では、真っ先に「マイクロサービスやクラウドネイティブをやりたい」と言う人は、誤解しているケースが多いです。
あとはやはり、Kubernetesなど、「特定のモノを入れたらクラウドネイティブになる」と言う人。こういう人たちは、クラウドネイティブで恩恵を受けないだろうなあと思います。
―― ではそもそも、「クラウドネイティブという言葉を使う意味はどこにあるのだろう」という問いも成立するのかなと思います。IT業界では、いろいろな言葉が生まれては消えていきます。「クラウドネイティブ」は目的とは言わないまでも、何らかの目標として使う価値のある言葉なのでしょうか? 「クラウドネイティブ」という言葉を出して、この方向に行った方がいいよと広く伝えることに意味があるのでしょうか?
草間 答えから言うと、広めた方がよい言葉だと思います。クラウドネイティブの定義を表面的にとらえるだけだと、「自分には関係ない、それって『マイクロサービス』とか言っているから、超大規模な世界、テッキーなIT系企業だけの世界なんでしょう」という認識が広がりがちです。
でも、よくよくCNCFによるクラウドネイティブの定義を読んでみると、「スケーラブルなアプリケーションを実行するための能力を組織にもたらします」という表現をしている。技術的な導入の話ではなく、能力を組織に持ってくることを「クラウドネイティブ」と呼んでいます。最初から「コンテナが」という話ではありません。
今のようにクラウドや新しい技術が出てきて、全てプログラマブルになって効率化できる時代になりました。人間がやれば分・時間単位で掛かる処理が、コンピューターではミリ秒、ナノ秒でできてしまいます。CNCFの定義による「スケーラブルな……能力」というのは、「人間の限界を超えて自動化していこうよ」と言っているのだと思います。
こうした自動化のメリットを生かせる組織はテクノロジー企業に限りませんし、企業規模の大小にもあまり関係ありません。そう考えるとクラウドネイティブは全ての人にとって役立つものだと思います。
―― とはいえ、「どれだけのスケーラブルなアプリケーションを運用している企業であれば、クラウドネイティブにすべきなのだろう」と戸惑う人も多いと思います。
草間 例えば秒間10リクエストのサイトを100リクエストさばけるようにスケールさせる場合でも、クラウドネイティブ技術を正しく活用できれば簡単に、効率よく運用することができます。ですので、小規模であっても積極的に取り組む価値はあります。
しかし、クラウドネイティブ技術を採用するだけで無限にスケールするわけではありません。次第にさまざまな場所でボトルネックが発生し、限界を迎えてしまうでしょう。そうなると、アプリケーションのアーキテクチャや、それを開発・運用する組織の見直しも必要になってきます。マイクロサービスは、そのアプローチの一つといえます。
かといって、いきなり秒間10リクエストしかないサイトに数万リクエストさばけるアーキテクチャを採用すべきとも思いません。ここで言いたいのは、「自らのビジネスの中でスケーラブルなものを作っていきましょう」ということです。規模の大小問わず、現時点で自らのビジネスを最も効率よく回す仕組みを、クラウドネイティブで作っていくという意識が大事です。
―― 青山さんは、「クラウドネイティブ」という言葉を広めることに意味があると思いますか?
青山 最初に言った通り、クラウドネイティブはクラウドを使ってきた人たちのベストプラクティスを文言化したものです。レガシーシステムやHPC(High Performance Computing)でない限り、プライベート、パブリック問わず、クラウド化の流れははっきりしています。クラウドを使っている人たちは、程度の差こそあれ、いずれクラウドネイティブへの取り組みを進めることになります。CNCFによるクラウドネイティブの定義の内容も間違っていないし、そのまま広げていく必要があると考えています。
ただ、CNCFによるクラウドネイティブの定義を見た人の中には、「これを全部やらなければならないのか、全部達成しないとクラウドネイティブではないのか」と思う人もいるでしょう。私は、全部やる必要はないと考えています。組織の規模にもよりますが、自分たちのできるところ、必要なところだけに取り組んだとしても損はありません。クラウドネイティブにしていくこと自体は非常に重要だと思っています。
CNCFによるクラウドネイティブの定義には、宣言的なAPIやマイクロサービスといったワードが出てきはしますが、草間さんも言っていたように、「どうやってスケーラブルなアプリケーションを作れるようにしていくか」がテーマなので、それを目指していくことによって、クラウドの使い方のベストプラクティスとか、適切なアプリケーションの設計ができるようになっていくと私は信じています。
今や、あらゆるWebテクノロジー企業が「クラウドネイティブ」を目指している。一般企業においても、デジタル化への取り組みに伴い、この言葉が最重要キーワードとして浮上している。クラウドネイティブは、これからの攻めのITにおける前提になったといって過言ではない。そこで次に語られるべきは、「具体的に何をやっていくのがいいか」ということだ。パブリッククラウドを使えば自動的にクラウドネイティブになるわけではない。本特集では、クラウドネイティブに一家言を持つ青山真也氏と草間一人氏の対談や、事例を通じ、クラウドネイティブの具体的な姿を明らかにしていく。
Copyright © ITmedia, Inc. All Rights Reserved.