Member-only story
なぜみんながKubernetesを使いたがるのか?(後半)
Kubernetesを使うメリットなどをご紹介した記事です。長いので前半と後半に分けて投稿いたします。今回は後半です。
Kubernetesはサーバーレス?
Kubernetesはサーバーレスなのでしょうか?Kubernetesとサーバーレスは比較対象としては全く異なる用語です。Kubernetesがツールであるのに対し、サーバーレスはどちらかというと哲学です。ちょっとだけ、当初の目標に戻ります。OSへのディペンデンシーやメンテナンスの手間を減らす必要があると述べましたが、それがサーバーレスです。
そこで質問ですが、Kubernetesはこの目標を達成しているのでしょうか?端的に答えると、「はい、達成しています」となります。もう少し具体的に説明します。
サーバーレスの厳密な意味は、誰がこのコードを実行しているのかを聞かずに何かをデプロイすることであり、たとえKubernetesの抽象化のせいで複雑さが目立たなくなっていたとしても、サーバーの部分については知っておかなければならないことがあります。例えば、すべてのコンテナのOSへのディペンデンシーが残っていますよね。内部で実行されているKubernetesの特定のバージョンからのディペンデンシーがあります。つまり、理論的にはKubernetesはサーバーレスではないということです。
とりあえず、サーバーレスのソリューションを見てみましょう。
Herokuはコンテナに依存しています。そこにコンテナをデプロイすることもできます。ラムダ関数のほとんどは、内部にコンテナを持っています。
クラウド版のKubernetesをサーバーレスではないとみなすことができるのには理由があります。それは、コンテナをベースにしており、オペレーティングシステムに依存しているのに対し、同じことをするHerokuやラムダサービスはサーバーレスとみなされるからです。
だからこそ、厳密な定義がその逆になっていても、私はKubernetesをサーバーレスソリューションだと考えています。現実世界は黒でも白でもなく、OSからの抽象化と独立性、クラウド版Kubernetesが与えてくれるリソースのレベルで十分だと思います。
あまり正確なことは言いたくはありません。ラベル(サーバーレスかどうか)に関係なく、Kubernetesは簡単にクラウド化でき、sysadminのコスト、インフラのコストと*リーチを削減し、品質を向上させるには良い方法だと思います。なので、ラベルはあまり気にせず、自分に役立つものを選んでください。
Kubernetesのメリット
Kubernetesは、従来の*仮想マシンのshieldを安全に終了し、クラウドに行くための素晴らしいプラットフォームです。それはダイナミックで、sysadminのコストを削減し、他の方法では難しい品質のレベルにサービスをプッシュします。ネットワークやデータ保護のような多くの従来の問題は、Kubernetes自体の高度なコンフィグレーションで解決することができます。