_・)Keep Smiling

モソモソと日々の雑感を書き溜めるというか書き殴るというか書き捨てるというか

_・)選択肢が多いことは幸せだよなー

この記事は(なぜか)『Rookと仲間たち、クラウドネイティブなストレージの Advent Calendar 2020』の12日目の記事です。

はじめに

約3年ぶりという久々のBlog投稿なんですが、先日開催されたRancher Day 2020 を視聴中に、Twitterにて

となにげなくツイートしたところ、うつぼさんから、

なんていう無茶ぶりを受けたので、久々のAdvent Calendarに参加と相成った訳です。

先に言っておきますが、Rook/Cephの話は今回出てきませんので悪しからず。本当にこれでいいのか・・・?

Qiita管理のAdvent Calendarなのに、バリバリにエモくてポエム的な内容となってしまいそうで既にゾクゾクしているわけですが、それはさておき上のツイートの補足をしていきたいと思います。

大きくわけて2つ、このツイートでは触れている訳ですが、端的に書くとこんな感じになります。

  1. K8sクラスター、どこで動かす?
  2. 永続データ、どこに置く?

まーよくある話題といえばよくある話題ですが、結局のところそんなんケースバイケースで、何が一番いい・・・なんて簡単な話ではないわけです。

ただ、こういう話で盛り上がってくると、「コレがベスト!」みたいにあたかも唯一無二の正解があることにしたがる動きが目につくことがあります。すぐオワコン!とか叫ぶ人達とか。

そういう人達もきっと確固たる信念のもとに発言されているに違いないのでしょう。知らんけど。しかし、私自身は割と違和感を感じざるを得ないことも少なくない訳です。

この記事を読まれている方(いるんかな・・・)の多くは、技術を愛し技術に愛されたエンジニアの方がほとんどだと思うんですが、いろんな面白い技術がせっかくあるんですし、簡単に排除しないで横に並べてみて冷静かつ論理的に「何が最適なのか?」ってことを考えた上で技術選択できるといいんだろーなーなんて思ったりします。

「あえてK8sを選択しなかった」みたいな話をちゃんと聞いたりすると面白いよね?

まぁ、実際にはいろんなシガラミがあってそうそう思い通りもいかないこともありますが、矜持として・・・ですかね。

閑話休題。話を元に戻しましょう。

K8sクラスター、どこで動かす?

まず1つめの話題ですが、ここでの文脈としては「Public Cloudベンダーなどが提供するManagedなKubernetesサービス」を使うのか「オンプレミスなサーバまたはPrivate Cloudなどの上にKubernetesクラスターを自社で構築するのか」の比較として話をしています。

Twitterの文字数制限もあるので簡単にしか書いて居ませんが、実際には考慮すべきところはより多岐に及びます。

機能拡張性だけではなく、既存システムとの連携性、運用性、セキュリティ、コストなどなど、考えていくとキリがありません。

一つ一つの要件をつぶさにみていくと、オンプレミスでやりたいケースもあれば、マネージドで普段使っているAWSがいい、いやいやAzureのサービスと連携させたい・・・等と、どれか1つに決められないようなケースだってあるかもしれません。

特にプロジェクト毎に自由に基盤選定ができないような会社さんの場合(共通基盤とかー標準化とかー)、このへんの決定にはかなり苦労されると思います。

じゃあ、どっちがええねんって話になってしまいそうですが、これぞまさに「どっちがいい」という話ではなく「どっちもあっていいのかもよ?」ってことかもしれません。

実際のところ、このTweetもRancher Labs社のオンラインカンファレンスを視聴していた時のものですが、Rancherという製品自体、当初から「あらゆる場所でKubernetesクラスターを動かすぜ」的なものを標榜していたりします。

クラウドの上でもオンプレでも、様々な環境でのK8sクラスターを取りまとめて管理していきまっしょいってノリですね。

ここ最近に至っては、このような考え方に基づく製品やサービスはもはや主流となってきたとも言えるでしょう。パブリックなクラウド上でも、オンプレ上でも、どこでも動かせるし、ちゃんと連携できる。それが実現出来る環境がほぼほぼ整ってきたとも言えるかなーという感触があります(主流Public Cloudベンダーもオンプレ連携のソリューションが整ってきましたねー)。

永続データ、どこに置く?

さて、せっかくRookのAdvent Calendarなんですから、ちょっとくらいストレージっぽい話もねじ込んでおきましょう。多分、うつぼさんはこっちの事を書いてって思っていると思うし。

件のTweetの内容ですが、クラウドネイティブ時代が到来した(よね?)ことで、様々な企業が自社の製品やサービスの差別化においてテクノロジーを駆使することが皆さんにも感じられていることと思います。

実際には、ソフトウェアが柔軟かつ迅速に開発され続けることでこの変化がおきていくと思いますが、ソフトウェアが差別化の主役となるとそれに付随してデータもまた重要な要素となっていきます。

これも今更いうことでもないですが、データこそが重要な企業の資産であり、もっと大げさな言い方をすれば生命線とも言えるものとなるでしょう。

そんな大事なものを、どこでどう保管し、運用管理し、かつ活用していくのか。正しく判断していかねばなりませんが、もちろん簡単ではありません。

マネージドなK8sサービスの場合

現在は、オンプレ向けのソリューションも出てきていますが、ここではあくまでもPublic Cloud上でのマネージドK8sサービスを考えます。

このケースでは割とシンプルで、それぞれのPublic Cloudが持つStorageソリューションやDBソリューションを組みあわせることがほとんどかなーと思います。

もちろん、敢えてSDSなものをPublic Cloud上に展開して利用することもあるかもしれませんが、比率としては大きくないでしょうね。

ここで気にしないといけないのは、データを一旦預けてしまったら、簡単には移動できないだろう、ということですね。

コスト面が気になる人もいるかも知れませんが、それはオンプレでシステムもってもどうせ掛かります。

大事なポイントは、その預け先のサービスになにかあった場合、自社のビジネスになにか大きな打撃が生じるかも知れないということです。

障害とかの話だったらオンプレでも話は似たようなものなのでまだいいですが、サービスの仕様変更や値上げ、さらにはサービスそのもののシャットダウンなど、自社だけではどうにもならない要因があることのリスクを理解して利用する必要があるでしょう。
ほら、柱の人も「生殺与奪の権を他人に握らせるな!!」って仰ってますしね。

さきほどの生命線と言えるデータを預けるという、下手したらベンダーロックインになりかねない事態を、きちんと冷静に見極めて、利用するかどうかを決定すべきポイントなのかなと思います。
もちろんそのリスクを飲み込めると判断した場合は、メリットも大きいわけですから利用することには何ら問題はありません。

ようは考えた上での判断だよね?ってことです。

オンプレなK8sクラスターの場合

そりゃーもちろんRookでしょ!!!

とも言い切れないよなーってのはおそらく皆さんも感じているところなんじゃないかと思います。

OSSとともに歩む覚悟のある強い企業であれば、商用RookでもOSSでのROOKでも(またはその他のCloudNativeなSDSソリューションでも)、お好きなものを使っていけばよいでしょう。

色々と大変な部分はあるとは思いますが、その反面、自社のサービスに最適化されたストレージサービスを構成できるなどメリットも大きいはずです。

しかし、そのような技術的に強い企業を目指しても、すぐには実現出来ないというケースも多いとは思います。

商用製品の場合ならサポートもあるし大丈夫!みたいなノリもたまに見かけるのですが、OSSベースの製品で特にまだまだ目新しいものの場合はBUGも少なくありません。

最低でも運用する導入企業側が、そのOSSの基本的な知識を持ち合わせてないと、いずれ地獄がやってきそうだな・・・と思うこともしばしばです。

例えばですが、Rook/Cephを使う場合は、Rook(もちろんKubernetesも)だけではなく、Cephに付いての運用知見だって必要となるでしょう。

既に、Cephの運用経験があればいけるかもしれませんが、K8sもRookもCephもはじめてです!みたいな場合、よほどの覚悟またはゆとりあるリソース、或いはその両方が必要になると思います。

ここでもやはり求められるのは、冷静な判断です。

なにもカードはRook/Cephだけではないのですから、ほかの選択肢もきちんとならべて、プロジェクトの規模やリソース、そして要件を考慮しながら、何が最適化を考えていけると良いでしょう。

オンプレの場合は選択肢が多くなりますので、広い視野が必要になってくると思います。

ベンダーにいる私(HPEの人だヨ)がいうのもアレですが、ベンダーのいうことだけを鵜呑みにしないで、一緒に考えながら判断をしていけると理想的なのではないでしょうか。

おわりに

なんか、取り留めの無いの話をだらだらと長く書いてしまいましたが、果たして読んでくれる人はいたんでしょうか。

これもみんなうつぼさんの無茶ぶりのせいですが、それはそれとしてRook Meetupはいつも楽しいので、皆さんも参加してみては無茶ぶりを受けてみてください。

最後になりますが、結局のところ「きちんと考えようね」ってことしか言ってないような気がしてるんですが、まぁ、それも本音っちゃ本音なんですが、もうひとついうのであれば、様々なケースに併せて最適化していけるような「選択肢」が沢山ある状況は、悩ましくもありますが、幸せなことなのかなーと思ったりもしてます。

と、ここまで書いててタイトルどうしよっかなと悩み続けていたのですが、ちょうどいいかなと思い上のものに決めさせて頂きました。たいしたもんでもないけれども。

以上、つかまんの日記なのか雑記なのかよくわからないアレでした。つぎはもうちょっと技術っぽい話を書きます・・・たぶん。