@hihihiroroのLog

ダラダラと。本ブログは、個人の意見であり、所属会社とは関係がありません。

「Dockerコンテナ開発・環境構築の基本」を読んだ

本屋に久しぶりに行った時に新刊として並んでいたので手にとった本。
章立ては以下。

第1章 コンテナの世界に飛び込む前に
第2章 コンテナアプリケーション開発に必要なソフトウェア
第3章 コンテナアプリケーション開発のライフサイクル Build・Ship・Run
第4章 コンテナオーケストレーション
第5章 Kubernetes でコンテナアプリケーションを動かすまで
第6章 ローカル開発の準備
第7章 コンテナアプリケーション開発におけるCI/CD

1章ではコンテナ開発が必要とされた理由、既存の仮想化技術とコンテナ技術の違い、コンテナアプリケーション開発スタイルについて書かれている。2章ではコンテナランタイムの一つであるDocker のアーキテクチャ説明と環境セットアップ手順が紹介されている。ここまででコンテナを使うことの良さとコンテナランタイムについての理解をすることができます。

3章ではコンテナアプリケーションのイメージビルド、イメージレジストリへのプッシュ、コンテナ実行、またコンテナを使う際のデータ共有方法、ネットワークについて実例も含めながらの説明がされている。この章まででシングルホストでのコンテナアプリケーションの作成、実行についての理解を深めることができた。

4章、5章ではマルチホスト上でコンテナアプリケーションを実行するためのオーケストレーションデファクトスタンダードになっているKubernetes についての説明、その後GKE 上にkubectl コマンドを使いながらアプリケーションを動かすことを試すことができる。アーキテクチャの説明や、アプリケーションを順番に実行していく説明の際に絵が書かれていて理解の手助けにとてもなった。kubectl で順番に作っていくだけではなくHelm を使ってパッケージからアプリケーションの起動を試すこともできて面白かった。

6章はローカル開発環境の準備の仕方について説明されている。
ローカルでアプリケーションを開発、Skaffold を用いてイメージビルド、プッシュ、GKE クラスタへのデプロイを行う方法が説明されている。ローカルで開発をしたアプリケーションをGKE クラスタにデプロイできるのはとても便利だった。ただ、手動で作業をすることはしたくないのでCI/CD をちゃんと行いたいなと思ったところの7章。

7章ではCO/CD 環境を構築して試す章になっている。環境を構築する前に、継続的インテグレーションと継続的デリバリーについての説明がされている。また、最近自分の中で分かっていなくて気になっているCIOps とGitOps の説明がされていてとてもおもしろかった。ここでも絵が多用されイメージが湧きやすかった。最近ブログでも話が盛り上がっていたのでとても気になっている事柄の一つである。自分の中の理解をそのうち書き出しておこうと思った。この章については自分で試していないので、後日自分の環境で試してみようと思った。

まとめ

  • 久々にDocker/Kubernetes の新刊を読んで頭の中の整理を行った
  • 絵も多かったし順番に実行することが多かった気がするので試すことが多くて楽しかった
  • コンテナに限ってないが、CIOps とGitOps の話を読めて面白かった