概要
今や当たり前に使われるようになったコンテナ技術ですが,実際の利用に裏打ちされたノウハウについては未だまとまった情報がないのが現状です。そんななか本書では,現場でDocker/Kubernetesを活用している読者に向けて,実践のための知識や事例の紹介を行います。まず第1部では,Docker/Kubernetesの歴史をひもときながらコンテナ技術の概要を復習します。続く第2部では,コンテナイメージの作り方や宣言的なシステム管理といった実践的な知識やそのために役立つツールを解説します。いずれもゼットラボのエンジニアによる濃い内容となっています。そして第3部では,freee,Wantedly,CyberAgent,サイボウズという有名企業におけるDocker/Kubernetes活用の舞台裏を,こちらも現場のエンジニアが紹介していきます。ここにしかないノウハウが満載の一冊です!
以下,『はじめに』より
2013年3月,Dockerがオープンソースとして公開されました。その翌年の2014年にはKubernetesも登場し,2019年現在では日々Redditなどの掲示板で話題に事欠きません。
コンテナ技術自体は以前より存在していましたが,Dockerによってこれらの技術が抽象化され,使いやすいコマンドになりました。そして,Docker Hubというイメージ共有サービスによってさらに敷居が下がり,広く普及しつつあります。Kubernetesは,これらコンテナを管理するためのソフトウェアで,システムの「望ましい状態を定義する」という宣言的設定の特徴を持っています。また,宣言した設定から現在の状態にズレが生じたら修正するというしくみによって,システムの自動修復や(機能ごとに疎結合になるしくみのため)拡張性といったメリットがあります。この拡張性の高さも高じて,今ではWebサービス基盤だけではなく,IoTや機械学習の分野にまで活用されています。
数年前までKubernetesには頻繁に大きな変更が入り最新版への追従に多大な労力が必要でしたが,現在ではメジャーなリソースの多くはGAを迎え,安定期に入っています。また,多くのクラウドサービスプロバイダがマネージドサービスを提供しているので,馴染みのプロバイダで試すことができます。Docker/Kubernetesを学ぶには,ベストなタイミングだと言えるでしょう。
本書の第1部と第2部は,2015年からKubernetesを使ったシステムを開発しているゼットラボのエンジニアがノウハウをまとめました。第1部では,今のDocker/Kubernetesが確立するまでのストーリーとともに概要を解説しています。Docker/Kubernetesに初めて触れる方や,歴史が気になる方はここから読むのがお勧めです。第2部では,「1日100回デプロイ」をテーマに,Kubernetesを使っている人でも見落としがちなポイントや開発に便利なツール群などのテクニックを詰め込んでいます。
第3部は各社の事例を挙げながら,Docker/Kubernetesを使ったシステム設計のノウハウを解説します。第1章はfreeeです。フィンテック企業でありながら,Kubernetesの利点を生かしつつセキュリティも担保するという挑戦的な内容です。Toilとの向き合い方など,SREやシステム設計者にもお勧めです。第2章ではウォンテッドリーのKubernetes導入・展開方法について紹介しています。導入時にありがちな問題とその対策も解説しているので,導入を検討している方にはとくに参考になるでしょう。第3章はCyberAgentによる数字から把握するKubernetesの活用例です。数ある機能をどこまで取り入れるかなど,状況に応じた利点・欠点の把握にお勧めです。最後の第4章は,サイボウズによるオンプレミス環境のKubernetes運用とその自動化の話です。オンプレミス環境で運用している方はもちろんのこと,マネージドサービスのしくみが気になる方も楽しめるでしょう。
本書は初めから読むと体系的な情報を得ることができますが,各章ごとに完結しているのでどこから読んでも問題ありません。それでは,お好きな章からお楽しみください。
こんな方におすすめ
- Dockerを使い始めるにあたり,どんなメリットがあるのかを知りたい方
- 実際にDocker/Kubernetesを使っていて,さらに効率的に活用したい方