Kubernetesの読み方
Kubernetesと書いて、どう読むでしょうか。
登場時には、クーベルネイティスと読む人やクーベネティスと読んだり、いったいなんて読むのが正解なんだろうと悩んだままなんとなくクーベルネティスがいいかななんて思っていました。
今日、日経にこんな記事が出ました。
・・・その主役は、グーグルが開発した仮想化ソフトの運用ツール「クバネティス」・・・
クバネティス!!!。また新しい呼び方ですが、日経に出たということは今後は経営層はクバネティスと言ってくるはずなので、少なくとも日本国内では、く・・くばねてぃす・・と呼ぶことにしようと思います。
Kubernetesはまだ成功していない
国内のメディア記事を読む限り、結構たくさんのワークロードがKuberenetesで動くようになってきたように思います。特に大量のコンテナで分散処理する必要があるものや、デプロイを盛んに行うような、大手のWEBサービス系は「私のサービスはKubernetesで動いてます!」と盛んに発表しています。
サイボウズでは2018年にインフラ刷新プロジェクトを立ち上げ、1000台規模の社内インフラを刷新する取り組みを行っている。もともとどのような状況で、現在は何に取り組んでいるのか。
LINE連携のチャネル開発および関連するアプリケーション開発の要件に対応する開発基盤としてOracle Container をEngine for Kubernetesを導入した。これらを活用し、引っ越しにおけるガス・電気の手続きなどのウェブ受付に誘導するチャットボットサービスの構築を開始している。
セッション「Kubernetesで実現したYahoo! JAPANの次世代開発環境 ~100以上のクラスタを少人数で運用する秘訣~」では、サービス開発を支える社内KaaS(Kubernetes as a Service)を解説。
KaaSを作った側である、ゼットラボ株式会社の稲津和磨氏と、Yahoo! JAPAN側であるヤフー株式会社 プラットフォーム開発本部の勝田広樹氏が、それぞれの立場から語った。なお、ゼットラボはヤフー株式会社の100%子会社で、インフラ基盤の開発および技術研究をしている。
Kubernetesが動いた事例がたくさん出てくると市場が盛り上がるというものですが、このKubernetes。少なくとも私の身の回りでもうオンプレやモノリシック構成をかき消すほど売れに売れている・・ことは少なくともありません。未だに、仮想サーバーを立てて、セットアップして、という仕事は減る様子がありません。Kubernetesを使う場所と言えば大企業でITを内製化でき、かつ大規模アクセスを捌かなければいけないような事例ばかりが目立つように思います。Kuberenetesのフィットする分野が現段階ではすごく狭いように思われます。
私がKubernetesに触れて思った感想です。
・操作が難しい。一連のコマンドを学習するだけでもかなりのコストがかかる。感覚的に操作することができない。
・Infrastructure as Codeのビジョンのもと、構成ファイルが全てYAMLファイルに残り再実行すると再現できるのは素晴らしい。ただしその構成ファイルの書き方について熟練するためにはまたかなりのコストを有する。
・日々進化する。数か月ごとに新しいバージョンが出る。したがって過去の運用でありがちな、バージョンを固定して安定させるというやり方がなかなか難しい。一方でOSは一つのメジャーバージョンを長く使い続けられる。
・Kuberenetesがインフラを自動管理する仕組みは感動的だが、逆に何をやっているかがわかりにくい。問題が起こった時の切り分けに高度な知識が必要となる。再起動すればいい、というような安易なトラブルシュートができない。基盤(コンピュートノード)のリソースがどれぐらい消費されていて、次に何をすればいいのか、など運用周りのツールがまだまだ発展途上である。
結論として、仕組み自体は素晴らしいものです。また将来性も十分にあります。クラウドサービスの種類や、場所(クラウド上なのか、エッジなのか)に関わらず動かせること。コンテナを動かすための共通基盤ソフトウェアとして有望というのは間違いありません。
ただ、いくら素晴らしい技術も性能も、「難しいことをやるために、難しい操作が必要なソフトウェア」では普及しません。一部の優れた技術者のみしか使用できないのであれば「成功した」というソフトウェアにはなれないと思います。
Webサーバーで成功したapache HTTP Server、データベースではPostgreSQLやMySQL、OSではCentOSやUbuntuなど、オープンソースの世界で成功したソフトウェアは、導入やメンテナンスが至極簡単です。これらは「難しいことを、簡単な操作でできるソフトウェア」です。使うこと、導入すること、運用することに難しい知識が要りません。その上、深く知ろうと思えばたくさんの機能がありそうやって、利用できる技術者を増やしていったのです。
今月、仮想化技術で有名なVMware社がKuberenetesをvSphere上でサポートする発表を行いましたけれども、こちらには期待しています。VMware技術者はたくさんいるので、その延長上でKuberenetesが使えるような仕掛けを作っていただけると普及にはずみがつくのではないか、と思っています。
Linuxのような存在、という鬼門
これまで、いくつものソフトウェアが「Linuxのような存在に」という言葉を残してきました。
数年前から、例えばLinux Foundationエグゼクティブディレクターのジム・ゼムリン(Jim Zemlin)氏などが、Kubernetesを「クラウドにおけるLinux」だと形容してきた。これは主に、クラウドネイティブな世界における存在の大きさや重要性を、Linuxに例えた表現だった。だがアニズィック氏は、存在の重要性だけでなく、クラウドネイティブな世界における技術的な位置付け、役割についても、Linuxと同様だと話す。
例えば、OpenStackがLinuxに例えられていたのを覚えています。
「OpenStackはクラウドのLinuxのようなもの」と、NECで長年、Linuxをはじめとしたオープンソースソフトウェアに関わり、2011年からOpenStack Foundationでも活動している柴田次一氏は話す。LinuxとOpenStackのプロジェクトの成り立ちや活動の仕方には違いも多い。だが、ITの世界に与えるインパクトという点では、重要な共通項があるという。
しかし、OpenStackは2015年ごろが最も盛り上がったように記憶していますし、一部の大手が利用するにとどまっているように思います。これでは、Linuxとは呼べません。
個人的には、やはりOpenStackを扱うためにはそれなりの技術が必要で、いざ問題が起こった時にVMware等のようにトラブルシュートすることが難しい、ということが挙げられると思っています。
OpenStackは運用が難しいことで有名だ。それが、人気が伸びない理由の1つになっている。Walmartを含めOpenStackの運用に成功したとする企業もある。ただ、そうした企業もOpenStackの構築と保守を担当するエンジニアを雇うことになった。Walmartのような規模と名声を誇る企業から見放されたら、OpenStackが衰亡の一途をたどるのは確実だが、まだそのような事態にはならないようだ。Walmartの広報担当者によると、同社はOpenStackを引き続き利用するという。
とくに日本企業は情シスが手薄なので、仮に高度なOpenStack技術にて構築した社内システム基盤を内製してしまったらかえって危険です。大手クラウドなら担当者が変わっても理解可能。オンプレでもVMwareなら何とかなる。でもOpenStackは・・。
Kubernetesの位置も2015年あたりのOpenStackの状況と似通っていると思います。ここから「成功」までたどり着くためには、あまりスキルの無い人でも導入して使うことのできるインターフェースこそ重要になると思います。
そうでないと、一部の大手企業か、クラウドサービス上の1サービスでとどまってしまう可能性すらあると思います。
そうとはならないよう、早く、使い勝手の良い決定版のようなKubernetesが手元に届くことを願っています。