Dockerの復習にも最適「コンテナ・ベース・オーケストレーション」を読みました

こちらの本を読みました。

読書前の知識

何かを開発する時、Dockerは無くてはならない存在。

オーケストレーションという意味ではDocker Swarm(Swarmモード)で小さなクラスタ構築してたことがある程度。

目的

① コンテナ周りの知識の整理

1年くらい前から開発でDocker使うのが当たり前になり、Docker Swarmも使ってきました。

ただ、実際に使うことにばかり目を向けていました。場当たり的に得てきた断片的な知識を体系的整理したいと思って本を探していました。

② オーケストレーションって何?

この言葉、正直わかっているようで、わかってない気がしていました。しっかり整理したい。

③ Kubernetesを知りたい

前述の通りSwarm使っていたのですが、Swarmモードがちょうど出てきたところで、簡単に使い始められるという理由で使い始めました。

とても便利だと思って使っていたのですが、GKEもEKSもAKSも出てきた今、SwarmだけでなくKubernetesも知っておきたい。できれば触りたいからハンズオン的なのしたい。

書籍選び

ここ数年のコンテナ周りは変化が激しいので、できるだけ新しい本、かつKubernetesの記載がある本を探していました。サンプルをダウンロードしてみて はじめに目次 読んで決定しました。

  • 以下 はじめに より抜粋

おもに次のトピックをカバーする方針としました

■ DockerとKubernetesの基本的な知識を説明し、理解を深めるために必要なチュートリアルを提供する

■ DockerベースでのCaaSサービスやKubernetesベースでのマネージドサービスを提供する事業者の観点からユーザーに伝えたい情報を提供する

■ Kubernetesベースのコンテナオーケストレーションを自社で設計/構築/運用する際に必要な情報を提供する

Kubernetesベースのマネージドサービスを提供している事業者観点から、ユーザーに伝えたい、というのがピッタリすぎでした。

  • 目次
第1章 コンテナ技術とオーケストレーションを取りまく動向
第2章 Docker コンテナの基礎とオーケストレーション
第3章 CaaS (Container as as Service)
第4章 Kubernetes によるコンテナオーケストレーション概要
第5章 GKE (Google Kubernetes Engine)
第6章 Rancher
第7章 Kubernetes on IBM Cloud Container Service
第8章 Openshift Networking & Monitoring
第9章 Openshift for Developers

読みました

知識の整理はできたか?

第1章 コンテナ管理技術の普及とオーケストレーションを取りまく動向 にはインターネットが始まった時代から、仮想化、ChefやAnsibleといった自動化といった流れについて、それぞの技術にどういう課題があり、その解決策としてどういった技術が出てきたかを、順に説明してくれています。

何故コンテナ技術に需要が出てきたのか、そこからオーケストレーションに至り、その中でOCIやCNCFが出てきて、今Kubernetesがデファクトになりつつある理由まで、一連の流れで説明されています。こういった技術史的なものから得られる背景となる知識は、技術応用するときのヒントにもなりますし、個人的には単純に読み物としても凄い好きです。

オーケストレーションはわかったか?

以下の引用を始めとして様々な角度から説明されていました。コンテナに限った話では無いのですね。「分散した環境でリソースやアプリケーションの実行を管理すること」と自分なりに理解しました。

オーケストレーションには厳密な定義はありませんが、複数台の物理/仮想サーバー環境上のリソースを使い、アプリケーションを実行するために必要な技術を表す言葉として用いられます。

その上で、第3章 CaaS (Container as as Service) でKubernetesをサービスとして提供している事業者側での課題などが書かれていたり、 第5章 GKE (Google Kubernetes Engine) でGKEを見て触ってしていると、前よりも理解が深まったと思います。

GKEがある、GCPは初年度に無料クレジット枠があるので、結構大きな検証もあまりお金を気にせずにできて良いですよ。 GCP の無料枠 - 無料の長期トライアル、Always Free  |  Google Cloud

Kubernatesは?

第4章 Kubernetes によるコンテナオーケストレーション概要 ではKubernetesの用語やアーキテクチャの詳しい説明の後に、実際にコマンドで実行できるチュートリアルもありました。 Minikube のチュートリアルもがあったり、第5章 GKE (Google Kubernetes Engine)ではGKEのチュートリアルもあって実際に触れたのでアーキテクチャや用語の理解も進みました。

Dockerの復習にも良かった

第2章 Docker コンテナの基礎とオーケストレーション では、わかりやすい絵を挿し入れながらDockerの説明がされています。最初Docker始めた時にこの本読んでればと思うほどわかりやすかったです。ポイントを絞ってあって説明が長すぎないのも良かった。自分の場合は良い復習になりました。

まとめ

コンテナ・ベース・オーケストレーションという題名の通り、Kubernatesを始めとした様々なオーケストレーションツールやサービスが書かれています。ポイント絞ってあって範囲も深さも、わかりやすさもとても満足でした。たぶん何度も読み返すことになりそう。

Docker単独でもわかりやすいので、これから初めてDocker触る人にもオススメかもしれません。

大規模設計の話や、OpenShiftの詳細な内容とか、既にある程度詳しい人が読めば違った発見もあるのかも。