チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド

まったくキャッチアップできていなかったので大変勉強になった。

章立ては以下のとおり。

  • 第一章:チーム開発とは
  • 第二章:チーム開発で起きる問題
  • 第三章:バージョン管理
  • 第四章:チケット管理
  • 第五章:CI(継続的インテグレーション
  • 第六章:デプロイの自動化(継続的デリバリー)
  • 第七章:リグレッションテスト

第二章のチーム開発で起きる問題のところは、私は自分一人でしか開発していないのにも関わらず、当てはまりすぎて胸が痛かった。

バージョン管理やチケット管理は不完全ながらも導入しているのだけど、そもそもテストスイーツを使ったテスト環境とテストの実践を行っていないのでCIはまったくもって未導入。必要性は頭ではわかっているのだけど、手が全然追いついていない(途方にくれている)。デプロイの自動化についてはまったく話題にキャッチアップできていなかった。昨年度末に文献調査していて「継続的デリバリー」という用語を知っただけ。

なので、最近ホッテントリーにあがっているChefやDockerなどはデプロイの自動化に関係するツールだろうなぁと思いつつ、まったく何のことやらわかっていなかった(なので、それらのエントリーにも目を通していなかった)。

今回、第六章:デプロイの自動化(継続的デリバリー)を読んでだいぶ整理された。p. 215の図6.2を転載。

デプロイの自動化のレイヤー 何をするのか 代表的なツール
Orchestration アプリケーションサービスのデプロイ自動化 Capistrano, Fabric
Configuration システム設定(ミドルウェアのデプロイ自動化) Puppet, Boxen, Chef
Bootstrapping クラウドまたはVMイメージの起動、OSのインストール Vagrant, Kickstart, AWS(EC2), Cobbler, VMware

読んだ内容を自分の仕事環境に生かせるかどうかは別として、非常に勉強になった。