Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)

8,806 views

Published on

第1回 Puppetユーザ会 発表資料 (2015/10/28)
『SIプロジェクトでのインフラ自動化の事例』
株式会社NTTデータ 落合 秀俊

Published in: Technology
  • Be the first to comment

SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)

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

×