k8sの学習|AWS学習のインターバル

今年の秋から制作予定のアプリのインフラ環境について、Kubernetesを検討することにしたので、本を2冊ほど勉強してみた。1冊は初心者向けの本ともう1冊は、経験者向けの本を読んでみた。

Kubernetesを学んだ所感

Dockerは実際に開発実務にも使っているので、どういうものかはイメージが湧いていたし、学習した結果も自分が持っているイメージとしては特に相違なかった。だけど、Kubernetesは想像以上に複雑で難しさがあるような気がした。これも複数のサーバーデバイスを跨いで管理するためのツールだからということがあると思う。マイクロサービスにしても、k8sにしても、デバイスを跨いでモノリスではなくなると、理解が難しくなるし、自分自身経験が圧倒的に足りないとそう感じた。

Twitterなんかで投稿を読んでいると、実際にk8s(Kubernetesのネットスラング)を用いてインフラを展開して、IaCとしてTerraformで管理しているSaaSが東京にいくらか存在しているような雰囲気はあるので、メインストリームの技術の一つではあると思うが、自分自身の職務上、アーキテクトやマネジャーとして動くことが多いので、SREやDevOps的な運用に携わる業務者として作業端末に張り付くことも難しいので、真剣にインフラが得意なメンバーを1名確保しないとまずいと思った。

書籍の簡単な紹介

Docker&Kubeternetesのきほんのきほん

Docker&Kubernetesのきほんのきほんは、内容はあまり濃くなかったけど、初心者でも理解できるように図解多めで解説されており、確かにそうだよねという感覚で読了することができた。

Dockerを使ったことがない方にとっては良い書籍だと思うので、一度学んでみると良いと思う。Dockerのことが理解でき、実務で使えるようになると思う。Laravel SailのようにDockerをバックエンドに使ってラッピングしているようなサービスもあるくらいなので、Dockerはシステム開発の世界からは、まだ当分はなくならないと思う。

それでも、ウェブ制作の世界には不要だと思う。ウェブ制作のレベル感では、XAMPPやMAMP、LOCALなどを使った方が楽に制作ができるし、それ以上のものは求められることがないと思うからだ。JavaScript(Node.js)のバージョンを合わせるなどの要望が出てくれば利用価値は高くなるけど、環境を作る負荷が高いので、慣れていない方に向けて新規に環境を作ってもらうのは色々と無理があると思う。

上記の書籍は非常にわかりやすく噛砕いて説明をしてくれてはいるけれど、Docker自体の学習負荷は低くはないと思うし、使い方を理解しないといけない分、利用負荷があるため、そう簡単には使いこなせない気がしている。メンバー全員のITリテラシがある程度担保されないと使わない方が良いと思うな。

Kubernetesの知識地図

Kubernetesの知識地図は、Docker&Kubernetesのきほんのきほんとはガラッと変わって、Kubernetesに特化している本だし、ある程度運用経験がある方向けに執筆されている内容だった。実際の運用現場でどのようなことが考えられているか、どのような設定があるのかなど、説明があったけど、Kubernetesの機能の説明というよりは、もう少し運用寄りの内容だったように思う。

私にとっても非常に難しい内容でイメージがわかなかったので、今回は全体をざっと目を通すだけにして、どのようなポイントが存在するのかを認識する程度にとどめた。時間をかけて理解を深めるための精読をすれば、もう少しイメージを膨らませることもできたかと思うけど、私はアーキテクトやマネジメントが自分の本分なので、運用に関することは、ざっと理解する程度にとどめようと思った。実際に秋からの製品開発でk8sを使うことになったら、再度読み返してみたいとは思うけど、今はその時ではないな。