Mais conteúdo relacionado
Semelhante a SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料) (20)
Mais de NTT DATA OSS Professional Services (11)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
- 1. Copyright © 2015 NTT DATA Corporation
第1回 Puppetユーザ会
発表資料
2015年10月28日
株式会社NTTデータ
落合 秀俊
SIプロジェクトでのインフラ自動化の事例
- 2. 2Copyright © 2015 NTT DATA Corporation
はじめに 自己紹介
名前: 落合 秀俊
所属: 株式会社NTTデータ
技術革新統括本部 基盤システム事業本部
経歴:
• 社内のSIプロジェクトに対して、
オープンソースミドルウェアの技術支援を実施
• 2009年以降は、HadoopのSI案件を複数担当
Hadoopの大量(数百台~数千台)のスレーブサーバ構築で
Puppetを活用、Puppetのノウハウを蓄積してきた
- 3. 3Copyright © 2015 NTT DATA Corporation
はじめに 今回伝えたいこと
インフラの自動化に関して、
• 世の中ではWeb系企業での事例は多いが、
• エンタープライズ領域ではほとんどない。
大規模プロジェクトでの
インフラ自動化事例を紹介
1. なぜ自動化を行うのか、インフラの課題と解決策
2. SIプロジェクトでのPuppet活用方法
インフラ自動化に取り組む人を増やしていきたい
今後目指す方向
• 品質/柔軟性の高いITインフラを日本のSIプロジェクトに広めることで、
• 3K,7Kと言われるIT業界の苦労を少しでも軽減し、
• より創造的な仕事に注力できるようにしたい
- 5. 5Copyright © 2015 NTT DATA Corporation
Puppetを活用した「事例プロジェクト」の概要と、インフラの抱える課題
システムの特徴 解決策
①社会基盤を担う重
要な大規模システム
②当社にとって新規
顧客、新規システム
③お客様所有データ
センタに設置
①大量/多種/複数面
のサーバ
• 効率的かつ不整合な
く構築
• 不整合なく変更を反映
する必要がある
②変更要求に対して柔
軟かつ正確な対応が
求められる
③お客様データセンタで
は短期間で確実な構
築/試験が求められる
インフラの課題 効果
- 6. 6Copyright © 2015 NTT DATA Corporation
システムの特徴①社会基盤を担う重要な大規模システム
商用環境 80台
DR環境 80台
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ
…AP
APAPAP
開発環境
(お客様所有)
190台
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシス内結合面
サブシス間結合面
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ
…AP
APAPAP
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
総合テスト面
…
外部システム結合面
現行システム維持面
非機能テスト面
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
…
開発環境
(自社内)
80台
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
…
…
単体テスト(新規)面
単体テスト(現行)面
30種類
16面
サーバのバリエーションが多く、
種類ごとに内部構成が異なる
400台超
商用環境は80台だが、
トータルだと5倍以上に膨れ上がる
プロジェクト最大の山場である
テスト工程で試験の並走度が高く、
開発環境に多数のテスト面がある。
- 7. 7Copyright © 2015 NTT DATA Corporation
インフラの課題①大量/多種/複数面のサーバ 構築時の課題
商用環境 80台
DR環境 80台
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ
…AP
APAPAP
開発環境
(お客様所有)
190台
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシス内結合面
サブシス間結合面
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ
…AP
APAPAP
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
総合テスト面
…
外部システム結合面
現行システム維持面
非機能テスト面
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
…
開発環境
(自社内)
80台
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
…
…
単体テスト(新規)面
単体テスト(現行)面
30種類
16面
400台超
大量のサーバを
効率的に
構築する必要あり
不整合なく構築する
必要あり
• 同種のサーバ同士
• 面、面、面…の間
- 8. 8Copyright © 2015 NTT DATA Corporation
インフラの課題①大量/多種/複数面のサーバ 変更作業時の課題
商用環境 80台
DR環境 80台
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ
…AP
APAPAP
開発環境
(お客様所有)
190台
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシス内結合面
サブシス間結合面
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ
…AP
APAPAP
APAPAP
APAPAP
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
総合テスト面
…
外部システム結合面
現行システム維持面
非機能テスト面
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP DB
バッチ
AP
…
開発環境
(自社内)
80台
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
…
…
単体テスト(新規)面
単体テスト(現行)面
30種類
16面
400台超
AP
AP
AP
AP
AP
AP
AP
1台の変更
↓
変更対象が16面(20台以上)
に膨れ上がる
- 9. 9Copyright © 2015 NTT DATA Corporation
インフラの課題①大量/多種/複数面のサーバ 変更作業時の課題
商用環境 80台
DR環境 80台
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ
…AP
APAPAP
開発環境
(お客様所有)
190台
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシス内結合面
サブシス間結合面
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ
…AP
APAPAP
APAPAP
APAPAP APAP
APAP
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
総合テスト面
…
外部システム結合面
現行システム維持面
非機能テスト面
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP DB
バッチ
AP
…
開発環境
(自社内)
80台
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
…
…
単体テスト(新規)面
単体テスト(現行)面
30種類
16面
400台超
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
1台の変更
↓
類似サーバへ展開すると
変更対象がさらに
2倍(40台)、
3倍(60台)、
:
不整合なく変更を
行う必要あり
- 10. 10Copyright © 2015 NTT DATA Corporation
インフラ課題の解決策①大量/多種/複数面のサーバ
大量のサーバを
効率的に
構築する必要あり
不整合なく構築する必
要あり
• 同種のサーバ同士
• 面、面、面…の間
不整合なく変更を
行う必要あり
Puppetで構築、
維持管理を実施
• OS設定
• ミドルウエアの構築
ミドルウェア試験の自動化
(今回の発表では詳細は割愛)
• サーバ単体テスト: serverspec
• 振る舞いテスト: 内部独自ツール
課題
対策
効果
品質向上:
作業ミス等でのサーバごとの差
異が発生がない
学習効果、知識の蓄積:
初期の面の経験をフィードバックできるため、後の面
になるほど失敗が少なく、精度が上がる。
スケジュール確度向上:
後の面になるほどトラブルが減るため、スケジュール通りに進む
確度が高まる。結果、スケジュール圧縮も可能になる。
- 11. 11Copyright © 2015 NTT DATA Corporation
インフラ課題の解決策①大量/多種/複数面のサーバ
商用環境 80台
DR環境 80台
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ
…AP
APAPAP
開発環境
(お客様所有)
190台
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシス内結合面
サブシス間結合面
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ
…AP
APAPAP
APAPAP
APAPAP APAP
APAP
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
総合テスト面
…
外部システム結合面
現行システム維持面
非機能テスト面
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP DB
バッチ
AP
…
開発環境
(自社内)
80台
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
…
…
単体テスト(新規)面
単体テスト(現行)面
30種類
16面
400台超
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
AP
Puppet
Manifest
Puppetで変更
を一元管理
品質向上:
作業ミス等でのサーバごと
の差異が発生がない
- 12. 12Copyright © 2015 NTT DATA Corporation
インフラ課題の解決策①大量/多種/複数面のサーバ
構築
回数
環境/面 Puppetでの
構築期間
構成
1回目 開発環境/
サブシス内結合面
4週間/面
2回目 開発環境/
非機能テスト面
非機能テストDR面
3週間/2面
=1.5週間/面
3回目 開発環境/
サブシス間結合面
開発環境/
外部システム結合面
2週間/2面
=1週間/面
: :
5回目 商用環境
DR環境
4週間/2面
=2週間/面
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
DBDB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ …
APAP
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
DBDB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ …
APAP
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ …
AP
APAPAP
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ …
AP
APAPAP
×新規なので準備(モジュール作成等)に時間が掛かった
△冗長構成(HA,負荷分散)が初登場で難易度が高くなった
○1回目と同じ構成なので、ほぼノートラブル、4倍効率化
○商用ながら、2回目から台数が増えたのみ
当日の作業延長なし、期間内に終了
学習効果、知識の蓄積:
初期の面の経験をフィードバックできるため、
後の面になるほど失敗が少なく、精度が上がる。
シンプル
構成
冗長構成
シンプル
構成
冗長構成
スケジュール確度向上:
後の面になるほどトラブルが減るため、スケジュール通りに
進む確度が高まる。結果、スケジュール圧縮も可能になる。
- 13. 13Copyright © 2015 NTT DATA Corporation
公式な環境
うちは小規模だから自動化してもしょうがない??
ところで、
「うちは小規模だから自動化してもしょうがない」
とお思いのあなた、
ちゃんと数えると思っている以上にサーバ数、面数はありますよ!
業務Aチーム内サーバ ベンダ検証センタ
検証環境
商用環境
野良サーバ系 一時的環境
Aさん席足元の
サーバ(PC)
業務Bチーム内サーバ
開発環境(単体テスト)
開発環境(結合テスト)
ベンダ検証センター
パッケージソフト
検証環境
環境によって再現しない
バグが出ることも
統制かけて公式環境化
するのはどうか?
検証期間は短いので、
素早く作りたい
- 14. 14Copyright © 2015 NTT DATA Corporation
システムの特徴②当社にとって新規顧客、新規システム
システムの特徴 解決策
①社会基盤を担う重
要な大規模システム
②当社にとって新規
顧客、新規システム
③お客様所有データ
センタに設置
①大量/多種/複数面
のサーバ
• 効率的かつ不整合な
く構築
• 不整合なく変更を反映
する必要がある
②変更要求に対して柔
軟かつ正確な対応が
求められる
③お客様データセンタで
は短期間で確実な構
築/試験が求められる
インフラの課題 効果
Puppetで構築、
維持管理を実施
ミドルウェア試験
の自動化
品質向上
学習効果、知識の蓄積
スケジュール確度向上
- 15. 15Copyright © 2015 NTT DATA Corporation
システムの特徴②当社にとって新規顧客、新規システム
新規顧客
開発に入った後に初めてわかることも多い
新規システム
当然、要件定義は厳格に行うのだが……
お客様の独自文化
• 独自用語(各種 識別子が変更になる)
• 明文化されていない暗黙のルール
(後から知っても、守る必要がある)
• 全システム共通の運用システム
(監視、ジョブ、ログ等へ合わせこむ)
等
連携先システムの詳細仕様
詳細設計を進めて気づく仕様
• 例外的な処理
• 異常時の処理
• DR切り替え時の処理
等
インフラ構築後の変更が避けがたい
変更要求に対して柔軟かつ正確な対応が求められる
- 16. 16Copyright © 2015 NTT DATA Corporation
Puppetで維持管理を実施
• OS設定
• ミドルウエアの設定
課題
対策
効果
インフラ課題の解決策②変更要求に対して柔軟かつ正確な対応
インフラの変更要求に対して
柔軟かつ正確な対応が求められる
品質向上:
作業ミス等でのサーバごとの
差異が発生がない
変更のトラッキング:
変更は、テキストファイルとして
リビジョン管理ができる
変更の敷居を下げる:
次ページで解説
- 17. 17Copyright © 2015 NTT DATA Corporation
インフラ課題の解決策②変更要求に対して柔軟かつ正確な対応
商用環境 80台
DR環境 80台
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ
…AP
APAPAP
開発環境
(お客様所有)
190台
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシス内結合面
サブシス間結合面
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ
…AP
APAPAP
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
総合テスト面
…
外部システム結合面
現行システム維持面
非機能テスト面
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
…
開発環境
(自社内)
80台
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
…
…
単体テスト(新規)面
単体テスト(現行)面
30種類
16面
400台超
Puppet担当者
VM
商用環境 80台
DR環境 80台
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ
…AP
APAPAP
開発環境
(お客様所有)
190台
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシス内結合面
サブシス間結合面
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ
…AP
APAPAP
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
総合テスト面
…
外部システム結合面
現行システム維持面
非機能テスト面
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
…
開発環境
(自社内)
80台
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
…
…
単体テスト(新規)面
単体テスト(現行)面
30種類
16面
400台超
Puppet
Manifest
構築対象の環境
Puppet検証環境
変更
要求 1
2
3
4
Puppet
Manifest
変更の敷居を下げる:
変更しやすさと正確性が保てる
手元の自由に使える環境
で変更の検証を行う
課題: 業務の各種テストで使用中
変更は慎重さが必要
(テストを止めたくない)
Dockerコンテナで実現
• 台数が多くても、コンテナなら少
ないリソースで何とか動かせる
• あくまでPuppet検証用途限定
• ミドルの動作はリソース上困難
メモリ多めのPC
検証済みのPuppet
Manifestで変更を実施
- 18. 18Copyright © 2015 NTT DATA Corporation
システムの特徴③お客様所有データセンタに設置
システムの特徴 解決策
①社会基盤を担う重
要な大規模システム
②当社にとって新規
顧客、新規システム
③お客様所有データ
センタに設置
①大量/多種/複数面
のサーバ
• 効率的かつ不整合な
く構築
• 不整合なく変更を反映
する必要がある
②変更要求に対して柔
軟かつ正確な対応が
求められる
③お客様データセンタで
は短期間で確実な構
築/試験が求められる
インフラの課題 効果
Puppetで構築、
維持管理を実施
ミドルウェア試験
の自動化
品質向上
学習効果、知識の蓄積
スケジュール確度向上
変更のトラッキング
変更の敷居を下げる
Puppetで構築、
維持管理を実施
- 19. 19Copyright © 2015 NTT DATA Corporation
開
発
拠
点
システムの特徴③お客様所有データセンタに設置
厳格なセキュリティ管理
5月 6月 7月 8月
商用
DR
データセンタ
商用
ラック電源
工事
機器設置
OS/
ミドル
設定
商用
ミドル
設定
ミドル
単体
テスト
ミドル
可用性
テスト
データセンタ
DR
ラック電源
工事
機器設置
OS/
ミドル
設定
商用
ミドル
設定
ミドル
単体
テスト
ミドル
結合
テスト
ミドル
結合
テスト
ミドル
可用性
テスト
×データセンタ 商用 入館申請
日時: 8/7 10:00~17:00
作業内容: ミドル結合テスト
入館者:
A社 田中 一郎
A社 佐藤 二郎
B社 鈴木 花子
ネットワークは完全独立
(開発環境と商用環境
はつながらない)
入館日、作業者、
作業時間の事前
申請が必要
×
お客様立会い
管理下での作業
- 20. 20Copyright © 2015 NTT DATA Corporation
開
発
拠
点
インフラの課題③データセンタでは作業場所/期間/時間に制約
厳格なセキュリティ管理
5月 6月 7月 8月
商用
DR
データセンタ
商用
ラック電源
工事
機器設置
OS/
ミドル
設定
商用
ミドル
設定
ミドル
単体
テスト
ミドル
可用性
テスト
データセンタ
DR
ラック電源
工事
機器設置
OS/
ミドル
設定
商用
ミドル
設定
ミドル
単体
テスト
ミドル
結合
テスト
ミドル
結合
テスト
ミドル
可用性
テスト
× ×
作業場所/期間/時間
に制約が大きい
場所:
商用環境はデータセンタ
での作業が必須
期間:
スケジュール通りで構築・テスト
を終える必要がある
• 作業内容に合わせたお客様
担当者が立ち会う。
急に立会い日をずらせない。
時間:
トラブル発生時でも時間延長は
容易ではない
(お客様にも残業を強いる)
- 21. 21Copyright © 2015 NTT DATA Corporation
インフラ課題の解決策③データセンタは作業場所/期間/時間に制約
Puppetで構築、
維持管理を実施
• OS設定
• ミドルウエアの構築
ミドルウェア試験の自動化
(今回の発表では詳細は割愛)
• サーバ単体テスト: serverspec
• 振る舞いテスト: 内部独自ツール
課題
対策
効果
品質向上:
作業ミス等でのサーバごとの差
異が発生がない
学習効果、知識の蓄積:
初期の面の経験をフィードバックできるため、後の面
になるほど失敗が少なく、精度が上がる。
スケジュール確度向上:
後の面になるほどトラブルが減るため、スケジュール通りに進む
確度が高まる。結果、スケジュール圧縮も可能になる。
作業場所/期間/時間
に制約が大きい
構築時と同じ効果が
顕著に効く
- 22. 22Copyright © 2015 NTT DATA Corporation
インフラの課題と解決策 まとめ
システムの特徴 解決策
①社会基盤を担う重
要な大規模システム
②当社にとって新規
顧客、新規システム
③お客様所有データ
センタに設置
①大量/多種/複数面
のサーバ
• 効率的かつ不整合な
く構築
• 不整合なく変更を反映
する必要がある
②変更要求に対して柔
軟かつ正確な対応が
求められる
③お客様データセンタで
は短期間で確実な構
築/試験が求められる
インフラの課題 効果
Puppetで構築、
維持管理を実施
ミドルウェア試験
の自動化
品質向上
学習効果、知識の蓄積
スケジュール確度向上
変更のトラッキング
変更の敷居を下げる
品質向上
学習効果、知識の蓄積
スケジュール確度向上
Puppetで構築、
維持管理を実施
ミドルウェア試験
の自動化
Puppetで構築、
維持管理を実施
- 23. Copyright © 2015 NTT DATA Corporation 23
SIプロジェクトでのPuppet活用方法
• Puppetの使い方
• Puppetの構成、Puppet適用スタイル
• Puppet manifest構成
• 商用ソフトのPuppet対応
• Puppetの使い方での工夫は多岐にわたるが、
今回はかいつまんで一部のみ紹介
• 残りは、今後のPuppetユーザ会等で順次紹介していきたい
- 24. 24Copyright © 2015 NTT DATA Corporation
Puppetのシステム構成: Master-Agent構成
商用環境
DR環境
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ
…AP
APAPAP
開発環境
(お客様所有) サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシス内結合面
サブシス間結合面
サブシステムA
AP
DB
バッチ
AP
DB
バッチ
サブシステムB
AP
DB
AP
DB
サブシステムC
AP
DB
バッチ
AP
DB
バッチ
…AP
APAPAP
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
総合テスト面
…
外部システム結合面
現行システム維持面
非機能テスト面
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ…
開発環境
(自社内)
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
サブシステムA
AP DB
バッチ
サブシステムB
DB
サブシステムC
…AP AP DB
バッチ
…
…
単体テスト(新規)面
単体テスト(現行)面Puppet
Master
Puppet
Master
Puppet
Master
Puppet
Master
Puppet
Master
(非機能テスト面用)
Master-Agent構成
• 各環境ごとにPuppet Masterを設置
• Puppet Manifestはgitに一元管理し、
各Masterに配布して使用する
Manifest
git
- 25. 25Copyright © 2015 NTT DATA Corporation
Puppetのシステム構成: 適用スタイル
Agentを手動起動させ、常駐(自動適用)させない
• 適用タイミングをコントロールしたい(試験の進捗に合わせて適用したい)
• 差分内容を確認したい(不用意に変更してしまわない)
サーバ
Agent
サーバ
Agent
Puppet
Master
Manifest
サーバ
Agent
1. --noopオプションを指定して、diffを表示させる
# puppet agent --noop --onetime --no-daemonize
2. diff内容が、意図する内容のみであることを確認
3. agentコマンドで適用する
# puppet agent --onetime --no-daemonize
- 26. 26Copyright © 2015 NTT DATA Corporation
Puppet Manifest構成
PuppetlabsのBest Practiceに従う
• 「The Puppet Language Style Guide」
• 「Module Fundamentals」
• Puppet Manifest設計方法の議論を内部で散々
行ってきたが、結局Best Practiceと同じになった
Node定義 Module
DR環境
開発環境
サブシス間
結合面 …
…
開発環境
単体テスト
(現行)面
オープンソース
ミドルA
オープンソース
ミドルB
オープンソース
ミドルC
開発環境
サブシス内
結合面
商用環境
開発環境
単体テスト
(新規)面
商用
ミドルD
商用
ミドルE
商用
ミドルF
できる限り単純化
• if文など制御を極力排除
• テンプレートは値の穴埋めのみ使用
面依存はNode定義に記載する
途中でhieraに乗り換えた
- 27. 27Copyright © 2015 NTT DATA Corporation
商用ソフトのPuppet対応
商用ソフトは自動化の敵
• 対話型インストーラはPuppet化が困難
コマンドラインインストール、
サイレントインストールあり
対話型しかない
Puppet化
オープンソース
ミドルウェア
商用ソフト
インストール前提条件のみ
Puppet化
+手動インストール
インストール前提条件
• ユーザ、ディレクトリ作成
• 依存ライブラリインストール
• カーネルパラメタ設定 等
前提条件の整備だけでも一定の効果あり
• 条件がそろうので、手動インストールが
失敗しにくい
• 単純インストール時間のみで済む
Puppet化の考え方
• 全サーバに導入するソフトを優先する
• 運用エージェント(ジョブ、監視等)
• アンチウィルス等セキュリティ
• ライセンス費用の高い重要ソフトウェアは、専
任担当者が付くので手動インストールでもそ
れほど問題にならなかった
- 29. 29Copyright © 2015 NTT DATA Corporation
おわりに
今後、Puppetユーザ会を通じて話していきたい内容
• Puppet Best Practice
• PuppetをSIプロジェクトで適用する場合のノウハウ、テクニック
• インフラテスト自動化
等、皆さんに情報提供しつつ議論を深めていきたい
SIプロジェクトでインフラ自動化は非常に役立つ。
積極的に推進していきたい。
大規模プロジェクトでの
インフラ自動化事例を紹介
1. なぜ自動化を行うのか、インフラの課題と解決策
2. SIプロジェクトでのPuppet活用方法