まったくキャッチアップできていなかったので大変勉強になった。
章立ては以下のとおり。
- 第一章:チーム開発とは
- 第二章:チーム開発で起きる問題
- 第三章:バージョン管理
- 第四章:チケット管理
- 第五章:CI(継続的インテグレーション)
- 第六章:デプロイの自動化(継続的デリバリー)
- 第七章:リグレッションテスト
第二章のチーム開発で起きる問題のところは、私は自分一人でしか開発していないのにも関わらず、当てはまりすぎて胸が痛かった。
バージョン管理やチケット管理は不完全ながらも導入しているのだけど、そもそもテストスイーツを使ったテスト環境とテストの実践を行っていないのでCIはまったくもって未導入。必要性は頭ではわかっているのだけど、手が全然追いついていない(途方にくれている)。デプロイの自動化についてはまったく話題にキャッチアップできていなかった。昨年度末に文献調査していて「継続的デリバリー」という用語を知っただけ。
なので、最近ホッテントリーにあがっているChefやDockerなどはデプロイの自動化に関係するツールだろうなぁと思いつつ、まったく何のことやらわかっていなかった(なので、それらのエントリーにも目を通していなかった)。
今回、第六章:デプロイの自動化(継続的デリバリー)を読んでだいぶ整理された。p. 215の図6.2を転載。
デプロイの自動化のレイヤー | 何をするのか | 代表的なツール |
Orchestration | アプリケーションサービスのデプロイ自動化 | Capistrano, Fabric |
Configuration | システム設定(ミドルウェアのデプロイ自動化) | Puppet, Boxen, Chef |
Bootstrapping | クラウドまたはVMイメージの起動、OSのインストール | Vagrant, Kickstart, AWS(EC2), Cobbler, VMware |
- Orchestration: ソースコードのデプロイやリリースに関わるサーバの操作などを自動化するツール
- Configuration: サーバやミドルウェアの設定を自動化するツール
- Bootstrapping: サーバOSの設定や仮想マシンによるサーバ立ち上げの自動化に関するツール
読んだ内容を自分の仕事環境に生かせるかどうかは別として、非常に勉強になった。