[コンテナ再入門]Ubuntu 18.04 で写経しつつ「Docker/Kubernetes 実践コンテナ開発入門」を完走した

なんやかんやハマりながらも、なんとかUbuntu18.04で写経しつつ「Docker/Kubernetes 実践コンテナ開発入門」を最後まで読み進めました。

Docker/Kubernetes 実践コンテナ開発入門

Docker/Kubernetes 実践コンテナ開発入門

本についての感想

Docker ~ Docker Compose の内容までは過去にも調べて使ってみたことがあったのですぐに理解できたし、Docker Swarmも初めて触ったけれど書籍の解説がわかりやすく概要をつかむことができた。しかし、5章以降 Kubernetes の内容に入ってからは初めての概念がたくさん出てきて読み進めるのに時間がかかってしまった。それでも、Kubernetes がDocker Swarmよりもさらに運用に有用な機能が多く実装されていることや、Helmなどの便利な周辺ツールがたくさんあること、Google Kubernetes Engine (GKE) がKubernetesを使うにあたってどのくらい便利なのか、などについて、順を追ってわかりやすく書かれていてとても勉強になった。ログの取り回しやCI/CDをどうするのが良いか、など運用上の疑問点についても現時点でのベストプラクティスがまとめられており、導入を進める立場の視点で助かる内容が多かった。 なかなかウェブ上の断片的な記事だけではここまで順を追ってコンテナ~コンテナオーケストレーションの流れや主要なツールの使い方を学ぶことは難しいので、個人的に非常にいいタイミングで良い本に出会えたと思う。

また、書籍内ではコラム内で軽く紹介されていただけだったが、Knative がとても面白そうなので別途調べていこうと思う。

Kubernetes についての所感

オートスケーリングやデプロイの仕組みが非常に洗練されていて、なるほど流行るのも納得、という感じだったが、よく言われるように学習コストは非常に高そうだなという感触を持った。今いるチームはアプリケーションのコードを書く開発者は多くいるが、サーバやネットワークを構築・運用したりシステム監視設計や運用設計をしたりする、いわゆるインフラ寄りのメンバーはほとんどいないし、運用しているアプリケーション自体もまだまだ規模が小さいので、kubernetes を導入したりそもそも開発環境からコンテナ化するメリットに対して導入コストがまだ大きすぎるかなという気がする*1。 なので、チームで導入するタイミングはまだしばらく待ちつつ、個人的には興味深い分野なのでコンテナやオーケストレーションツールの動向を追っていきたいな、という感じ。

*1:うちでは割とサーバーレス構成を採用しているが、これは運用のコスト削減のためなら開発のコスト増は飲めるようなメンバー構成なため