継続的デリバリー
リリース感覚を短くするのが目的。デプロイ自動化とサーバー構築/運用を自動化すること。
デプロイの自動化
デプロイの自動化について
- すべてをバージョン管理する
- すべての環境を同じ方法で構築する
- リリース作業は自動化し事前に検証する
- 繰り返しテストする
デプロイメントパイプライン
アプリケーションのビルド/デプロイ/テスト/リリースのプロセスを自動化する実装をデプロイメントパイプラインと呼びます
誰でもデプロイが行えるようにすることが重要 リリース職人を作らない
プロビジョニング
プロビジョニングとは、サーバー構築、OS設定、ミドルウェアインストールの事です。これがそのまま継続的デリバリーの本質になります。
プロビジョニングツールチェーン
ブートストラッピング OSの設定や仮想マシンのサーバー構築を自動化する コンフィグレーション サーバーやミドルウェアの設定を自動化する オーケストレーション デプロイやリリースなどサーバー操作を自動化する
ブートストラッピング
サーバーマシン(OS等)の環境構築の自動化です。 ブートストラッピングツールとしてvagrantやdockerがあります。
コンフィグレーション
全て同じ方法でミドルウェア等を環境構築することです。 コンフィグレーションツールにはchef、serverspecがあります。
vagrant(docker)、chef、serverspecを組み合わせて実行するのが最も良い方法で、具体的にはVagrantfileにconfig.vm.provisionとしてchef、serverspecの実行コマンドを書きます。
オーケストレーション
繰り返しデプロイできるようにすることです。 オーケストレーションツールにはcapistranoやFabricがあります。
流れとしては、サーバー構築のべき等性のためにブートストラッピングとコンフィグレーションを行い、運用のためにオーケストレーションを行うというものです。