orangeitems’s diary

クラウドではたらくエンジニアの日々の感想です。

Kubernetesに対するインフラエンジニアの付き合い方

f:id:orangeitems:20180506094356j:plain

 

ニュースの絶えないKubernetes

Kubernetesが日本でどういうふうに読まれるかが定まっていないのに、どんどん市場は成長していっていると思います。関連のニュースは絶えませんし、だからと言って、まだ会社の現場で使われる状況にはなっていません。例えばVMwareに関してはたくさんの会社のサーバーで使われていますし、LinuxはCentOSやRedhat Linuxとして当たり前のように本番サーバーで動いています。今後、Kubernetesをどのように本番に迎え入れるか議論が深まっていくと思います。それこそインフラエンジニアの出番です。

一方で、AWSやAzure、Google Cloudなど、メジャーなクラウドプラットフォームでは利用可能になっていっています。やもすれば、Kubernetesはパブリッククラウドで利用するソフトウェアとの誤解が広まってしまいそうです。これまでは手元(オンプレミス)でテストしてからパブリッククラウドへと利用が広まっていくのが常道でしたが、今回は順番が逆のように思われます。

 

今のKubernetesを評価する

私は今のKubernetesを「車のエンジン」と捉えています。

車のエンジンだけでは動きません。シャーシにエンジンを搭載し、タイヤとホイールとドライブシャフトとハンドルと椅子と・・いろいろくっ付けて車になります。今のKubernetesは動かすためにはいろいろ作業が必要です。つまり、車を利用するためには、車を組み立てる技術が必要です。また、車ができた後もどのように車が動くかをちゃんと理解しないと、使いこなせないレベルです。

これでは使いにくいため、組み立てたもの、つまり「車」を売っているベンダーもいます。IBMはIBM Cloud privateというパッケージを出しています。RedhatはOpen Shiftというパッケージを。VMwareは子会社のPivotalからPivotal Container Servicesというパッケージをリリースしています。

一方で、そもそもレンタカーのようにサービスとして車を利用する形式が進んでいます。AWSだとAmazon EKS、AzureだとAzure ACS、GoogleではKubernetes Engineなど。これはもう車は貸出を受ければ誰でも使えるようになっています。

皆がレンタカーとしてしか車を使わないかというと、そんなことは絶対なくて、やはり所有して使いたいという欲求は無くならないので、どこかでKubernetes構築はインフラエンジニアの必修業務になると思います。もちろん、この業務ならレンタカーだねということもあるでしょう。このあたりの適材適所を考えていくのはインフラエンジニアの未来も変わらないミッションです。

 

Kubernetesの今の問題

今のKubernetesの問題は車の操作が難しいことです。知識が無くても何と無く車が使えるようになれば、もっと普及していくでしょう。今までの数々のテクノロジーも、「車のエンジン」レベルまで急激に成長し、しかし車になれずだんだんしぼんでいったケースもたくさんあります。私をはじめ数々の「本物になれなかったテクノロジー」を見てきているベテラン勢はKubernetesがその領域を超えるか注視している最中にあると思います。

具体的な例としては、OpenStackやCloud Foundaryが挙げられます。一冊ぐらいは本を読んだものですが、利用はかなり限定的になっています。もちろん一部のパブリッククラウドで使われているのは知っていますが、企業の現場においてVMwareやLinuxほどは使われていないのが現状です。MySQLやPostgreSQL、apache HTTP Serverや、Zabbixなどもよく触りますが、これらも本物です。本物に関しては仕事にどんどん入ってきますので勉強が必要です。来ないものは見極めて「勉強しない」というのも一つの生産性の上げ方です。

Linuxは「本物」になったわけですが、本物になる過程は非常に時間がかかりました。当初Linuxは単なるカーネルソフトウェアでした。まだ「車のエンジン」です。これに様々なソフトウェアを組み合わせて様々なディストリビューションが作成されました。これが「車」です。今や、RedhatにしてもCentOSにしても、Suseにしても、基礎的な知識だけで簡単にインストールし使い始められるようになりました。これは初めからそうだったわけでは決してありません。初めのうちのLinuxは、ドライバの組み込み一つにしても知識がないとできませんでした。

 

今、どうするべきか

Kubernetesに対する各ベンダーの投資はかなりもので、どんどん成長しているのは間違いありません。ただこの先にいけるかどうかは誰も読めません。いつもここまでは来るのですが。例えばHadoopも限定的な利用に止まっているようですし。

今のところKubernetesについては「先進的なものを使っていることで、ブランド価値を上げる」くらいの位置であり、「車がないと生きていけないよね」までは来ていません。そんな時代が来てから勉強しても決して遅くはないです。ただ第一人者にはなれないのでピンと来た人は研究を始めた方がいいと思います。

この業界に20年いるとわかるのですが、新しい技術の大部分が出て来ては消えて生き、その中の一部のソフトウェアが本物になります。本物になったソフトウェアは相当に使いやすく、最後はワンクリックでインストールが完了します。GUIも用意され、もはやマニュアルが無くても一通り使える代物になります。実はそこから勉強するのが最も楽です。ただ、本物になる前から研究していて動作原理を語ることができる人が、業界のリーダーとなります。業界関係者が全員リーダーになる必要はないですし、いろいろな本物を楽に(生産性高く)身につけてディストリビューターに徹するのはこれはこれで賢いやり方だと思います。どちらがいいということもなく、バランス良く振る舞えるかどうかが評価されるインフラエンジニアの要です。

Kubernetesが結局クーベルネティスなのかクーバーネイティスなのかクーベルネイティスなのかよくわからないんですが、Linuxだってリナックスに固まったのも時間がかかりました。固まり始めたら本物になる予兆かもしれませんね。