SlideShare a Scribd company logo
『継続的デリバリー』読書会	
  
     第2章	
  
    構成管理	
    大崎的デリバリー	
  
     @kapara_c
2.1	
  導入	
  
      構成管理の定義	
•  プロジェクトに関連するあらゆる成果物とそれ
   らの間にある関係性が、保存され、検索され、
   一意に特定され、修正されるプロセスのこと
   である。	
  
2.1 導入	
  
       適切な構成管理とは	
•  あらゆる環境を再現できる	
  
 –  OS	
  
 –  パッチレベル	
  
 –  ネットワーク構成	
  
 –  ソフトウェアスタック	
  
 –  デプロイされるアプリケーションとその設定	
  
•  インクリメンタルな変更を行い、他の環境に対して簡
   単にデプロイできる	
  
2.1 導入	
  
      適切な構成管理とは	
•  変更点を容易に確認できる	
  
   また、誰がいつ変更を行ったかを追跡できる	
  
•  コンプライアンスの規約をすべて満たす	
  
•  チームの全員が必要な情報を取得し、変更すること
   ができる。	
  
 –  チーム間に壁を作って、サイクルタイムが長くなり、フィー
    ドバックが減ることになっていないか?	
  
2.2バージョン管理を使う	
•  バージョン管理システムを使う理由	
  
 –  ソフトウェアの特定のバージョンを構成しているものを知り
    たい	
  
 –  いつ、誰が、何のために、何を行ったのかを把握できる	
  
   •  チームが離れた場所、別の時間帯で作業しても協力できる
2.2.1 ひとつ残らずすべてバージョン
        管理に保存せよ	
•  ソースコード	
  
•  テスト、データベーススクリプト	
  
•  ビルド・デプロイメントスクリプト	
  
•  ドキュメント	
  
•  ライブラリ	
  
•  設定ファイル	
  
•  テスト環境や本番環境を再現するのに必要な情報	
  
	
  
アプリケーションのバイナリと実行環境を再現するのに必要な
すべてを保存する	
  
2.2.2 定期的にtrunkにチェックインせよ	

•  こまめにチェックインすることで、問題の解決を容易にするこ
   とができる	
  
•  機能毎にブランチを切る方法は、継続的インテグレーションと
   は相容れない	
  
  –    機能の統合が先延ばしになる	
  
  –    複数のブランチを作ると問題はより複雑になる	
  
  –    統合に関わる問題がマージの時にしか発見されない	
  
  –    マージツールも意味上の競合は解決してくれない	
  
•  チェックインの際にビルドを壊さないために	
  
  –  チェックインの前にコミットテストを一式実行する	
  
  –  変更をインクリメンタルに行う
2.2.3 意味のあるコミットメッセージを使え	

•  どんな変更をしたのかをきちんと説明するコミットメッセージ
   を使うことで、後々何時間というデバッグをしなくて済む	
  
•  よりよいメッセージ	
  
     –  1行目に要約を書く	
  
     –  以降の複数行にわたって詳細な説明を記述する	
  
•  コミットをプロジェクト管理ツールに紐付ける	
  
     –  紐付けができていないコミットが失敗するように	
  
2.3 依存関係の管理	
  
     2.3.1 外部ライブラリを管理する	
•  RubyGemsなどを使って特定のライブラリをダウン
   ロードできるようにする	
  
 –  リポジトリが肥大化しなくて済む	
  
•  社内の共通リポジトリに外部ライブラリのコピーをお
   いておく	
  
 –  新メンバーのスタートアップが楽になる	
  
•  どちらにしても、外部ライブラリの正確なバージョン
   を常に指定しなければならない	
  
2.3.2 コンポーネントを管理する	
•  一つのコンポーネントをビルドした場合に、依存関
   係のあるコンポーネントのみリビルドして欲しい	
  
•  しかし、現実にはそんなことができるツールはない	
  
•  ビルドエンジニアが自前で依存関係を管理する必要
   がある
2.4 ソフトウェアを管理する	
  
        2.4.1 設定と柔軟性	
•  ソースに対する安全装置はいろいろあるが、設定に
   対する安全装置はほとんどない	
  
•  設定を柔軟にしようとするせいで分析麻痺に陥る	
  
•  システムが複雑になってしまい、柔軟性の恩恵が失
   われてしまう	
  
•  スモークテストは設定によって起こる問題を和らげ
   てくれる	
  
2.4.2 設定の種類	
•  設定の種類にはいくつかある	
  
 –  ビルド時の設定	
  
 –  パッケージング時の設定	
  
 –  デプロイメント時の設定	
  
 –  起動時や実行時の設定	
  
•  ビルド時やパッケージング時の設定は悪い設定	
  
 –  あらゆる環境に同じバイナリをデプロイできるべき	
  
•  設定情報は可能な限り同じ手段で提供されるべき
2.4.3 アプリケーションの設定を管理する	
  
         設定にアクセスする	
•  ファイルシステム経由の管理	
  
 –  あらゆる言語でサポートされる	
  
 –  アプレットのようなものでは使えない	
  
•  Web経由で管理	
  
•  設定にアクセスする際は、インターフェイスのみ公開
   し、実装は隠蔽すること	
  
2.4.3 アプリケーションの設定を管理する	
  
          設定をモデリングする	
•  設定情報はタプルの集合でモデル化される	
  
•  設定情報は以下に依存する	
  
 –  アプリケーション	
  
 –  アプリケーションのバージョン	
  
 –  アプリケーションの実行環境	
  
2.4.3 アプリケーションの設定を管理する	
  
       システム設定をテストする	
•  外部サービスへの参照が適切であるかテストする	
  
 –  最低でもすべての外部サービスにpingを打つ程度は	
  
 –  依存しているサービスが一つでも動いてなければ落ちな
    ければならない	
  
•  アプリケーションがインストールされた後で、いくつ
   かスモークテストを行う	
  
 –  設定が正しいことに依存するテストをいくつか行う
2.4.4 アプリケーションをまたいで設定を
           管理する	
•    プロジェクトに関連する設定を一欄できるようにする	
  
•    可能であれば設定を自動生成するように	
  
•    もしくはWikiなどに集約させる	
  
•    動作しているアプリケーションの設定情報を監視シ
     ステムを通じて見ることができるように
2.4.5 アプリケーション構成管理の原則	

•  設定オプションはソースコードと同じレポジトリで管理する。た
   だし、値は別の場所で保存すること。	
  
•  設定は設定用のリポジトリで管理した値を常に使うこと	
  
•  アプリケーションやバージョン、デプロイ環境に応じて個別の
   値を提供できること	
  
•  設定オプションには明確な命名規約を用いよう	
  
•  設定情報はモジュール化しておこう	
  
•  DRY(don’t	
  repeat	
  yourself)原則を用いよう	
  
•  設定情報はシンプルに保とう	
  
•  設定はきちんとテストしよう
2.5 環境を管理する	
•  設定情報を管理する上でのアンチパターン	
  
 –  環境を手作業で構築し、設定ファイルを変更する	
  
•  こういった『職人芸』は生産性を大きく下げる	
  
•  完全に自動化されたプロセスで環境構築出来る必
   要がある
2.5.1 環境管理のためのツール	
•  Puppet	
  
   –  hIp://puppetlabs.com/	
  
•  CfEngine	
  
   –  hIp://cfengine.com/	
  
2.5.2 変更プロセスを管理する	
•  本番環境を変更できる人は限られた人でないといけ
   ない	
  
•  テスト環境は本番環境と同じように扱わなければな
   らない	
  
     –  管理、デプロイメント、設定が同じ仕組であればよい	
  
2.6 まとめ	
•  構成管理プロセスの徹底には、以下の要件が必須	
  
 –  本番システムをバージョン管理ツールからスクラッチで構築すること
    ができる	
  
 –  正しく動くとわかる以前のバージョンにロールバックできる	
  
 –  ステージングやテスト環境が本番と同じやり方でセットアップされてい
    る	
  
私的まとめ	
•  直接関係ないことが混じってるが、要はPuppetとか
   使って環境構築を自動化しましょうというお話	
  
•  定期的にtrunkに〜のくだりとかは、後の章でも同じ
   話がでてくるので省いていいんじゃ・・・

More Related Content

Viewers also liked

継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージYasutomo Arai
 
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学Takuma SHIRAISHI
 
Netty 入門 - 「Netty ベース」の何かに着手する前に
Netty 入門 - 「Netty ベース」の何かに着手する前にNetty 入門 - 「Netty ベース」の何かに着手する前に
Netty 入門 - 「Netty ベース」の何かに着手する前にTakuma SHIRAISHI
 
深層学習生き地獄
深層学習生き地獄深層学習生き地獄
深層学習生き地獄
Yusuke HIDESHIMA
 
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリーjenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリーJunya Suzuki
 

Viewers also liked (6)

継続的8章
継続的8章継続的8章
継続的8章
 
継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ
 
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
 
Netty 入門 - 「Netty ベース」の何かに着手する前に
Netty 入門 - 「Netty ベース」の何かに着手する前にNetty 入門 - 「Netty ベース」の何かに着手する前に
Netty 入門 - 「Netty ベース」の何かに着手する前に
 
深層学習生き地獄
深層学習生き地獄深層学習生き地獄
深層学習生き地獄
 
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリーjenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
 

Similar to 大崎的デリバリー第2章

テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1
Hiro Yoshioka
 
Continuous delivery chapter13
Continuous delivery chapter13Continuous delivery chapter13
Continuous delivery chapter13favril1
 
Continuous delivery 6
Continuous delivery 6Continuous delivery 6
Continuous delivery 6ShinyaOzawa
 
第2章アーキテクチャ
第2章アーキテクチャ第2章アーキテクチャ
第2章アーキテクチャ
Kenta Hattori
 
Amazon Ec2 S3実践セミナー 2009.07
Amazon Ec2 S3実践セミナー 2009.07Amazon Ec2 S3実践セミナー 2009.07
Amazon Ec2 S3実践セミナー 2009.07
HEARTBEATS Corporation.
 
Bringing Continuous Agile to Japan
Bringing Continuous Agile to JapanBringing Continuous Agile to Japan
Bringing Continuous Agile to Japan
Andy Singleton
 
QCon北京2015 sina jpool-微博平台自动化运维实践
QCon北京2015 sina jpool-微博平台自动化运维实践QCon北京2015 sina jpool-微博平台自动化运维实践
QCon北京2015 sina jpool-微博平台自动化运维实践
Weibo Corporation
 
Tech Ed 2009 Japan T3-309 Microsoft Business Productivity Online Services 技術概要
Tech Ed 2009 Japan T3-309 Microsoft Business Productivity Online Services 技術概要Tech Ed 2009 Japan T3-309 Microsoft Business Productivity Online Services 技術概要
Tech Ed 2009 Japan T3-309 Microsoft Business Productivity Online Services 技術概要
kumo2010
 
xDB Replication ブローシャー
xDB Replication ブローシャーxDB Replication ブローシャー
xDB Replication ブローシャーYuji Fujita
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
Daisuke Nishino
 
Terraformを活用した自動化デモ_F5-NGINX_Community-20200805
Terraformを活用した自動化デモ_F5-NGINX_Community-20200805Terraformを活用した自動化デモ_F5-NGINX_Community-20200805
Terraformを活用した自動化デモ_F5-NGINX_Community-20200805
shinyatsukasaki
 
20181120 HowtoFlow
20181120 HowtoFlow20181120 HowtoFlow
20181120 HowtoFlow
Tomoyuki Obi
 
Using docker infrastructure
Using docker infrastructureUsing docker infrastructure
Using docker infrastructure
Junya Niwa
 
VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011
Hiro Yoshioka
 
Continuous Integration Using Salesforce DX
Continuous Integration Using Salesforce DXContinuous Integration Using Salesforce DX
Continuous Integration Using Salesforce DX
Satoru Ishikawa
 
Azure Arc 概要
Azure Arc 概要Azure Arc 概要
Azure Arc 概要
Kazuki Takai
 
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Colin Charles
 

Similar to 大崎的デリバリー第2章 (20)

テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1
 
Continuous delivery chapter13
Continuous delivery chapter13Continuous delivery chapter13
Continuous delivery chapter13
 
Continuous delivery 6
Continuous delivery 6Continuous delivery 6
Continuous delivery 6
 
第2章アーキテクチャ
第2章アーキテクチャ第2章アーキテクチャ
第2章アーキテクチャ
 
Amazon Ec2 S3実践セミナー 2009.07
Amazon Ec2 S3実践セミナー 2009.07Amazon Ec2 S3実践セミナー 2009.07
Amazon Ec2 S3実践セミナー 2009.07
 
Citrix eco new
Citrix eco newCitrix eco new
Citrix eco new
 
Bringing Continuous Agile to Japan
Bringing Continuous Agile to JapanBringing Continuous Agile to Japan
Bringing Continuous Agile to Japan
 
QCon北京2015 sina jpool-微博平台自动化运维实践
QCon北京2015 sina jpool-微博平台自动化运维实践QCon北京2015 sina jpool-微博平台自动化运维实践
QCon北京2015 sina jpool-微博平台自动化运维实践
 
Tech Ed 2009 Japan T3-309 Microsoft Business Productivity Online Services 技術概要
Tech Ed 2009 Japan T3-309 Microsoft Business Productivity Online Services 技術概要Tech Ed 2009 Japan T3-309 Microsoft Business Productivity Online Services 技術概要
Tech Ed 2009 Japan T3-309 Microsoft Business Productivity Online Services 技術概要
 
20090328
2009032820090328
20090328
 
xDB Replication ブローシャー
xDB Replication ブローシャーxDB Replication ブローシャー
xDB Replication ブローシャー
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
 
Terraformを活用した自動化デモ_F5-NGINX_Community-20200805
Terraformを活用した自動化デモ_F5-NGINX_Community-20200805Terraformを活用した自動化デモ_F5-NGINX_Community-20200805
Terraformを活用した自動化デモ_F5-NGINX_Community-20200805
 
20181120 HowtoFlow
20181120 HowtoFlow20181120 HowtoFlow
20181120 HowtoFlow
 
Using docker infrastructure
Using docker infrastructureUsing docker infrastructure
Using docker infrastructure
 
VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011
 
Continuous Integration Using Salesforce DX
Continuous Integration Using Salesforce DXContinuous Integration Using Salesforce DX
Continuous Integration Using Salesforce DX
 
20060419
2006041920060419
20060419
 
Azure Arc 概要
Azure Arc 概要Azure Arc 概要
Azure Arc 概要
 
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
 

大崎的デリバリー第2章

  • 1. 『継続的デリバリー』読書会   第2章   構成管理 大崎的デリバリー   @kapara_c
  • 2. 2.1  導入   構成管理の定義 •  プロジェクトに関連するあらゆる成果物とそれ らの間にある関係性が、保存され、検索され、 一意に特定され、修正されるプロセスのこと である。  
  • 3. 2.1 導入   適切な構成管理とは •  あらゆる環境を再現できる   –  OS   –  パッチレベル   –  ネットワーク構成   –  ソフトウェアスタック   –  デプロイされるアプリケーションとその設定   •  インクリメンタルな変更を行い、他の環境に対して簡 単にデプロイできる  
  • 4. 2.1 導入   適切な構成管理とは •  変更点を容易に確認できる   また、誰がいつ変更を行ったかを追跡できる   •  コンプライアンスの規約をすべて満たす   •  チームの全員が必要な情報を取得し、変更すること ができる。   –  チーム間に壁を作って、サイクルタイムが長くなり、フィー ドバックが減ることになっていないか?  
  • 5. 2.2バージョン管理を使う •  バージョン管理システムを使う理由   –  ソフトウェアの特定のバージョンを構成しているものを知り たい   –  いつ、誰が、何のために、何を行ったのかを把握できる   •  チームが離れた場所、別の時間帯で作業しても協力できる
  • 6. 2.2.1 ひとつ残らずすべてバージョン 管理に保存せよ •  ソースコード   •  テスト、データベーススクリプト   •  ビルド・デプロイメントスクリプト   •  ドキュメント   •  ライブラリ   •  設定ファイル   •  テスト環境や本番環境を再現するのに必要な情報     アプリケーションのバイナリと実行環境を再現するのに必要な すべてを保存する  
  • 7. 2.2.2 定期的にtrunkにチェックインせよ •  こまめにチェックインすることで、問題の解決を容易にするこ とができる   •  機能毎にブランチを切る方法は、継続的インテグレーションと は相容れない   –  機能の統合が先延ばしになる   –  複数のブランチを作ると問題はより複雑になる   –  統合に関わる問題がマージの時にしか発見されない   –  マージツールも意味上の競合は解決してくれない   •  チェックインの際にビルドを壊さないために   –  チェックインの前にコミットテストを一式実行する   –  変更をインクリメンタルに行う
  • 8. 2.2.3 意味のあるコミットメッセージを使え •  どんな変更をしたのかをきちんと説明するコミットメッセージ を使うことで、後々何時間というデバッグをしなくて済む   •  よりよいメッセージ   –  1行目に要約を書く   –  以降の複数行にわたって詳細な説明を記述する   •  コミットをプロジェクト管理ツールに紐付ける   –  紐付けができていないコミットが失敗するように  
  • 9. 2.3 依存関係の管理   2.3.1 外部ライブラリを管理する •  RubyGemsなどを使って特定のライブラリをダウン ロードできるようにする   –  リポジトリが肥大化しなくて済む   •  社内の共通リポジトリに外部ライブラリのコピーをお いておく   –  新メンバーのスタートアップが楽になる   •  どちらにしても、外部ライブラリの正確なバージョン を常に指定しなければならない  
  • 10. 2.3.2 コンポーネントを管理する •  一つのコンポーネントをビルドした場合に、依存関 係のあるコンポーネントのみリビルドして欲しい   •  しかし、現実にはそんなことができるツールはない   •  ビルドエンジニアが自前で依存関係を管理する必要 がある
  • 11. 2.4 ソフトウェアを管理する   2.4.1 設定と柔軟性 •  ソースに対する安全装置はいろいろあるが、設定に 対する安全装置はほとんどない   •  設定を柔軟にしようとするせいで分析麻痺に陥る   •  システムが複雑になってしまい、柔軟性の恩恵が失 われてしまう   •  スモークテストは設定によって起こる問題を和らげ てくれる  
  • 12. 2.4.2 設定の種類 •  設定の種類にはいくつかある   –  ビルド時の設定   –  パッケージング時の設定   –  デプロイメント時の設定   –  起動時や実行時の設定   •  ビルド時やパッケージング時の設定は悪い設定   –  あらゆる環境に同じバイナリをデプロイできるべき   •  設定情報は可能な限り同じ手段で提供されるべき
  • 13. 2.4.3 アプリケーションの設定を管理する   設定にアクセスする •  ファイルシステム経由の管理   –  あらゆる言語でサポートされる   –  アプレットのようなものでは使えない   •  Web経由で管理   •  設定にアクセスする際は、インターフェイスのみ公開 し、実装は隠蔽すること  
  • 14. 2.4.3 アプリケーションの設定を管理する   設定をモデリングする •  設定情報はタプルの集合でモデル化される   •  設定情報は以下に依存する   –  アプリケーション   –  アプリケーションのバージョン   –  アプリケーションの実行環境  
  • 15. 2.4.3 アプリケーションの設定を管理する   システム設定をテストする •  外部サービスへの参照が適切であるかテストする   –  最低でもすべての外部サービスにpingを打つ程度は   –  依存しているサービスが一つでも動いてなければ落ちな ければならない   •  アプリケーションがインストールされた後で、いくつ かスモークテストを行う   –  設定が正しいことに依存するテストをいくつか行う
  • 16. 2.4.4 アプリケーションをまたいで設定を 管理する •  プロジェクトに関連する設定を一欄できるようにする   •  可能であれば設定を自動生成するように   •  もしくはWikiなどに集約させる   •  動作しているアプリケーションの設定情報を監視シ ステムを通じて見ることができるように
  • 17. 2.4.5 アプリケーション構成管理の原則 •  設定オプションはソースコードと同じレポジトリで管理する。た だし、値は別の場所で保存すること。   •  設定は設定用のリポジトリで管理した値を常に使うこと   •  アプリケーションやバージョン、デプロイ環境に応じて個別の 値を提供できること   •  設定オプションには明確な命名規約を用いよう   •  設定情報はモジュール化しておこう   •  DRY(don’t  repeat  yourself)原則を用いよう   •  設定情報はシンプルに保とう   •  設定はきちんとテストしよう
  • 18. 2.5 環境を管理する •  設定情報を管理する上でのアンチパターン   –  環境を手作業で構築し、設定ファイルを変更する   •  こういった『職人芸』は生産性を大きく下げる   •  完全に自動化されたプロセスで環境構築出来る必 要がある
  • 19. 2.5.1 環境管理のためのツール •  Puppet   –  hIp://puppetlabs.com/   •  CfEngine   –  hIp://cfengine.com/  
  • 20. 2.5.2 変更プロセスを管理する •  本番環境を変更できる人は限られた人でないといけ ない   •  テスト環境は本番環境と同じように扱わなければな らない   –  管理、デプロイメント、設定が同じ仕組であればよい  
  • 21. 2.6 まとめ •  構成管理プロセスの徹底には、以下の要件が必須   –  本番システムをバージョン管理ツールからスクラッチで構築すること ができる   –  正しく動くとわかる以前のバージョンにロールバックできる   –  ステージングやテスト環境が本番と同じやり方でセットアップされてい る  
  • 22. 私的まとめ •  直接関係ないことが混じってるが、要はPuppetとか 使って環境構築を自動化しましょうというお話   •  定期的にtrunkに〜のくだりとかは、後の章でも同じ 話がでてくるので省いていいんじゃ・・・