...

IBM PureApplication System パターンのカスタマイズ 1 ISE.PureSystems

by user

on
Category: Documents
17

views

Report

Comments

Transcript

IBM PureApplication System パターンのカスタマイズ 1 ISE.PureSystems
IBM PureApplication System
パターンのカスタマイズ
ISE.PureSystemsソリューション
今関 靖一郎 ([email protected])
© 2013 IBM Corporation
1
Disclaimer
この資料は日本アイ・ビー・エム株式会社ならびに日本アイ・ビー・エム システムズ・エ
ンジニアリング株式会社の正式なレビューを受けておりません。
当資料は、資料内で説明されている製品の仕様を保証するものではありません。
資料の内容には正確を期するよう注意しておりますが、この資料の内容は2013年4月
現在の情報であり、製品の新しいリリース、修正などによって動作/仕様が変わる可
能性があるのでご注意下さい。
2
© 2013 IBM Corporation
2
Agenda
§1. パターンのカスタマイズ概要
§2. 仮想システム・パターンにおけるカスタマイズ
§3. 仮想アプリケーション・パターンにおけるカスタマイズ
§4. まとめ
3
© 2013 IBM Corporation
本セッションは「パターンののカスタマイズ」についてのセッションです。
PureAppが提供する2種類のパターン・モデルそれぞれで利用できる機能・ツールおよ
びそれらのユースケースをご紹介し、どのようにしてお客様の要件に合わせてパターン
のカスタマイズをしていくのかをご説明するセッションになっております。
第1章でパターンのカスタマイズの概要をお話しした後、2章・3章でパターン別に具体
的にどうカスタマイズをするかのユースケースをご説明いたします。
3
§1 パターンのカスタマイズ概要
4
© 2013 IBM Corporation
それでは、まずパターンに対するカスタマイズの概要についてお話しいたします。
4
PureAppが提供するパターン(おさらい)
仮想システム・パターン
仮想アプリケーション・パターン
ベスト・プラクティス
ノウハウの活用
トポロジー視点
ミドルウェアの構成要件から実行基盤を構築
ミドルウェアの導入・構成のノウハウが実装
従来型のマネジメント・モデル
5
ワークロード視点
アプリケーションの要件から実行基盤を構築
要件に対し、基盤にベスト・プラクティスが実装
ポリシー主導のマネジメント・モデル
© 2013 IBM Corporation
先のセッション「3. パターンを利用したシステム・デザイン」からの繰り返しの話にはな
ってしまいますが、PureAppでは仮想システム, 仮想アプリケーションの2つの異なるパ
ターン・モデルを提供しています。
仮想システム・パターンはトポロジー視点、すなわちミドルウェアの視点でシステム構
成を決定していくアプローチのパターン・モデルです。具体的には、ミドルウェアとして
はWASとDB2を使用する、WASはクラスター構成で、DB2はHADR構成でシステムを
組む、といった要件からシステム構成を決定し構築するパターン・モデルです。
一方、 仮想アプリケーション・パターンはワークロード視点、すなわちアプリケーション
の視点でシステムを考えた場合に、必要なコンポーネントとアプリケーション実行環境に
対する非機能要件をもとに、システム構成を決定するアプローチのパターン・モデルで
す。具体的には、システムにはJavaのEARアプリケーションがあり、データベースとユー
ザー・レジストリーをアプリケーションとしては稼働のために必要としています、アプリケ
ーションを動かすノードに関しては耐障害性を保証するために冗長化します、という情
報をもとに、推奨かつ実績のあるシステム構成をPureAppか判断し、ユーザーに提供す
るパターン・モデルです。
5
PureAppのパターンを構成するコンポーネント(おさらい)
仮想システム・パターン
Hypervisor Edition
仮想アプリケーション・パターン
システム・プラグイン
パターン・タイプ
Hypervisor
Edition
Virtual Appliance
Software
application
業界標準
業界標準
Operating
system
IBM独自拡張
IBM独自拡張
Metadata
OSとミドルウェアの組み合わさった仮想
イメージ
OVF形式のOVAファイル
WebSphere Application Server
IBM HTTP Server
DB2
WebSphere MQ
WebSphere Message Broker
Business Process Management
IBM SOA Policy Pattern V2.0 (WAS/MQ V7、
WMB V8)
etc
6
http://www.ibm.com/software/websphere/products/hypervisorfamily/
システム・プラグインは、コンポーネント、ポリ
シー、リンクの実体
パターン・タイプは、特定のワークロード向け
にグループ化されたプラグインの論理セット
Web Application PatternV1.0 (WAS V7)
Web Application PatternV2.0 (WAS V8)
Transactional Database Pattern V1.1 (DB2 9.7)
DataMart Pattern V1.1 (DB2 9.7)
IBM Application Pattern for Java v1.0
ISV Application Pattern
IBM Mobile Application Platform Pattern(Worklight)
IBM Business Intelligence Pattern
etc
© 2013 IBM Corporation
これら2つのパターンは、実装のレベルにおいても差異があります。これらの違いは、
本セッションの主題であるパターンのカスタマイズの進め方の違いにもつながります。
仮想システム・パターンに関しては仮想イメージないしはHypervisor Editionと表現さ
れる、ミドルウェア導入済みの仮想マシン・テンプレートがパターンの構成要素になりま
す。ユーザーは仮想イメージを組み合わせてシステムを構築することになります。
一方、仮想アプリケーション・パターンはシステム・プラグインと呼ばれるIBM独自の実
装の単位でパターンを構成します。ユーザーはパターンを構成すると、裏側で必要な機
能に対するプラグインが組み合わさってシステムが構築されることになります。
こうした2つのパターン・モデルに対し、現在IBMの様々なミドルウェア製品をベースと
したパターンが公開されています。Webアプリケーションの実行環境を提供するWeb
Application Pattern、RDBの実行環境を提供するTransactional Database
Pattern/DataMart Pattern、モバイルの実行環境を提供するIBM Mobile Application
Platform Patternなどがあります。
どちらのパターン・モデルを選択したとしても、お客様のビジネス・ニーズに合わせて、
必要とするパターンを選択し、システム基盤を速やかに提供することが可能です。今後
も順次追加されていく予定であり、より細かなビジネス・ニーズにも速やかに対応できる
ようになっていきます。
6
パターンでのシステム開発の理想と期待
パターンでのシステム開発の理想は
パターンでのシステム開発の理想は 「ありのままの構成を使っていくこと」
ODR
WA
S
DB2(P)
カスタマイズ
してくれるよね!!
してくれるよね
運用担当者&アプリ担当者
運用担当者 アプリ担当者
デプロイ
DM
運用管理ツール
の組み込み
DB2(B)
WAS
OS
構築担当者
標準的な構成・設定のため多くの
システムの基盤として利用可能
ODR
OS
ODR
OS
WAS
OS
WAS
OS
DM
OS
DB2
OS
DB2
OS
アプリケーション
の前提条件
セキュリティ対応
とはいえ、「全くカスタマイズしない」というわけにもいかない
7
© 2013 IBM Corporation
こうしたパターンによるシステム構築のアプローチで、確かに基盤を迅速に提供できる
のですが、標準的かつ推奨のシステム構成をパターンとして提供しているため、パター
ンは多くの企業のシステム基盤として当てはめやすくなっている反面、デプロイしたシス
テムを見ていくと必ず運用担当者およびアプリケーション担当者から見てカスタマイズ
するポイントが生じる可能性があります。
例えば、ある企業では既に監視にJP1やZabbixを使っており、PureAppが提供する監
視の機構は用いずにそれらと連携させたい場合、パターンからデプロイされたシステム
に適切な監視エージェントを導入する要件が発生します。同様に、アプリケーション実
行のための前提条件を満たすための設定要件やOSセキュリティー要件など、要件次第
で様々なカスタマイズ・ポイントが生じます。
したがって、パターンによるシステム構築において、基盤の迅速な提供を実現するた
めに、できるだけカスタマイズしないで利用していくことが理想ではありますが、実際の
デリバリーの局面では「全くカスタマイズしない」というわけにはいかず、システム構築担
当者はパターンに対してカスタマイズを検討していくことになります。
ただ、運用担当者やアプリケーション担当者のカスタマイズ要件をそのまま実現しよう
とすると開発工数が膨らむ恐れがあります。パターンで生み出されるシステムと現場が
期待するシステムのギャップを埋めるアプローチとして、パターンでシステムを構築する
前に、まずはシステムの標準化の推進を徹底してください。
システムの標準化を考え、カスタマイズ・ポイントをお互いに明確にすることで、何をカ
スタマイズするかを正しく判断することができるようになりますし、意図しない・見落としに
よるカスタマイズ要件の追加で工数がいつの間にか膨らんでしまう状況を未然に防ぐこ
とが可能です。
7
パターンのカスタマイズ前に考慮すべきこと
ベースにできるパターンの提供有無の確認
PureSystems Centre(P.56)を活用し、ソリューションが提供されているかを調査
適切なパターンが存在する場合は、何をカスタマイズすればよいかを整理
パターンに含めるか否かの判断
デプロイ後手動で行う対応も選択肢としてはあり得る
システム共通で何度も実施する操作か否かでパターン化を考慮
OSに対する企業標準対応、セキュリティー対応
ITM以外の監視エージェントの組み込み etc…
代替可能か否かの判断
提供するパーツで極力システム開発を検討
代替不可な製品に関してのみ開発を検討
パッケージ製品の前提ミドルウェア etc…
・何でも無理に開発しようとしない
・繰り返し使うものから先に開発
が開発工数を抑えるポイント!!
が開発工数を抑えるポイント
8
© 2013 IBM Corporation
そうしたシステムの標準化と並行してパターンをカスタマイズする前に考慮していただ
きたいことが3点ございます。
1点目は「ベースにできるパターンの提供有無の確認」です。PureSystems Centreと
呼ばれます、IBMをはじめとしてIBMビジネス・パートナー様のパターンのカタログが
Webで外部公開されています。まずはそのカタログを見て、構築に必要とするミドルウェ
アやパッケージ製品のパターンがないかを調査してください。そして、構築において適
したパターンがあれば、開発の手間はかなり抑えられると考えられます。あとはカスタマ
イズ項目を再度見直したうえで、採用を検討してください。
2点目は「パターンに含めるか否かの判断」で、理想は要件に応じた機能全てをパタ
ーンに含め、全自動化を実現することですが、実際には自動化が難しいあるいは方法
がわからない操作があり、自動化するための調査や実装にかける期間が確保できない
状況が発生するケースがあります。どこまでをパターンとして含め、どこからはパターン
に含めずにカスタマイズを行うかの線引きを明確にしてください。例えば、OSセキュリテ
ィーの設定や監視エージェントの導入など、初回は開発工数がかかるものの、横展開を
考えたときに再利用可能な機能かどうかの基準で優先順位をつけ、カスタマイズを進め
るのがお勧めです。
3点目は、「代替可能か否かの判断」です。賛否両論はありますが、PaaS型クラウドの
思想として、「ビジネス・ニーズを満たし、アプリケーションが正常に稼働するならば、基
盤に使用するミドルウェア/OSは何でも構わない」という考え方があります。 パッケージ
製品の前提として必要な場合を除き、提供されているミドルウェアのパターンで置き換え
可能かなどを考えることで、提供されていないミドルウェア群でパターンのフルスクラッチ
を避けるというアプローチも、場合によっては検討が必要かと考えます。
8
パターンのカスタマイズはどう進める?
パターンのカスタマイズの流れはパターン・モデルにより異なる
開発する粒度が異なるため、進め方も変わることに注意が必要
仮想システム・パターン [VSP] の場合
MW
OS
仮想イメージの開発
実行スクリプトの開発
仮想アプリケーション・パターン [VAP] の場合
パターン・タイプ / プラグインの開発
9
© 2013 IBM Corporation
こうしたシステムの標準化、および先のページで考慮すべき点を踏まえたうえで、何を
どれくらいカスタマイズするのかを明確にした後で、実際にどのようにパターンをカスタ
マイズしていくかが次に話題として挙がります。
PureAppが提供するパターン・モデルは冒頭で2種類あると申し上げました。それぞれ
実装が異なりますので、カスタマイズの流れも実装に合わせて変わっていきます。
詳細については2, 3章で述べますが、仮想システム・パターン(Virtual System
Pattern, 省略してVSPとも記載されます)においては仮想イメージ(仮想マシンのテンプ
レート)とデプロイ時に実行するスクリプトが開発対象であり、仮想アプリケーション・パタ
ーン(Virtual Application Pattern, 省略してVAPとも記載されます)の場合はシステム・
プラグインおよびその論理セットであるパターン・タイプが開発対象となります。
9
パターンのカスタマイズに利用できるPureAppの機能&ツールは?
PureAppが提供する機能
[VSP(*1)] スクリプト・パッケージ
仮想マシンに対して任意のカスタマイズを行うためのスクリプト群
[VSP] アドオン
デプロイメント時に、仮想マシンに対してハードウェア構成変更するためのスクリプト群
[VSP] 仮想イメージの複製(Clone)
), 拡張(Extend)
), 収集(Capture)
)
仮想イメージの複製(
拡張(
収集(
仮想イメージに対しカスタマイズ(機能拡張)を行うための機能
パターンのカスタマイズの支援ツール
[VSP] IBM Image Construction and Composition Tool (ICCT)
仮想イメージに対するカスタマイズ・ツール
[VAP(*2)] IBM Workload Plug-in Development Kit (PDK)
仮想アプリケーション・パターンの開発ツール
次章より機能・ツールの利用ケース・指針をご説明
10
(*1) 仮想システム・パターン
(*2) 仮想アプリケーション・パターン
© 2013 IBM Corporation
仮想システムおよび仮想アプリケーション・パターンそれぞれの開発対象を開発して
いくために、PureAppは複数の機能と支援ツールを提供しています。これらに関して、
次章より各機能・ツールの説明とユースケースをご説明いたします。
10
§2. 仮想システムにおけるパターンのカスタマイズ
11
© 2013 IBM Corporation
それでは、実際にどうカスタマイズしていけばよいのか、機能&ツールの説明とユース
ケースを踏まえて説明していきます。まずは、仮想システムにおけるパターンのカスタマ
イズです。
11
仮想システム・パターン
トポロジー(ミドルウェア構成)を意識したパターン・モデル
ミドルウェアに対する要件をもとにシステムを設計・構築
パターンのパーツとして仮想イメージを選択、組み合わせることで構成を定義
仮想イメージ: デプロイに使用される事前設定済みのOSイメージ
必要に応じてパーツの構成パラメーターやスクリプトを利用し、システムを調整
スクリプト・パッケージ, アドオンで仮想マシン個別に設定変更
システムの要件に合わせて必要なパーツを選択
仮想イメージ
MW
MW
OS
OS
MW
MW
OS
OS
選択
必要なミドルウェアで構成したシステムを
速やかに利用できる
ユーザー
スクリプト・パッケージ
&アドオン
アドオン
WAS
OS
ODR
OS
必要に応じて
デプロイ
実施
ODR
OS
WAS
OS
WAS
OS
DM
OS
DB2
OS
DB2
OS
従来と同様に管理、設定変更可能
管理者
12
© 2013 IBM Corporation
再度、仮想システム・パターンについてご説明します。
仮想システム・パターンはトポロジー視点、すなわちミドルウェアの視点でシステム構
成を決定していくアプローチのパターン・モデルです。具体的には、ミドルウェアとして
はWASとDB2を使用する、WASはクラスター構成で、DB2はHADR構成でシステムを
組む、といった要件からシステム構成を決定し構築するパターン・モデルです。
ミドルウェア導入済みの仮想マシン・テンプレートである仮想イメージをもとに、目的に
合わせて必要な仮想イメージを選択し、後にご紹介いたしますスクリプト・パッケージと
アドオンでデプロイに合わせて動的に設定変更を行うようにパターンに規定します。そ
のように定義されたパターンに対し、デプロイを実施すると、仮想イメージから必要な役
割の仮想マシンが生成され、パターンに定義されたスクリプトが自動で実行されて、必
要とする実行基盤ができあがります。
12
仮想システム・パターンの開発対象と使える機能&ツール
仮想システム・パターンでの開発対象
仮想イメージ
MW
OS
デプロイ時に生成される仮想マシンのテンプレート
IBMの主要製品はHypervisor Editionとして提供される
実行スクリプト
デプロイ時に実行されるスクリプト
OSの設定変更やミドルウェアの設定変更を実施するために必要
開発で利用できる機能&ツール
スクリプト・パッケージ
アドオン
仮想イメージの複製(Clone)
仮想イメージの複製(
), 拡張(Extend)
拡張(
), 収集(Capture)
収集(
)
IBM Image Construction and Composition Tool (ICCT)
13
© 2013 IBM Corporation
仮想システムのパターンの構成要素は仮想イメージと実行スクリプトです。したがって
、「仮想システムのパターンのカスタマイズ」=「仮想イメージと実行スクリプトの開発」とい
うことになります。これらを開発するために利用可能な機能&ツールとして、スクリプト・パ
ッケージ、アドオン、仮想イメージの複製(Clone), 拡張(Extend), 収集(Capture)、IBM
Image Construction and Composition Tool(ICCT)が提供されています。
まずは、パターンのカスタマイズにおいて一番汎用性が高く、現場で最もよく使われる
機能である、スクリプト・パッケージについてご説明いたします。
13
スクリプト・パッケージ
デプロイした仮想マシンのカスタマイズを行うためのスクリプト群
cbscript.jsonにスクリプトの実行条件を記載
実行するスクリプトにcbscript.jsonを含めてzipファイルとしてパッケージング
デプロイごとに動的に変わる環境情報を変数として設定可能
例) データベースのホスト名を変数にAPサーバーでスクリプトを実行する
デプロイ時に実行順の設定が可能(*1)
例) データベースでのスクリプト実行後にAPサーバーでスクリプトを実行する
実行タイプは3種類
デプロイ
①
①
仮想システムの作成時
デプロイ時、複製時に実行
②
MW
OS
MW
OS
メンテナンス等
②
任意のタイミングで実行、何度でも実行可
③
①
開始時(任意のタイミング)
複製
仮想システムの削除時
起動中の仮想マシンが削除される際に実行
14
(*1) 実行タイプが仮想システムの作成時のみ
MW
OS
③
削除
© 2013 IBM Corporation
スクリプト・パッケージは、デプロイした仮想マシンのカスタマイズを行うためのスクリプト
群になります。デプロイ時に動的に変わる環境情報(ホスト名など)を変数としてスクリプト
を実行したり、実行する先の仮想マシンに依存せずスクリプト・パッケージのレベルで実
行順序を指定する機能を有しています。これらを用いることで、仮想マシン間の連携の
ために行わなければならない設定や設定の依存関係・実行順を表現できますので、複
雑な設定の自動化(オーケストレーション)を実現することが可能になります。
スクリプト・パッケージには3種類の実行タイプがあります。
1つ目は「仮想システムの作成時」でデプロイのタイミング、あるいはデプロイ後のパタ
ーン・インスタンス(パターンの枠組みで管理される仮想マシン群)に対するスケール・ア
ウト時(仮想マシンに対する複製操作の実行時)に呼び出されます。
2つ目は「開始時(任意のタイミング)」で、実行者の好きなタイミングでスクリプト・パッケ
ージの実行が可能なタイプになります。特徴として、何度も好きなタイミングで実行可能
なので、運用の自動化もこのタイプを用いてパターンに組み込むことが可能です。
3つ目は「仮想システムの削除時」で、パターン・インスタンスの一部である仮想マシン
を削除した場合に呼び出されます。
このスクリプト・パッケージのユースケースについて、標準的なケースをP.16より4つご
紹介いたします。
14
スクリプト・パッケージの操作
パターン・エディターのスクリプトの項目からパートに対してドラッグ&ドロップ
[順序付け(Ordering)]よりスクリプト・パッケージの実行順を指定
スクリプト・パッケージの実行順を指定
ドラッグ&ドロップ
ドラッグ ドロップ
詳細は参考資料[4],[5]を参照
を参照
詳細は参考資料
15
必要に応じてプロパティー値を変更
© 2013 IBM Corporation
スクリプト・パッケージはPureApp上でどのように操作して利用するかをまとめました。
パターン・エディターでスクリプトを実行させたいパートにドラッグ&ドロップして、必要に
応じてプロパティー値を変更、スクリプト・パッケージの実行順を指定する操作を実施す
ることになります。詳細に関しては参考資料[3],[4]に詳しくまとめられておりますので、ご
参照ください。
15
スクリプト・パッケージの利用例(1/4): 仮想システムのデプロイ時①
利用ケース
システム個別にミドルウェアの設定変更を動的に実施したい場合
実行タイプ
仮想システムのデプロイ時: デプロイ時に1度だけ実行
実装方針
実行スクリプトにミドルウェアの設定変更ロジックを記載
他の仮想マシンのホスト名を引数にしたいときなどは環境変数を利用(補足P.59参照)
APサーバーの設定変更
サーバーの設定変更
パターン構成
IHS
WA
S
DB2(P)
WAS
OS
デプロイ
DM
DB2(B)
システム個別の設定変更
16
IHS
OS
IHS
OS
WAS
OS
WAS
OS
DM
OS
DB2
OS
DB2
OS
DBの設定変更
の設定変更
© 2013 IBM Corporation
スクリプト・パッケージのユースケースの1番目ですが、例えばパターンからデプロイさ
れる標準構成の実行基盤に対して、アプリケーションの前提条件を満たすために、アプ
リケーション・サーバーやデータベースに対してシステム個別の設定変更を行いたい、
というようなケースがあるとします。この場合、シンプルにパターンに対してカスタマイズ
を行いたいのであれば、スクリプト・パッケージでの実装がお勧めです。
実行タイプは「仮想システムのデプロイ時」を選択します。実装としては、ミドルウェア
個別に設定変更ロジックをスクリプトに組み込む流れになります。
より発展的な使い方として、例えばアプリケーション・サーバーからデータベースを同じ
パターン内で定義し、デプロイしたとして、アプリケーション・サーバーからデータベース
に対して連携設定を行いたい場合を想定します。この場合、環境によってデプロイ時に
可変するホスト名をどのように取得してアプリケーション・サーバーの設定時に利用する
か実装に悩まれるケースが発生するかと思います。スクリプト・パッケージの場合、他の
仮想マシンのホスト名等の環境情報を変数として取得することが可能になっていますの
で、その機構を使うことで実装がよりシンプルになります。詳しくは補足資料P.59をご参
照ください。
16
スクリプト・パッケージの利用例(2/4): 仮想システムのデプロイ時②
利用ケース
運用管理ツールなど軽量のミドルウェアの導入・構成
選択する実行タイプ
仮想システムのデプロイ時: デプロイ時に1度だけ実行
実装方針
実行スクリプトに運用管理ツールの導入ロジックを記載
導入バイナリーをスクリプト・パッケージに含めるかの判断の閾値は2GB
パターン構成
IHS
WA
S
DB2(P)
デプロイ
DM
DB2(B)
運用管理ツールの導入
17
IHS
運用
OS
IHS
IHS
運用
運用
OS
OS
WAS
運用
OS
DM
運用
OS
WAS
運用
OS
DB2
運用
OS
WAS
運用
OS
DB2
運用
OS
2GBを超える場合は
を超える場合は
NFSで取得を検討
で取得を検討
NFS
© 2013 IBM Corporation
2番目のユースケースとして、JP1やZabbixなどの監視エージェントをはじめとした、運
用管理系のツールなど、軽量のミドルウェアの導入を行いたいケースです。この場合に
もスクリプト・パッケージは利用可能です。
実行タイプは「仮想システムのデプロイ時」で、実装方針としては、スクリプトにそうした
ミドルウェアの導入のロジックを記入することになります。導入するミドルウェアのバイナリ
ーに関しては、スクリプトと一緒にzipアーカイブに含めてもよいですし、NFSサーバー
等のファイル・サーバーからダウンロードする実装の2種類の対応が考えられます。
ここでいう軽量とは、導入が短時間で終わるもの、あるいはzipアーカイブに含めたうえ
で2GBを超えないものを指します。スクリプト・パッケージのパッケージ制限は2GBにな
りますので、2GBを超える場合にはファイル・サーバーからダウンロードして導入する形
で実装を検討してください。また、導入が短時間で完結しないものに関しては、デプロイ
の迅速性を保証しなければならない場合には、スクリプト・パッケージでは時間がかかる
可能性があります。その場合は別の方法を検討します。詳細に関しては、P.23以降から
ご説明いたします。
17
スクリプト・パッケージの利用例(3/4): 開始時(任意のタイミング)
利用ケース
デプロイ後・構成変更後のOS・ミドルウェアの設定確認
ファイルのパーミッションのチェック・スクリプトの実行など
選択する実行タイプ
開始時(任意のタイミング): 任意のタイミングで何度でも実行可能
実装方針
実行スクリプトにファイル・オーナー / パーミッションなどの確認ロジックを記載
実行ログはPureApp上にも保管可能
上にも保管可能
実行ログは
Fix適用後の
適用後の
設定確認
を自動化
MWの設定確認
の設定確認
MW
OS
OSの設定確認
の設定確認
18
XX.Properties
オーナー: virtuser
パーミッション: -rw-r--r--
© 2013 IBM Corporation
運用の自動化・簡素化のためにスクリプト・パッケージを利用することも可能です。
例えば、定期的な保守や障害対応のために、デプロイした仮想マシンに対してフィッ
クスを適用する必要が生じたとします。フィックス適用に関して、PureAppでは緊急フィッ
クスと呼ばれます機能が提供されています。詳細に関しては後続の運用管理のセッショ
ンでもご説明いたしますが、緊急フィックスを用いることで、各仮想マシンにログインする
ことなく、WASをはじめスクリプトでフィックス適用が表現できるものであれば、独自にフ
ィックス適用の仕組みを実装し、フィックス適用を行うことが可能です。こうしたフィックス
適用に関連して、多くのプロジェクトでディレクトリー / ファイル群に対するオーナーやパ
ーミッション情報の確認も行う等、適用後問題ないことの証跡をとる必要があるかと思い
ます。その証跡をとる作業のために、仮想マシン1台1台ログインして実施するのは運用
に手間がかかるかと思います。そうした手間を削減するために、実行タイプとして「開始
時」としたスクリプト・パッケージでの運用部分の作りこみが考えられます。スクリプト・パッ
ケージとして実装すれば、PureAppのワークロード・コンソール上から運用のためのスク
リプトを任意のタイミングで実行できますし、実行ログはPureAppのコンソール上からダ
ウンロードできるようにも設定可能ですので、わざわざ仮想マシンに1台1台ログインして
の作業は不要になります。
このように、パターンに対しちょっとした運用の自動化の組み込みも、スクリプト・パッケ
ージを利用することで可能になります。
18
スクリプト・パッケージの利用例(4/4):仮想システムの削除時
利用ケース
WAS HVの自動スケーリング(Elasticityモード)実装時のスケール・イン対応
スケール・イン時に仮想マシンのログ・ファイル等を退避する仕組みが必要な場合
選択する実行タイプ
仮想マシンの削除時: 仮想マシンの削除時に1度だけ実行
実装方針
実行スクリプトにログ・ファイル等必要なファイルを転送するロジックを記載
転送方法はSCP, NFS, FTPなど運用要件に応じて変更
WAS
OS
ODR
OS
ファイル転送
WAS
OS
ODR
OS
NFS
スケール・イン
WAS
OS
削除・・・
19
仮想マシン削除時に必要なファイルを転送
ログ等
© 2013 IBM Corporation
最後に、実行タイプが「仮想システムの削除時」のスクリプト・パッケージの利用ケース
をご説明いたします。
仮想システム・パターンでWAS HVを利用する場合、Elasticityモードと呼ばれる自動
スケーリング機能を使用することが可能です。Elasticityモードを用いることで、負荷に応
じて仮想マシンを追加・削除するスケール・アウト/インを人手を介さず実施でき、負荷に
応じて常に最適なシステム・リソースでアプリケーションの実行基盤を運用していくことが
可能になります。
こうした自動スケーリング機能を利用するときの課題として、スケール・イン時に削除さ
れる仮想マシンが持つ重要な情報、特にログ・ファイルが仮想マシンと一緒に削除され
てしまい、情報が失われてしまうことが挙げられます。
ログ・ファイル等重要な情報を失わないようにするためには、スクリプトで仮想マシン削
除をトリガーにNFSサーバーなどのファイル・サーバーに転送してデータを保管する対
応を実装することが考えられますが、スクリプト・パッケージでは「仮想マシンの削除時」
のタイプでログの退避ロジックを組み込むことで対応できます。
以上のように、スクリプト・パッケージは様々なユースケースで利用できる、汎用的なカ
スタマイズ機能であることがご理解いただければと思います。
19
スクリプト・パッケージで大抵のことは実現できるが… ①
仮想マシンのハードウェア構成を変更したい要件が生じる
環境に合わせて複数のセグメントに足を出したい場合
各仮想マシンに対してサービスLANと運用LANに対する接続が必要になる、など
ミドルウェア要件上、ディスク容量がデプロイ時に不足する可能性がある場合
IHS
WA
S
各仮想マシンに
XXGBアサイン
アサイン
DB2(P)
WAS
OS
デプロイ
各マシンに対し
空きXX
必要
空き GB必要
DM
DB2(B)
IHS
OS
IHS
OS
WAS
OS
WAS
OS
DM
OS
DB2
OS
DB2
OS
運用ツール導入要件
スクリプト・パッケージだけでは
充足できない・・・
20
© 2013 IBM Corporation
スクリプト・パッケージは非常に汎用性の高いカスタマイズ機能になっていますので、
スクリプトで表現できる・自動化できる処理に関して大抵のことは実現可能です。しかし
ながら、スクリプト・パッケージでは充足できない、あるいは考慮が必要になるケースも存
在します。
例えば、パッチ管理系の運用ツールを組み込む際に仮想マシン上にテンポラリとして
ある程度のディスク領域を確保しておきたいという要件がある場合やミドルウェアの導入
のための前提としてのディスク・スペースの確保を行わなければならない場合など、仮想
マシンに対するハードウェア構成を変更したい場合は、スクリプト・パッケージでは実現
できません。
同様に、複数ネットワーク・セグメントがあり、仮想マシンが複数のネットワーク・セグメン
トに所属する必要がある場合もスクリプト・パッケージでは対応できません。
そうした仮想マシンに対するハードウェア構成の設定変更を行うための機能として、ア
ドオンと呼ばれるカスタマイズ機能が提供されています。
20
アドオン
主に仮想マシンのハードウェア構成を変更するための特殊なスクリプト
デプロイ時に実行
スクリプト・パッケージよりも先に実行、アドオン同士の実行中の指定は不可
アドオンの種類
ディスクの追加
追加する仮想ディスクをGB単位で指定
ファイル・システムをフォーマットし、指定したマウント・ポイントにマウント
ロー・ディスクの追加
仮想ディスク
追加する仮想ディスクをGB単位で指定
パーティションやフォーマット設定なしで未加工で追加
NICの追加
仮想ネットワーク・インターフェース・コントローラー(NIC) を追加
環境プロファイルとの併用でIPグループを指定
MW
OS
ユーザーの追加
ユーザー
仮想NIC
仮想
ユーザーの追加のみを実施
21
© 2013 IBM Corporation
アドオンはディスク追加など、主に仮想マシンのハードウェア構成変更を行うための機
能になります。アドオンの種類(タイプ)として、ディスク, NIC, ユーザーの3種類があり、
速やかに使えるアドオンとして、
• ディスク(ファイルシステムのフォーマット済み)の追加 (Default add disk)
• ロー・ディスク(未フォーマット)の追加 (Default raw disk)
• NICの追加 (Default add NIC)
• ユーザーの追加 (Default add user)
の4種類が提供されています。
ハードウェア構成が要件上変更になる場合は、アドオンを使用することをご認識いた
だければと思います。
21
アドオンの操作
パターン・エディターのアドオンの項目からパートに対しドラッグ&ドロップ
ドラッグ&ドロップ
ドラッグ ドロップ
必要に応じてプロパティー値を変更
22
© 2013 IBM Corporation
アドオンはPureApp上でどのように操作して利用するかをまとめました。
P.15のスクリプト・パッケージと同様、パターン・エディターでアドオンを実行させたい
パートにドラッグ&ドロップして、必要に応じてプロパティー値を変更することになります。
スクリプト・パッケージと違い、アドオンの場合は実行順序の指定は不要です。
22
スクリプト・パッケージで大抵のことは実現できるが… ②
デプロイ時に実行するスクリプトが多いとデプロイに時間がかかる
ミドルウェアの導入をスクリプトで実行すると1時間弱かかる製品もある
数が多いとデプロイに時間がかかってしまう
自動化が難しい操作に対してスクリプト・パッケージでの実装は困難
OSの細かい設定変更、GUI前提のミドルウェア
IHS
WA
S
DB2
WAS
OS
デプロイ
DM
IHS
OS
IHS
OS
WAS
OS
WAS
OS
DM
OS
DB2
OS
MW
OS
OS設定標準化対応
設定標準化対応
ミドルウェア導入要件
スクリプト・パッケージだけでは時間がかかる・・・
自動化しにくい操作はどうパターンに実装する?
23
© 2013 IBM Corporation
仮想マシンのハードウェア構成の変更はスクリプト・パッケージではなくアドオンで対応
するということをご説明いたしました。それ以外にもスクリプト・パッケージでは実現が難
しい、あるいは実装を考慮するケースがございます。
例えば、各企業のコンプライアンスに従い、OS設定の標準化対応や追加でミドルウェ
アを導入するようなケースを想定します。自動化は可能であっても、ミドルウェアによって
は導入に時間のかかるものもありますし、行うべき設定が多くなれば多くなるほど実行す
べきスクリプトの実行時間や本数が増えていくことになります。スクリプト・パッケージは基
本的にシリアルに実行されていくため、結果として規模やカスタマイズ内容によってはデ
プロイに時間がかかってしまう可能性が考えられます。
また、自動化の実装難易度が高いあるいはそもそもGUI前提のため自動化ができな
いミドルウェアの導入を行わなければならない場合は、スクリプト化が難しいということで
すので、スクリプト・パッケージでの対応は困難です。
このようにデプロイ時に設定する項目等が多く実行に時間がかかるケースや、そもそも
自動化が難しいケースに関してはスクリプト・パッケージでの対応ではなく、仮想イメー
ジの開発を検討することになります。仮想イメージに定義されている仮想マシンに必要
な設定を事前に行っておくことで、デプロイ時に設定する項目は削減できますし、事前
導入が許されるのであれば、自動化が難しい操作もデプロイ時に行わなくて済みますの
で、デプロイに対する迅速性と自動化が難しい部分の設定の省力化の実現が期待でき
ます。
23
仮想イメージの複製(Clone), 拡張(Extend), 収集(Capture)
カタログに登録されている仮想イメージのカスタマイズを行う機能
複製 (Clone)
仮想イメージの複製を行う機能
複製のオプションとして、ハードウェア構成(ディスク・サイズ)の編集が可能
rootパーティション以外のディスクが対象
拡張 (Extend)
仮想イメージが定義する仮想マシンの設定変更を実施するための機能
対象の仮想イメージを複製し、そのイメージから仮想マシンがデプロイされる
収集 (Capture)
拡張時に生成された仮想マシンから仮想イメージを生成する機能
仮想イメージのロック(編集禁止)を行うまで何度でも実施可能
MW
拡張(Extend)
OS
MW
設定変更対応
OS
MW
収集(Capture)
MW
OS
OS
MW
複製(Clone)
OS
ディスク・サイズ
も変更可能
24
OS設定変更
設定変更
© 2013 IBM Corporation
仮想イメージの開発のために、仮想イメージに対して複製(Clone), 拡張(Extend), 収
集(Capture)の3つの操作が提供されています。仮想イメージの開発の流れはこれらの
機能と絡めて下段のフローチャートで表されます。
まず、ベースとなる仮想イメージを選択します。選択した仮想イメージに対し拡張操作
を行うことで、仮想マシンが1台生成されます。その仮想マシンにログインし、手動ないし
はスクリプトを用いて設定変更を行います。そして、設定変更を行った仮想マシンをテン
プレート元として、収集操作を実施することで新しい仮想イメージができあがります。この
ように、仮想イメージの拡張⇒仮想マシンの編集⇒仮想イメージの収集の流れが仮想イ
メージの開発の流れになります。
仮想イメージには予め仮想マシンの構成が定義されていますが、例えば既に定義さ
れているディスクの拡張を行いたい要件もあるかと思います。例えばWAS HVにおいて
、稼働させるアプリケーションのプロファイル・ディレクトリー(仮想マシン上で稼働する
WASのJVMの構成が定義されているディレクトリー)のサイズを拡張したい場合は、仮
想イメージの複製操作を利用します。複製操作はベースとなる仮想イメージのコピーを
作成するだけでなく、rootパーティション以外のディスク・サイズの変更を行うことが可能
です。ディスクの拡張を行いたい場合は複製操作を利用する、ということをご認識いただ
ければと思います。
(参考
参考)
参考 Extending partition and file system sizes
http://pic.dhe.ibm.com/infocenter/psappsys/v1r0m0/index.jsp?topic=%2Fcom.ibm
.ipas.doc%2Fiwd%2Fpct_extend_fs.html
24
仮想イメージの操作
ワークロード・コンソール上 [カタログ] > [仮想イメージ] を選択
操作を行いたい仮想イメージを選択し、右上の実行したいタスクを選択
複製(Clone): 仮想イメージの複製操作を実施
拡張(Extend): 仮想イメージの拡張操作を実施
収集(Capture): 仮想イメージの収集操作を実施, 拡張操作後に操作可能
詳細な操作は参考資料[5]を参照
詳細な操作は参考資料 を参照
25
© 2013 IBM Corporation
先のページでご紹介した仮想イメージの各操作の実際の実行イメージをまとめたペー
ジになります。ワークロード・コンソール上仮想イメージのカタログ画面でベースとなるイ
メージを選択し、実施したい作業のアイコンをクリックすることで作業を行います。
詳細な操作に関しては、参考資料[5]をご参照ください。
25
仮想イメージの操作の利用例
利用ケース
導入に時間のかかる or 導入の自動化が難しいミドルウェアの事前導入の実施
ミドルウェアが仮想マシンの複製展開を許容していることが前提
実装(作業)方針
必要に応じて仮想イメージの複製操作で導入に必要なディスク・スペースを確保
状況に応じて複製ではなくストレージ・ボリュームの利用を検討 (補足資料P.65を参照)
仮想イメージの拡張操作でテンプレートとなる仮想マシンをデプロイ
ミドルウェアの導入を実施後、仮想イメージの収集を実施
MW
OS
MW
拡張(Extend)
MW
複製(Clone)
OS
必要に応じて
ディスク・サイズを変更
26
OS
MW MW
MW MW
OS
OS
収集(Capture)
追加でミドルウェアを導
入
仮想イメージによって初期化される
ディレクトリ/ファイルがあることに注意
ファイルがあることに注意
ディレクトリ
© 2013 IBM Corporation
仮想イメージの各操作のユースケースとして、導入に時間のかかる、あるいは導入の自動化が
難しいミドルウェアを事前に導入してデプロイ後の作業を省力化したい、OS設定を事前に行い
たいというケースが挙げられます。
この場合、P.24でもご説明いたしましたように、ベースとなる仮想イメージを選択し、必要によっ
て仮想イメージの複製でディスク・サイズの変更を行った後、拡張操作で仮想マシンを生成して
、追加でミドルウェアを導入するなどの作業を行い、仮想マシンに対して収集操作を行うことで
必要とする仮想イメージを作成する流れになります。W1500前提にはなりますが、もしベースと
する仮想イメージがrootパーティションのみを有するBaseイメージ(IBM OS Image for Red Hat
Linux Systems)である場合は、仮想イメージの複製ではディスクの拡張は困難ですので、ストレ
ージ・ボリュームと呼ばれる機能でディスクを追加することを検討します。詳しくは補足資料の
P.65をご参照ください。
考慮事項として、事前導入するミドルウェアが仮想化環境をサポートしているかどうか、特に仮
想マシンの複製展開を許容し、複製展開した場合に行う作業が明確になっているかどうかが挙
げられます。事前にミドルウェアを導入したとしても、環境固有の情報(ホスト名など)をミドルウェ
アの構成情報として持ってしまう場合は、導入済みの仮想イメージでデプロイを行ったとしても、
収集前の環境固有の情報がミドルウェアの構成情報に含まれているために稼働できない、とい
うケースが発生する可能性があります。したがって、事前に追加導入したいミドルウェアに対して
、複製展開時に環境固有情報を書き換える操作の必要性とその方法を事前に調査したうえで、
仮想イメージに導入するかどうかをご検討ください。
また、仮想イメージによっては、収集時に初期化されるディレクトリ/ファイルが存在します。例えば
WAS HVの場合、プロファイル・ディレクトリ(/opt/IBM/WebSphere/Profiles)は収集時に初期化
される仕様となっているため、WASの上に導入するパッケージ製品で、導入時にプロファイルが
作成されてしまう製品に関しては事前導入はできません。ベースとなる仮想イメージの仕様を確
認した上で、事前導入ができるかどうかも検討が必要になることをご認識おきください。
26
仮想イメージ開発の考慮点
① 仮想イメージの管理が煩雑になる懸念
定期的に
再開発
仮想イメージの修正
Fix
Fix
追加で何がどのバージョンで導入
されているかの判断が難しい
MW
MW
MW
MW
MW
MW
OS MW OS MW OS MW
OS MW OS MW OS MW
OS MW
OS MW OS
OS
OS
OS
OS
OS
どのようにカスタマイズしたか
の追跡が難しい
ミドルウェアの修正
運用担当者
② 再開発時のスキルセットに対する懸念
必ずしも再開発の担当者に必要
スキルが全てあるとは限らない
オペミスが心配
MW
手順書
OS
仮想イメージの再開発
運用担当者
再開発に必要な手順を細かく
文書化するのは手間がかかる
手順書の作成
前任開発者
極力運用管理を容易にしつつ、
デプロイの迅速性も確保できないか
27
© 2013 IBM Corporation
仮想イメージを開発していくことで、デプロイの迅速性や自動化の難易度を抑えることが可能
にはなりますが、開発を続けていくと、2点運用上の懸念が生じます。
1点目は「仮想イメージの管理が煩雑になる懸念」です。1つの仮想イメージに複数のミドルウ
ェアが追加で複数導入されている場合、PureAppからみて仮想イメージに対し何が導入されて
いるのかの管理が難しいです。管理する数が少なければよいですが、例えばフィックスが適用さ
れる毎に定期的に仮想イメージを開発するようなケースの場合には、管理する対象が増えてい
きますので、何がどのように導入され、カスタマイズされているかの管理が複雑化していき、運用
担当者の交代等で運用の引き継ぎも困難になる懸念が生じます。
2点目は「再開発時のスキルセットに対する懸念」で、実際に運用担当者が仮想イメージの再
開発を行うことになった時に、前任の開発者と同じスキルを有していないケースが発生しうるかと
思います。単純にミドルウェアを導入するだけであれば難しくはないかもしれませんが、カスタマ
イズが複雑化すればするほど運用担当者のスキルだけでは対応しきれなくなる可能性が高まり
ます。そのため、運用を引き継ぐためにも、前任の開発者が詳細に仮想イメージの開発手順を
文書化しておく必要があり、前任の開発者に余計な手間と時間を強いてしまうことになります。ま
た、仮に手順書があったとしても、運用担当者がそれを見て作業をしなければならないので、オ
ペミスの心配等再開発に対する不安感は払拭できず、非常に引き継ぎにくい状況が発生します
。
自動化ができない操作に関してであれば、これらの懸念に対し「仮想イメージの再開発はしな
い」など運用の仕方で回避を検討する必要があります。もし、自動化ができる操作であれば、
IBM Image Construction and Composition Tool(ICCT)を用いることで、定期的に仮想イメー
ジのメンテナンスを行いつつも仮想イメージの運用管理を容易し、なおかつデプロイの迅速性
の確保が狙えます。
27
IBM Image Construction and Composition Tool (ICCT)
OSイメージのカスタマイズをサポートするIBM ミドルウェア製品
独自のカスタム仮想イメージを作成するためのツール
ソフトウェア・バンドルという単位でスクリプトを管理
ソフトウェア・バンドルを組み合わせて様々な仮想イメージを作成可能
PureAppをはじめとし、様々な環境の仮想イメージを作成・管理が可能
ソフトウェア・バンドルの共有で各環境で同等の設定を展開
OSイメージの選択
イメージの選択
バンドルの追加
Image Creater
ESX/KVM/PowerVM
IBM SmartCloud
Provisioning
Software Specialist
SmartCloud
Enterprise
バンドルの作成
IWD
連携可能
PureApp
ベースとなる
OSイメージの選択
イメージの選択
OS Specialist
28
ICCT
© 2013 IBM Corporation
IBM Image Construction and Composition Tool (以降ICCTと略記します)は、仮想
イメージをカスタマイズし管理することに特化したIBMミドルウェア製品になります。サー
バーに導入してWeb経由で利用するカスタマイズ・ツールになります。
自動化が前提にはなりますが、仮想イメージに対するカスタマイズをソフトウェア・バン
ドルという単位で管理し、必要なソフトウェア・バンドルを仮想イメージに紐づけることで
仮想イメージのカスタマイズを行います。また、カスタマイズした仮想イメージに関して、
どのようなカスタマイズを行ったのかを管理し、必要に応じてカスタマイズ内容を追跡す
ることが可能となっています。ソフトウェア・バンドルに関しては次のページでご説明いた
します。
ICCTはPureAppに同梱された仮想イメージのカスタマイズ・管理ツールになりますが
、機能としては他の環境とも連携できます(*1)。ソフトウェア・バンドルを共有することで
PureApp外の環境においても同等の仮想イメージを作成することが可能になっていま
す。
(*1)
ICCTの導入方法として、仮想アプリケーション・パターンとして導入する方法と、モジュ
ールをPureAppからダウンロードして、サポートされるOSに手動で導入する方法の2通
りあります。前者を以後VAP版のICCT、後者をスタンドアローン版のICCTと本セッショ
ンでは表記いたします。
28
ソフトウェア・バンドル
仮想イメージのカスタマイズを行うためのスクリプト群
主にインストール / リセット / 構成タスク時に実行されるスクリプトで構成
必要に応じて軽量の導入モジュールやサブスクリプトも合わせてパッケージ可
その他導入する製品の定義や実行の前提条件などを定義
ソフトウェア・バンドルの各タスクの実行タイミング
インストール
(同期)
仮想イメージ
の選択と編集
構成
(デプロイ
デプロイ)
デプロイ
リセット
(収集)
仮想イメージの選択
とパターン作成
設定確認と微修正
MW
OS
バンドル
MW
OS
スクリプト
パッケージ
の実行
OS
リセット・タスク実行
イメージ
の同期
デプロイ
イメージ
の収集
OS
MW
OSMW
OS
構成タスク実行
29
インストール・タスク実行
© 2013 IBM Corporation
ソフトウェア・バンドルとは、仮想イメージのカスタマイズを行うためのスクリプト群です。
主にインストール / リセット / 構成タスクと呼ばれる3つのタイミングで実行されるスクリプト
とそのソフトウェア・バンドルで何を導入するのか、前提条件は何か、などの情報を規定
したメタデータで構成されています。
下の図はICCTでの仮想イメージの開発のフローを表しています。まず、開発者はベ
ースとなる仮想イメージを選択し、カスタマイズしたい内容に合わせて事前に用意したソ
フトウェア・バンドルを組み合わせます。その後で仮想イメージの同期という操作を行い
、仮想マシンがデプロイされます。その後、インストール・タスクで定義されたスクリプトが
実行されます。インストール・タスク後に開発者は生成された仮想マシンの状態を確認し
、問題がなければ収集の操作を行います。収集時にリセット・タスクが呼び出され、仮想
マシンのテンプレート化が行われる前に不要なファイルの消し込みなどを行うスクリプト
をこのタイミングで実行できます。収集完了後、新しい仮想イメージができあがり、そのイ
メージをパターンに含めてデプロイすると、仮想マシンのデプロイに合わせて構成タスク
で定義されたスクリプトが実行されます。構成タスクは確かにデプロイ時に実行されるの
で、スクリプト・パッケージで実装する場合と同様デプロイの迅速性を失わせてしまうの
ではないかと思われるかもしれません。しかしながら、スクリプト・パッケージはシリアルに
実行されるのに対し、構成タスクは複数の仮想マシンに対しそれぞれのタイミングでパラ
レルにスクリプトを実行させることが可能です。したがって、仮想マシン共通でデプロイ
時に実施すべき項目が多くある場合は、それらを構成タスクで実装することで、パラレル
に実行できる分デプロイが迅速化できます。
このようにして、先にご紹介した仮想マシンの各操作で仮想イメージを開発するよりも、
よりシステマティックに仮想イメージの開発が可能になります。
29
[Info] ソフトウェア・バンドルのサンプルは?
Integrated Service Management Libraryにサンプルが公開
https://www-304.ibm.com/software/brandcatalog/ismlibrary/search#query=ICCT
Tivoli系エージェント
系エージェント(TSM,
TEM, ITM, ILMT)
系エージェント
の導入バンドルのサンプルが公開
30
© 2013 IBM Corporation
ソフトウェア・バンドルの実装に関しては、参考資料[5]をご参照ください。
ソフトウェア・バンドルのサンプルはIntegrated Service Management Libraryに公開
されています。実際に実装を行う場合の参考としていただければと思います。特に、上
記サイトにはTivoli系のエージェントの導入・設定バンドルが公開されていますので、も
しTivoli系のエージェント類を導入しなければならない場合には、公開されているサンプ
ルをベースに、使用するバージョンでも同様の手順で導入・設定できるかを確認して開
発を進めていけば、開発期間を短縮できるかと思います。
30
ICCTでの仮想イメージの作成手順 (概要)
ICCTコンソール上 [イメージおよびバンドル] > [イメージのビルドおよび管理]を選択
ベースとなるイメージを複製し、同梱したいソフトウェア・バンドルを選択
右上の実行したいタスクのアイコンを選択し、仮想イメージをビルド
同期(Synchronize): 仮想イメージの複製操作を実施
収集(Capture): 仮想イメージの収集操作を実施
操作に応じてアイコンをクリック
収集
同期
必要に応じてパーソナリティーを定義
(パーソナリティーについてはP.76を参照)
を参照)
(パーソナリティーについては
カスタマイズ内容に応じてバンドルを追加
詳細な操作は参考資料[5]を参照
詳細な操作は参考資料 を参照
イメージの作成に複雑な手順はない
31
© 2013 IBM Corporation
このページでは、ICCT上で仮想イメージをどのような操作で開発するかを説明してい
ます。基本的には、ICCTのコンソール上仮想イメージの管理画面を開き、カスタマイズ
対象の仮想イメージに対してソフトウェア・バンドルを追加し、同期・収集アイコンを適時
クリックして実行するだけで仮想イメージを開発可能です。仮想イメージの各操作のよう
に、一旦デプロイされた仮想マシンにログインして手動で作業する必要性はありません
。手順としてシンプルに仮想イメージの開発が可能になりますので、初回こそソフトウェ
ア・バンドルを構成する手間はかかりますものの、運用を引き継いだ担当者にICCTの操
作を引き継げば、後の仮想イメージの開発はそう複雑なことをしなくても実施できます。
ゆえに、ICCTを利用すれば、仮想イメージの管理の考慮点で挙げた、スキルセットの懸
念を最小限まで緩和することができると考えます。
詳細な操作に関しては、参考資料[5]をご参照ください。
31
ICCTでの発展的な仮想イメージ実装例(1/2)
想定ケース
処理に時間がかかるミドルウェアの導入までは事前に実施
デプロイ時にフィックス・レベルを選択し、デプロイ実施可能としたい
実装の方針
ミドルウェアの導入はインストール・タスク、フィックス適用は構成タスクで実施
フィックス・レベルは構成タスク時に実行するスクリプトの引数で指定させるように実装
フィックスはNFSサーバー等に配置
構成タスク時にフィックス適用ロジックを実行
MW FIX2
OS
MW
イメージ1つで
イメージ つで
異なる環境を
作成可能
構成
OS
ソフトウェア・バンドル
の追加
OS
MW FIX1
OS
インストール&リセット
インストール リセット
環境依存のない処理まで
はインストール・タスクで実
施
FIX2
FIX1
1
NF
S
構成タスクのスクリプト
からダウンロード
フィックス毎の仮想イメージ開発
を回避するアプローチを実現
事前にフィックスを配置
32
© 2013 IBM Corporation
ICCTでは、カスタマイズ手順が自動化できるのであれば、構成タスクを利用して発展
的な仮想イメージを作成することが可能です。その例を2つご紹介いたします。
例えば、あるミドルウェアにおいて、導入に一番時間がかかるので仮想イメージには事
前に導入しておきたいが、デプロイ時にはフィックス・レベルを指定してデプロイをしたい
という要望があったとします。この場合、フィックス・レベルごとに仮想イメージを作成する
ことも案としてありますが、管理すべき仮想イメージが増加していきますので、徐々に運
用負荷が高まってしまいます。しかし、ICCTを用いて、インストール・タスク時に製品を
導入し、構成タスク時にフィックス・レベルを引数として指定してデプロイ時にNFSサー
バーなどのファイル・サーバーから指定したレベルのフィックスをダウンロードするように
実装すれば、1つの仮想イメージで複数のフィックスの仮想イメージであるかのように使
える仮想イメージを開発することが可能になり、不要に仮想イメージ数を増やすことを避
けられます。
もちろん、スクリプト・パッケージで特定のフィックス・レベルのミドルウェア環境を構成
することも考えられます。スクリプトの実行に関しては、P.29でも申し上げましたように、ス
クリプト・パッケージはシリアル、構成タスクではパラレルに実行される違いがあることを
考慮したうえで、どちらで対応するのがよいかをご検討ください。
32
ICCTでの発展的な仮想イメージ実装例(2/2)
想定ケース
仮想イメージの作成数は抑えつつ、複数の用途に応じた柔軟なイメージを作成
実装の方針
用途に応じてソフトウェア・バンドルを作成
仮想イメージに対するパーソナリティーを定義
構成タスク時に実行するソフトウェア・バンドルをグループ化
パターン・エディターで利用できるパートを1つの仮想イメージに対し複数定義
用途別にバンドルを用意
MW1
OS
用途毎に別々
のスクリプトを
実行可能
構成
OS
OS
ソフトウェア・バンドルの追加
&パーソナリティーの定義
パーソナリティーの定義
バンドルに定義された
インストール / リセットのタスクは
全て実行される点に注意
33
MW2
OS
インストール&リセット
インストール リセット
MW1
MW2
NF
S
構成タスクのスクリプト
から取得し導入
管理対象を増やさずに複数の
目的に応じたイメージ開発が可能
© 2013 IBM Corporation
次に、追加導入するミドルウェアは複数あるので、それらを導入する仮想イメージは用
意したいが、できるだけ管理する仮想イメージを減らしたいという要望があったとします。
この場合もICCTを用いて要望に合わせた仮想イメージを提供することが可能です。
仮想イメージの作成時にICCTはパーソナリティーと呼ばれる設定項目を設けていま
す。これは、複数ソフトウェア・バンドルを用いてカスタマイズする場合に、構成タスク時
に実行するバンドルを指定することができる機能になります。パーソナリティーに関して
詳細はP.76をご参照ください。
この機能を活用して、ミドルウェアの導入・設定スクリプトを構成タスクに設定し、パーソ
ナリティーで実行するスクリプトを分けることで、1つの仮想イメージで複数の仮想イメー
ジであるかのようにユーザーに見せることが可能になります。
こちらも先のページと同様スクリプト・パッケージでも実装は考えられますが、例えば導
入する製品がIBM製品であり、それぞれの仮想マシンとしてデプロイした時に適切なラ
イセンス・トラッキングを行いたい場合、スクリプト・パッケージではミドルウェアを導入す
ることができても、ライセンスのトラッキングに対する対応を行うことはできません。一方、
ICCTの場合は、定義したパーソナリティーごとにトラッキングすべきライセンス情報を仮
想イメージに埋め込むことができますので、デプロイした仮想マシン上で動くミドルウェ
アに合わせて適切にライセンス・トラッキングができるように実装が可能です。
このようにICCTを利用すれば、1つの仮想イメージで複数の使い分けを定義できるの
で、管理すべき仮想イメージを削減するアプローチが取れます。これにより、管理の煩
雑性の軽減が見込めます。
33
カスタマイズした仮想イメージの管理
ICCTの管理コンソールより開発した仮想イメージの一覧を取得可能
カスタマイズの概要を確認可能
イメージに導入されているソフトウェア・バンドルおよび製品情報のリストを表示
何が導入されるか、どのようにカスタマイズしたかのトラッキングが可能
IBM Storage Resource Adapter
が導入されることを示す
PureApp上では管理できない細かな
上では管理できない細かな
仮想イメージ情報を管理・閲覧可能
34
© 2013 IBM Corporation
こうして開発・カスタマイズした仮想イメージはICCTの管理コンソールから管理可能で
す。選択した仮想イメージの製品(products)の項目に、この仮想イメージには何が導入
されている(あるいは構成タスク時に導入される)のかが確認可能です。この例では、IBM
Storage Resource Adapterが仮想イメージに対して導入されることを表しています。
また、開発した仮想イメージに対して、ICCT上でその製品をどのソフトウェア・バンドル
で導入したかも確認できます。もし、運用担当者が初回構築時と同様の仮想イメージを
再開発しなければならない場合、開発に使用したソフトウェア・バンドルを確認可能です
ので、それに合わせて同様にバンドルを組み合わせて仮想イメージを開発をするといっ
たことも容易にできます。そのため、ICCTを用いれば、運用引き継ぎ後の仮想イメージ
の再開発に対するスキルセットの懸念は最小限に抑えること期待できます。
34
ICCTの利用に対する考慮点
ICCTでのカスタマイズ可能範囲に対する考慮
ICCTだけではパターンのカスタマイズ全てを実施することは難しい
スクリプト・パッケージ, 仮想イメージの操作が適するケースもある
(次ページ以降の比較表参照)
ICCT自身に対する運用への考慮
運用から見ればICCTは1サーバーに過ぎない
運用要件にしたがった運用を考慮する必要がある
運用要件を満たすためにPureApp外部に立てる否かの検討も必要
ソフトウェア・バンドルの管理に対する考慮
複数人で開発を進める場合、開発物に対する編集・削除には要注意
誰でもソフトウェア・バンドルの編集・削除が可能なため
バックアップをこまめに取得する、ICCTを複数立てるなどの考慮が必要
ICCTでの開発が常にベストな選択肢ではない
での開発が常にベストな選択肢ではない
運用面も考慮して必要な機能・ツールを選択
35
© 2013 IBM Corporation
このようにICCTは非常に便利な仮想イメージの開発・管理ツールではあるのですが、
利用に関する考慮点ももちろんございます。
まず、自動化できない操作に関しては、ICCTにおいてはソフトウェア・バンドルが構成
できないこととイコールです。ICCTでの仮想イメージの開発において、イメージの同期
完了後から収集の開始までの間の期間で手動でミドルウェアの導入や設定変更を実施
することは可能です。しかしながら、ICCTの管理から逸脱し他操作になりますので、仮
想イメージのカスタマイズの平準化や追跡がICCTを利用しているにも関わらず難しくな
ってしまいます。ICCTを用いる場合は、極力そうした手動でのカスタマイズは考えず、
はじめから全て手動でカスタマイズを実施する予定ならば仮想イメージの各操作で対応
するのが適切です。
また、ICCTはあくまでも1サーバーです。仮想イメージの管理がより柔軟に行える反面
、運用上管理すべきサーバーが増えることにご注意ください。
さらに、ソフトウェア・バンドルの管理に関してですが、複数人でICCTを共有して開発
を行う場合、現時点ではACL設定はICCTで設けられていないため、ICCTにログインで
きるのであれば誰の開発物であろうがロックされていない限り編集・削除できてしまいま
す。このような状況を解決するためにはICCTを人数分立てて管理を分けるなどの考慮
が必要になります。
以上のような考慮事項もあり、ICCTでの開発が常にベストな選択肢とは限りません。
要件に合わせて何をどのようにカスタマイズするのかを整理し、P.36-38に各機能・ツー
ルの比較表を参考情報として記載いたしましたので、こちらを参考に必要とする機能・ツ
ールを適時選択してカスタマイズしていくことをご検討ください。
35
[Info] スクリプト・パッケージ / 仮想イメージの複製・拡張・収集 / ICCTの比較
スクリプト・パッケージ
仮想イメージの
複製・拡張・収集
ICCT (ソフトウェア・バンドル
ソフトウェア・バンドル)
ソフトウェア・バンドル
開発の準備
カスタマイズ手順の確立
スクリプトの仕様検討
カスタマイズ手順の確立
カスタマイズ手順の確立
スクリプトの仕様検討
ICCTサーバーの構築(初回)
開発にかかる時間
変更内容に依存
スクリプト開発期間も考慮
変更内容に依存
変更内容に依存
スクリプト開発期間も考慮
ACLの設定
PureAppで設定可
PureAppで設定可
設定不可(2013年4月時点)
再利用性
パターン内のパートに
繰り返し利用可能
カスタムした内容を
繰り返す機能はない
PureAppだけでなく、ICCTが
サポートするクラウドに対し、
バンドルの再利用が可能(*1)
必要スキル
スクリプト作成
特になし
スクリプト作成, ICCT操作
実行するスクリプトに依存
本数が多いほど時間は増加
事前に加えた変更分
削減可能
実行する構成タスクの
スクリプトに依存
比較項目
開発性
デプロイの迅速性
デプロイにかかる時間
管理の容易性
開発物の管理場所
PureApp
PureApp
ICCTサーバー, PureApp
運用考慮点
導入するミドルウェアの
ライセンス管理は要考慮
仮想イメージの開発手順は
細かくドキュメント化する必要あり
運用担当もICCTスキルが必須
サーバーとしての運用も考慮
(*1) スタンドアローン版のICCTのみ
のみ
スタンドアローン版の
36
© 2013 IBM Corporation
36
[Info] スクリプト・パッケージ /仮想イメージの複製・拡張・収集 / ICCTの機能比較 (1/2)
スクリプト・パッケージ
仮想イメージの
複製・拡張・収集
ICCT (ソフトウェア・バンドル
ソフトウェア・バンドル)
ソフトウェア・バンドル
パート作成
―
×
パート数分手作業発生
○
パーソナリティ設定
ディスクの追加
―
○
ストレージ・ボリュームと併用
×
ディスクの拡張
―
○
boot領域以外変更可
×
自動化可能
―
△
拡張後に手動対応が必要
○
インストール・タスクで実装
再利用可
自動化困難
(OS再起動含む)
―
△
毎回手動対応が発生する
△
毎回手動対応が発生する
比較項目
仮想イメージのカスタマイズ
仮想イメージの拡張
仮想イメージ拡張時のOS設定
仮想イメージ拡張時の 設定
仮想イメージ拡張時のSW導入・設定
仮想イメージ拡張時の 導入・設定
37
自動化可能
―
△
拡張後に手動対応
○
インストール・タスクで実装
再利用可
自動化困難
(OS再起動含む)
―
△
毎回手動対応が発生する
△
毎回手動対応が発生する
© 2013 IBM Corporation
37
[Info]スクリプト・パッケージ/仮想イメージの複製・拡張・収集 / ICCTの機能比較 (2/2)
比較項目
スクリプト・パッケージ
仮想イメージの
複製・拡張・収集
ICCT (ソフトウェア・バンドル
ソフトウェア・バンドル)
ソフトウェア・バンドル
パターンのカスタマイズ
パターン・デプロイ時のOS設定変更
パターン・デプロイ時の 設定変更
自動化可能
○
スクリプトで実装, 再利用可
―
○
構成タスクで実装, 再利用可
自動化困難
(OS再起動含む)
×
拡張 & 収集で実装を
考慮する必要あり
―
△
インストール・タスクで実装を
考慮する必要あり
パターン・デプロイ時のSW導入・設定
パターン・デプロイ時の 導入・設定 (仮想マシン内)
自動化可能
○
スクリプトで実装, 再利用可
―
○
スクリプトで実装, 横展開可
自動化困難
(OS再起動含む)
×
拡張 & 収集で実装を
考慮する必要あり
―
△
導入タスクで実装を
考慮する必要あり
パターン・デプロイ時のSW導入・設定
パターン・デプロイ時の 導入・設定 (仮想マシン間の連携設定)
38
自動化可能
○
環境変数の活用
―
△
スクリプト実装で対応
自動化困難
×
手動での対応を検討
―
×
手動での対応を検討
© 2013 IBM Corporation
38
まとめ: 仮想システムでのパターンのカスタマイズ
仮想システムに関連するカスタマイズ機能&ツールは以下の4種類
スクリプト・パッケージ
汎用的なパターンのカスタマイズ機能
アドオン
主に仮想NICおよび仮想ディスクの追加機能を提供
仮想イメージの複製(Clone)
), 拡張(Extend)
), 収集(Capture)
)
仮想イメージの複製(
拡張(
収集(
仮想イメージのカスタマイズ機能
IBM Image Construction and Composition Tool (ICCT)
仮想イメージのカスタマイズ・ツール
カスタマイズ項目を整理して、適切な機能 or ツールを選択
開発性・デプロイの迅速性・管理の容易性も考慮して適切な機能・ツールを利用
カスタマイズが少ない場合はスクリプト・パッケージのみでの開発がシンプル
細かなカスタマイズが頻繁に必要になる場合はICCTの仕様を検討
思い通りのカスタマイズができるように
スクリプト開発スキルも強化しよう!
39
© 2013 IBM Corporation
以上、仮想システムにおけるパターンのカスタマイズについてご説明いたしました。カ
スタマイズにはスクリプト・パッケージ, アドオン, 仮想イメージの複製・拡張・収集操作,
IBM Image Construction and Composition Tool (ICCT)の4種類の機能&ツールが提
供されており、カスタマイズする項目を整理したうえで適切な機能・ツールを選択してパ
ターンのカスタマイズを行うことが重要だということをご説明いたしました。
なお、蛇足ではありますが、仮想イメージの複製・拡張・収集操作以外のカスタマイズ
機能・ツールは基本的に導入・設定手順のスクリプト化が求められます。効率よく思い通
りのパターンのカスタマイズができるようになるためにも、是非ともスクリプトの開発スキル
を磨くことを心がけていただければと思います。
39
§3. 仮想アプリケーションにおけるパターンの
カスタマイズ
40
© 2013 IBM Corporation
続きまして、仮想アプリケーションにおけるパターンのカスタマイズについてご説明い
たします。
40
仮想アプリケーション・パターン
アプリケーションの特性に着目したパターン・モデル
アプリケーションおよび非機能要件をもとにシステムを設計・構築
要件と無関係な、細かなミドルウェアの設定は極力排除されている
システム構成はPureAppにより自動的に決定
製品として推奨される / 実績のある構成が自動的に構成される
推奨・実績ある実行環境を速やかに利用できるユーザー
システム構成はユーザーには意識させない
□ アプリケーションの要件
・データベース
・ユーザー・レジストリー
・メッセージング・サービス
など
□非機能要件
・冗長性
・データ・バックアップ
・目標応答時間
など
デプロイ
実施
アプリケーションの要件に合わせてパターンを設計
管理者
詳細なシステム構成は管理者が把握
PureAppのコンソールで基本的に管理
41
© 2013 IBM Corporation
再度、仮想アプリケーション・パターンについてご説明いたします。
仮想アプリケーション・パターンはワークロード視点、すなわちアプリケーションの視点
でシステムを考えた場合に、必要なコンポーネントとアプリケーション実行環境に対する
非機能要件をもとに、システム構成を決定するアプローチのパターン・モデルです。
具体的には、必要とするシステムにはJavaのEARアプリケーションがあり、データベー
スとユーザー・レジストリーをアプリケーションとしては稼働のために必要としています、
アプリケーションを動かすノードに関しては耐障害性を保証するために冗長化します、と
いう情報をもとに、推奨かつ実績のあるEARアプリケーションの実行環境をPureAppか
判断し、速やかにユーザーに提供します。このようなパターン・モデルが仮想アプリケー
ション・パターンです。
仮想アプリケーションのパターンの裏側
OSの設定からミドルウェアの導入までをプラグインの単位で実装
42
© 2013 IBM Corporation
仮想アプリケーション・パターンは、ユーザー視点から見ると、パターンを描いて、デプ
ロイ・アイコンをクリックすればパターンに沿った環境が提供されるという挙動しか見えま
せんが、その裏側を見ると、OSの設定やミドルウェアの導入・設定などの機能レベルで
プラグインと呼ばれる単位で管理されており、ユーザーがデザインしたパターンに対し、
必要な機能に合わせて適切なプラグインをベースとする仮想イメージに組み合わせて
デプロイすることで、必要なシステム構成を生成するアプローチがとられています。
このように、仮想アプリケーション・パターンはユーザーの操作の裏側でインフラを徹底
的にコード管理し、不要な機能は実装しない、より標準化され、洗練されたシステム構
築を実施しています。
42
仮想アプリケーション・パターンの開発対象と使えるツール
仮想アプリケーション・パターンでの開発対象
プラグイン
仮想アプリケーションの実装単位
機能別に実装したい内容をJSONファイルあるいはスクリプトで記載
パターン・タイプ
プラグインの論理セット
JSONファイルで定義を記載
開発で利用できるツール
IBM Workload Plug-in Development Kit (PDK)
仮想マシンのベースとなる仮想イメージは
基本的にBaseイメージを使用するため
イメージを使用するため
基本的に
仮想イメージの開発は考慮しない
43
© 2013 IBM Corporation
仮想アプリケーション・パターンの裏側をご紹介いたしました通り、仮想アプリケーショ
ンの実装単位はプラグインになります。したがって、カスタマイズを考える場合、開発対
象はプラグイン、ないしはプラグインの論理セットを定義するパターン・タイプとなります。
これらを開発に利用できるツールとしてIBM Workload Plug-in Development Kit(PDK)
と呼ばれますツールが提供されています。
なお、仮想アプリケーションにおいても、仮想システムと同様に仮想マシンのテンプレ
ートとして仮想イメージを利用しています。仮想アプリケーションのシステム要件として、
利用する仮想イメージには指定があり(W1500の場合はIBM OS Image for Red Hat
Linux Systems V2.0, W1700の場合はIBM OS Image for AIX Systems V2.0)、必要
によってそのBaseイメージをカスタマイズすることが許容はされていますが、基本的に
は実施しないため本セッションでは仮想イメージのカスタマイズは考慮しません。
Administering default virtual images for deployments(W1500)
http://pic.dhe.ibm.com/infocenter/psappsys/v1r0m0/index.jsp?topic=%2Fcom.ibm.ipas.d
oc%2Fworkloadconsole%2Ft_mngdefaultdep.html
Administering default virtual images for deployments(W1700)
http://pic.dhe.ibm.com/infocenter/psappsys/v1r0m0/index.jsp?topic=%2Fcom.ibm.puresy
stems.appsys.1700.doc%2Fworkloadconsole%2Ft_mngdefaultdep.html
43
プラグインの標準構成
スクリプトとメタ・ファイルの集合体
metadata.json : プラグインのモデル情報を定義
operation.json : デプロイ後の操作を定義
tweak.json : デプロイ後の構成変更対象を定義
パッケージ :
OSの拡張
の拡張 / ミドルウェアの導入と構成を行うためのスクリプト群
ミドルウェアの導入と構成を行うためのスクリプト群
ノード・パートおよびパートのコレクション
ノード・パート:
主に仮想マシンに対する共通設定を実行するためのスクリプト群
OSのファイアウォール設定や管理エージェントの導入などで使用
のファイアウォール設定や管理エージェントの導入などで使用
パート:
ミドルウェアの導入・設定などを実行するためのスクリプト群
ロールの状態に応じて実行するライフサイクル・スクリプトを含む
Velocity Macroテンプレート
テンプレート :
仮想マシンの構成の雛形を定義
config.json: 所属するパターン・タイプおよびパッケージ情報を定義
例) WAS プラグインの構成
44
monitoring_ui.json:
PureApp上でモニターする項目を定義
上でモニターする項目を定義
© 2013 IBM Corporation
開発対象のプラグインですが、標準的には上記のような構成になっています。決めう
ちのディレクトリ構造で、予め用途が決まっているメタ・ファイルと実際にOSの設定を変
更したり、ミドルウェアの導入・設定を行ったりするスクリプトを含んだパッケージでプラグ
インは構成されます。
開発者は追加したい機能に応じて必要なファイルを編集し、プラグインを作成して機
能追加していく流れで開発を行うことになります。
44
仮想アプリケーションの実行の流れ(概略)
仮想アプリケーション・ビルダーでのパターン作成
パターン作成
パターンのデプロイ
Velocity Macro
テンプレート
モデル情報
metadata.json
パターン定義情報
アプリケーション・コンソールでのモニターおよび運用
カーネル・サービス
の拡張クラス config.json
変換の定義
運用
パッケージ
monitoring_ui.json
パッケージ情報
VM定義情報
定義情報
モニター
appmodel.json
operation.json
tweak.json
topology.json
設定変更
deployment.json
カーネル・サービス
によるトポロジー変換
状態を記録
プロビジョニング開始
パッケージの取得
スクリプトの実行
・・・
トポロジー変換でデプロイ
に必要な情報を構成
: プラグインとして開発が必要なもの
パターン・インスタンス
45
© 2013 IBM Corporation
この図は、先ほどのプラグインの標準構成に合わせて、各ファイルがどのようなタイミン
グで読み込まれて利用されているのかを表したものです。図の真ん中にある赤字破線
部分がプラグインを構成する要素になります。
まず、プラグインにはmetadata.jsonと呼ばれるファイルがあり、こちらに仮想アプリケ
ーション・ビルダーで設定できる項目が定義できます。ユーザーはコンソール上意識す
ることなくmetadata.jsonに規定されている情報をもとにパターンのデザインを行うことに
なります。デザインしたパターンはPureApp内部でappmodel.jsonというファイルで管理
され、こちらにユーザーが設定した定義情報が記載されます。
ユーザーがデプロイ・ボタンを押すとトポロジー変換と呼ばれるステップが入り、
appmodel.jsonをインプットとして、仮想マシンのテンプレート・ファイルであるVelocity
Macroテンプレート、パッケージの構成を規定するconfig.jsonの情報と組み合わせて
topology.json生成します。このファイルはデプロイするシステムの構成が記載されてお
り、この情報をもとにPureAppは仮想マシン群をデプロイします。トポロジー変換に関し
ては、補足資料P.84-も合わせて参照ください。
デプロイ時に各仮想マシンは、自身の構成に必要なパッケージをPureAppからダウン
ロードし、パッケージ内に規定されたスクリプトを順次実行します。すべてのスクリプトが
正常終了した段階で、ユーザーが利用可能になります。
デプロイ後は仮想アプリケーション・コンソールという画面でOSやミドルウェアの状態を
モニターできますが、そのモニターの定義はmonitoring_ui.jsonで規定されています。
また、operation.jsonやtweak.jsonが規定されていれば、定義された範囲内で仮想アプ
リケーション・コンソールからデプロイした実行環境に対し構成変更や運用操作を実行
することが可能です。
45
仮想マシンの構成はどうやって決まる?
Velocity Macroテンプレートに仮想マシンの構成情報が記載
Apache Velocity:オープンソースのJavaベースの汎用テンプレート・エンジン
テンプレートの記載通りにPureAppはデプロイを実施
必要に応じてトポロジー変換のステップでテンプレート内容を書き換え可能
{
"vm-templates": [{
仮想マシン上で稼働し、稼働状態を
"name": "${prefix}-MongoDB",
"roles": [{
管理したいものをロールとして指定
"parms": {"param01": "$attributes.mongodb_param01"},
“type”: “MongoDB”, "name": "MongoDB",
"requires": { “memory”: $memory, "disk": $config.MINIMUM_DISK, "cpu": $CPU }
}],
"packages":["MONGODB“, “ZABBIXAGENT”],
"scaling" : { "min": 1, "max": 1},
仮想マシン上で実行したいパッケージを指定
スケーリング可能な台数を指定
"storage":[{"storage-ref":"mongodb-storage","device":"¥/dev¥/sdb", "mount-point":"¥/data¥/mongodb“}]
}],
"storage-templates":[{
"parms": {"size":20, "format":"ext3", "type":"auto"},
"name":"mongodb-storage"
}]
}
仮想ディスクの追加とそのサイズを指
定
46
CPUとメモリーはデプロイ時に
とメモリーはデプロイ時に
各パッケージ / ロールに定義された
必要最小値を合算して、 決定
© 2013 IBM Corporation
プラグインからどのように仮想マシンの構成が決まるか、気になる方もおられるかと思
います。仮想マシンの構成はどのように決まるのかご説明いたします。
仮想アプリケーションにおいて、仮想マシンは基本的にVelocity Macroテンプレート(
以降VMテンプレートと略記します)と呼ばれるファイルに構成の雛形を定義しています。
項目としてはパターン全体で見たときの仮想マシンの役割を示すロール(roles)、実際に
仮想マシン上で実行するスクリプト群を示すパッケージ(packages), 生成する台数を示
すスケーリング(scaling), ディスクの追加構成を定義するストレージ(storages)などが挙
げられます。デプロイ時に動的に変えたい設定部分は変数として規定しておくことも可
能で、そうした変数部分は前ページのトポロジー変換と呼ばれる部分でデプロイに合わ
せた情報が埋め込まれる形になります。
前ページで複雑な実行フローをご紹介いたしましたが、要はユーザーがデザインした
パターンを変数として、VMテンプレートで規定された仮想マシンの構成情報に必要な
情報を埋めていく操作がトポロジー変換とよばれるステップで、できあがった仮想マシン
の定義情報をもとにPureAppは仮想マシンをデプロイするということをご理解いただけ
ればと思います。
46
IBM Workload Plug-in Development Kit (PDK)
PureAppで利用可能な仮想アプリケーション・パターンの開発支援ツール
IBM Workload Deployer (IWD), IBM SmartCloud Application Services (SCAS)でも利用可能
クライアントPCに導入して利用
Java Standard Edition (SE) 6 (32 ビット)の導入が必須
Eclipseで使用するためのパッケージを提供
汎用性の高いEclipseインターフェースと連携し、より快適にプラグインの開発が可能
新規パターンタイプの追加
PDK
・新規にパターンの作成
既存パターンタイプ
新機能の追加
・既存のパターンの機能拡張
47
© 2013 IBM Corporation
仮想アプリケーションの構成単位であるプラグインの開発を支援するツールとして、
IBM Workload Plug-in Development Kit(PDK)が提供されています。PDKは、既存の
パターンのカスタマイズにも利用できますし、仮想アプリケーションの枠組みで新規に全
てを作りこむことにも利用可能です。
このツールはICCTとは違い、クライアントPC側に導入して使用するタイプの開発ツー
ルです。EclipseのプラグインとしてPDKを利用する場合、Eclipse上でプラグインの開
発が可能になります。
47
Eclipse上でPDKが提供する機能
PDKによりディレクトリー構造が補完される
によりディレクトリー構造が補完される
適切なファイルにロジックを追加していく
48
© 2013 IBM Corporation
こちらはEclipse上でPDKを利用する場合の開発画面になります。大きく分けて4つ機
能が提供されております:
①プラグインのスケルトンの生成
②パッケージの構成の視覚的な表示
③ 主要ファイルに対する構成エディターの提供
④ プラグインのビルド
特に③の機能に関して、主要ファイルについてコーディング内容に関して文法チェック
を行う機能も提供されていますので、開発時に非常に役立ちます。
この4つの機能を駆使し、カスタマイズ内容に合わせてプラグイン内の適切なファイル
にロジックを追加していく流れで、PDKでのプラグイン開発を行うことになります。
48
どのような場合にPDKで開発する?
基本的にあらゆるものを開発可能
仮想システムと同様のパターンのプロビジョニング
但し、全ての手順を自動化できることが条件
ミドルウェアのモニタリング
ミドルウェア個別にPureApp上でモニターしたい項目を定義可能
自動スケーリングの実装
CPU使用率など基本的なOS状態や自作したモニター項目をベースに実装可能
複数のスケーリング条件を指定可能
AND条件あるいはOR条件でスケーリング条件を連結
デリバリー・レベルでは主に以下の要件がある場合に開発を検討
企業標準の運用管理ツールを各仮想マシンに導入したい場合
ログ運用をより充実させたい場合
ログのローテーションやスケール・インのタイミングでのログ退避、など
49
© 2013 IBM Corporation
このPDKに関して、どのような場合にPDKで開発を行いますか?という問いを何度か
受けたことがあります。
まず、PDKでどこまで実現できるのかに関してですが、導入・設定作業の自動化が前
提にはなりますが、基本的にあらゆるものをPDKから開発することが可能です。実装に
かける期間や工数を気にしなくてよいのであれば、仮想システムと同様のパターンのプ
ロビジョニングも可能かとは思いますし、モニタリング項目の追加、向き不向きはあるに
せよ、ミドルウェアの種類を問わず自動スケーリングを実装することが可能です。
ほぼ何でも実装はできますが、実際の現場レベルでは監視エージェントなどの運用管
理ツールを導入したい場合や自動スケール・イン時のログのバックアップなどログ運用
をより充実させたいときに開発を検討する程度になるかと思います。
49
仮想アプリケーションのカスタマイズ指針と考慮事項(1/2)
必要なものを整理し、必要なものから順々に開発していくことを徹底
ステップ・バイ・ステップでPDKに慣れつつ、開発するのがお勧め
アプリケーション開発と同様、すべてを理解してからの開発は十分な期間がかかる恐れがある
カスタマイズの内容に合わせて必要な分だけ理解し、開発していくのが工数削減のポイント
定期的にベースとするパターンの機能を見直すことを忘れずに
リリース毎に徐々に機能が拡充されている
既存パターンの拡張を考慮する場合、機能の重複カスタマイズにならないように調査を実施
機能A~
の追加
機能 ~Dの追加
が最終目標
追加機能 D
追加機能 B
追加機能 B
追加機能 A
追加機能 A
追加機能 A
提供機能
提供機能
提供機能
パターン提供者
50
機能C追加
機能 追加
1.0.0.0
1.0.0.1
1.0.0.2
リリース1
リリース
リリース2
リリース
リリース3
リリース
© 2013 IBM Corporation
本セッションではプラグインの細かい実装の考慮事項には踏み入りませんが、仮想ア
プリケーション全体としてのカスタマイズ指針と考慮点をご説明いたします。
まず、プラグインのカスタマイズを行う場合には、「必要なものを整理し、必要なものか
ら順々に開発していく」ことを徹底してください。通常のjavaアプリケーションの開発にお
いても、Javaの全てを知っている方はそうはおらず、機能の開発を行う場合にJavaDoc
などを見て少しずつ必要な情報・スキルを集めて開発を行っていく流れになるかと思い
ます。プラグインの開発に関しても同様で、最初からプラグインについてすべてを理解し
開発を行うのは難しく、実際にそれを行うと大幅に時間を費やしてしまう恐れがあります
。したがって、プラグイン開発もアプリケーション開発と同様、何を実装すればよいのか
をきちんと精査したうえで、ステップ・バイ・ステップでPDKに慣れつつ開発を進めていく
のが適切な開発アプローチかと考えます。
また、ベースとなるパターンに関して定期的に機能の確認を行い、開発対象の見直し
を行うようにしてください。仮想アプリケーション・パターンはリリース・アップ時に機能拡
張が行われる場合があります。したがって、ある一時期は機能Cが実装されていない状
況であったとしても、次のリリースではl機能Cが実装されている、という状況は発生する
可能性があります。機能の重複開発を極力避けるためにも、定期的にパターンの持つ
機能を確認するように心掛けてください。
50
仮想アプリケーションのカスタマイズ指針と考慮事項(2/2)
既存のパターンをカスタマイズしたい場合はカスタマイズ方法に注意
直接パターンをカスタマイズ可能だが、何をカスタマイズしたかの管理が難しくなる
カスタマイズを誤ると、ユーザーに予期しない影響を与えてしまう
お勧めはカスタマイズ用にパターン・タイプを作成し、既存パターンを拡張するアプローチ
わざとパターン・タイプを設けることで、何をカスタマイズのために追加したかが明確になる
拡張対象のパターンには直接影響を与えない
{
新規にパターン・タイプを作成
・・・
し、
"patterntypes": {
そちらにプライマリで所属
"primary": {
“PatternB": "1.0"
},
"linked": {
カスタマイズしたい
“PatternA": “1.0"
パターン・タイプにリン
}
ク
},
・・・
}
config.json抜粋
抜粋
“PatternB": “1.0"
“PatternA": “1.0"
PatternBから見れば、
から見れば、PatternA
から見れば、
のプラグインも利用できる
プラグイン単位でconfig.json
プラグイン単位で
の”patterntypes”に所属を記載
に所属を記載
51
© 2013 IBM Corporation
また、実際に既存のパターンをベースにカスタマイズを行う場合には、カスタマイズの
方法に注意が必要です。直接対象のパターンに対してカスタマイズを行うことは可能で
すが、何をカスタマイズしたかの区別や管理が難しくなりますし、カスタマイズを誤ると、
既存のパターンを利用されている方に予期せぬ影響を与えてしまう可能性があります。
こうした既存のパターンを直接カスタマイズすることによるリスクを回避するためには、
カスタマイズ用にパターン・タイプを設け、既存のパターンを拡張するアプローチをとる
のがお勧めです。わざとパターン・タイプを設けることで、既存パターンとは別にプラグイ
ンが管理されることになりますので、何を追加したのかは新しく設けたパターン・タイプを
見ればよく、管理は複雑になりません。また、この方法であれば既存のパターンには直
接変更を加えることはないので、既存のパターンに影響を与えることはありません。
このように、既存のパターンをカスタマイズしたい場合には、直接カスタマイズするので
はなく、新規にパターン・タイプを設けて既存のパターンを拡張するアプローチをとるこ
とをご検討ください。
51
§4. まとめ
52
© 2013 IBM Corporation
本セッションのまとめになります。
52
本セッションのまとめ
パターンのカスタマイズ負荷の削減の鉄則は「カスタマイズは最小限に」
何でも無理に開発しようとせず、何が必要なのかをきちんと吟味
繰り返し利用できるものを先にカスタマイズするのがお勧め
パターンのカスタマイズに利用する機能および基本的なユースケースの紹介
仮想システム・パターンで利用できる機能&ツール
PureAppが提供する機能
スクリプト・パッケージ
アドオン
仮想イメージの複製(Clone), 拡張(Extend), 収集(Capture)
仮想イメージ開発の支援ツール
IBM Image Construction and Composition Tool (ICCT)
仮想アプリケーション・パターンで利用できる開発支援ツール
IBM Workload Plug-in Development Kit (PDK)
カスタマイズのために
スクリプト開発スキルも
あわせて磨きましょう!!
あわせて磨きましょう
機能&ツールを駆使し
機能 ツールを駆使し,
ツールを駆使し お客様に合わせた最適なパターンを提供していきましょう!!
お客様に合わせた最適なパターンを提供していきましょう
53
© 2013 IBM Corporation
本セッションはパターンのカスタマイズにフォーカスを当てたセッションでした。
パターンでのシステム構築の理想は「ありのままの構成を使っていくこと」ですが、パタ
ーン化されたシステム構成は基本的にあらゆるお客様の基盤として当てはめやすいよう
に汎化された構成なので、カスタマイズのポイントが生じてしまう可能性があります。ただ
、運用担当者やアプリケーション担当者の要求するカスタマイズ要件をそのまま実装す
ることを考えるのではなく、「カスタマイズは最小限に」を心がけてパターンに向き合って
ください。そのためにも何でも無理に開発しようとはしないで、何が必要な機能なのかを
きちんと吟味すること、横展開でのカスタマイズ負荷の削減を狙い、繰り返し利用できる
ものを先にカスタマイズすることを常に意識していただければと思います。
実際にカスタマイズする項目を吟味した前提で、本セッションにおいてはパターン・モ
デル別にカスタマイズで利用できる機能&ツールと基本的なユースケースをご紹介いた
しました。基本的にパターンのカスタマイズは自動化が前提であり、スクリプトによる機能
開発が求められます。スクリプト開発スキルは日々磨いていくように心掛けてください。
機能&ツールを駆使して、お客様に合わせた最適なパターンを作って提供していきまし
ょう!!
53
参考資料
[1] IBM PureApplication System W1500 / W700 Information Center
http://pic.dhe.ibm.com/infocenter/psappsys/v1r0m0/index.jsp
[2] IBM Workload Deployer V3.1 Information Center
http://publib.boulder.ibm.com/infocenter/worlodep/v3r1m0/index.jsp
[3] ワークロード・パターンによる革新的インフラ構築 セミナー資料
http://www.ibm.com/developerworks/jp/websphere/library/wca/work_pattern_seminar/
[4] IBM PureApplication System ハンズオン・セミナー資料
http://www.ibm.com/developerworks/jp/websphere/library/pureapp/pureapp_handson/
[5] IBM PureApplication Systemにおける仮想イメージのカスタマイズ方法
http://www.ibm.com/developerworks/jp/websphere/library/pureapp/pattern_customize/
[6] IBM Workload Deployerは非IBM製品にも対応 ~Image Construction and Composition Tool
によるカスタム仮想イメージ作成のヒントとベスト・プラクティス~
http://www.ibm.com/developerworks/jp/websphere/library/wca/icct_white/
[7] IBM Image Construction and Composition Toolガイド
http://www.ibm.com/developerworks/jp/websphere/library/wca/icon_tool_guide/
[8] developerWorks - 仮想システム・パターンを設計する
http://www.ibm.com/developerworks/jp/cloud/library/cl-puresystem-vspdesign/index.html
54
© 2013 IBM Corporation
54
補足資料
55
© 2013 IBM Corporation
55
IBM PureSystems Centre
自分でパターンを作るのではなく、登録されているアプリケーションやパターンを
検索し、必要なものを購入するアプローチも可能
www.ibm.com/software/brandcatalog/puresyste
ms/centre/
IBMと認定済みパートナー様による専門知識の
幅広いコミュニティへのアクセスを提供するWeb
サイト
200以上のダウンロードによる提供に最適化され
た、IBM PureSystemsに対応したISVアプリケー
ションを掲載
ソリューションエリア、インダストリー、またはシス
テムによる検索を提供
Partner契約することで、開発したパターンを登
録・販売することも可能
56
© 2013 IBM Corporation
ソリューションカタログである「IBM PureSystems Centre」に200以上のISVアプリケー
ションが登録されています。登録されているアプリケーションやパターンを利用することも
できますし、皆さんが作成されたアプリケーションやパターンを登録・販売することも可能
です。
「IBM PureSystems Centre」は、PureAppのTOP画面からハイパーリンクされています。
www.ibm.com/software/brandcatalog/puresystems/centre/
56
スクリプト・パッケージ関連の補足資料
57
© 2013 IBM Corporation
57
スクリプト・パッケージ固有の実装(1/3): cbscript.json
description
{{
"description":
"description": "This
"This is
is aa test
test script
script package",
package",
"version":
"version": "1.0.0",
"1.0.0",
"command":
"command": "/bin/sh
"/bin/sh /tmp/Test/test.sh",
/tmp/Test/test.sh",
"location":
"location": "/tmp/Test",
"/tmp/Test",
"log":
"log": "/tmp/Test/trace.out",
"/tmp/Test/trace.out",
"timeout":
"timeout": "0",
"0",
"commandargs":
"commandargs": "-arg01
"-arg01 ${param01}
${param01} -arg02
-arg02 ${param02}
${param02} -arg03
-arg03 ${param03}",
${param03}",
"keys":[
"keys":[
{{
"scriptkey":
"scriptkey": "param01",
"param01",
"scriptvalue":
"scriptvalue": "",
"",
"scriptdefaultvalue":
"scriptdefaultvalue": "Input
"Input string
string value",
value",
"locked":
"locked": "T“
"T“
},{
},{
"scriptkey":
"scriptkey": "param02",
"param02",
"scriptvalue":
"scriptvalue": "",
"",
"scriptdefaultvalue":
"scriptdefaultvalue": "Input
"Input string
string value",
value",
"locked":
"F“
"locked": "F“
},{
},{
"scriptkey":
"scriptkey": "param03",
"param03",
"scriptvalue":
"scriptvalue": "",
"",
"scriptdefaultvalue":
"scriptdefaultvalue": "Input
"Input your
your password",
password",
"type":
"password",
"type": "password",
"locked":
"T“
"locked": "T“
}}
]]
表記の仕方は決めうちなので
パッケージの概要を記載
version
パッケージのバージョンを記載
特にIWD/PSMで使用しない
command
実行コマンドを指定
location
パッケージの展開場所を指定
log
ログの出力先を指定
ディレクトリか、ファイルで指定
timeout
実行タイムアウト値を指定
0はタイムアウトなしを示す
commandargs
実行コマンドの引数を指定
keys
ユーザー定義の変数
パターン作成時やデプロイ時に
コンソールから値を入力可能
}}
容易に作成可能
58
© 2013 IBM Corporation
58
スクリプト・パッケージ固有の実装(2/3): 仮想マシン間の連携
デプロイ時に決まる環境情報(ホスト名等)を変数として指定可能
例 ) WAS側で
側でDB2のホスト名を変数にスクリプトを実行したい場合
のホスト名を変数にスクリプトを実行したい場合
側で
パターン・ビルダー画面
2
プロパティーの設定
スクリプト・パッケージの
編集アイコンをクリック
1
${part-name.property-name}で指
で指
定
パート名の取得
part-name =
DB2_ESE
パートの編集アイコン
をクリック
59
予約されたプロパティー値
(環境変数)を有効に活用
© 2013 IBM Corporation
59
[参考] スクリプト・パッケージで利用できる環境変数
事前に決められた環境変数名を指定することで、デプロイ時の値を取得可能
Hypervisor Editionにより固有の環境変数が存在
指定できる環境変数の一覧は以下のリンクを参照
http://pic.dhe.ibm.com/infocenter/psappsys/v1r0m0/index.jsp?topic=%2Fcom.ibm.ipas.doc%2Fiwd%2Fpcr_envivari.html
WebShere Application Server Hypervisor Editionで指定できる環境変数一覧(抜粋)
で指定できる環境変数一覧(抜粋)
60
サービス名
環境変数名
デフォルト値
WebSphere Cell Name
CELL_NAME
CloudBurstCell
WebSphere Default Profile location
WAS_PROFILE_ROOT
/opt/IBM/WebSphere/Profiles/DefaultAppSrv01
WebSphere Install Root
WAS_INSTALL_ROOT
/opt/IBM/WebSphere/AppServer
WebSphere Profile Root
PROFILE_ROOT
/opt/IBM/WebSphere/Profiles
WebSphere Hostname
HOSTNAME
WebSphere Node Name
NODE_NAME
CloudBurstNode
WebSphere Profile Name
PROFILE_NAME
DefaultAppSrv01
WebSphere Administrative
Password
WAS_PASSWORD
Password
WebSphere Administrative
Username
WAS_USERNAME
Virtuser
© 2013 IBM Corporation
60
スクリプト・パッケージ固有の実装(3/3):オーダー(実行順)
パターン・ビルダー上でスクリプト・パッケージのオーダー(実行順)を変更可能
実行タイプが「仮想システムの作成時」に該当するもののみ
スクリプト・パッケージはオーダー順にシリアルに実行
上から順に実行
時間がかかるスクリプトが多い場合は要注意
61
© 2013 IBM Corporation
61
スクリプト・パッケージの開発の流れ
Step1. 実行したいスクリプトの作成
*.sh
■ 実際に実行したいスクリプトの作成を実施
Step2. cbscript.jsonの作成
の作成
cbscript.json
■ 実行するスクリプトの実行条件を記載
Step3. zipファイルにパッケージング
ファイルにパッケージング
と実行スクリプト、関連ファイルをまとめてzipファイルに格納
■ cbscript.jsonと実行スクリプト、関連ファイルをまとめて
と実行スクリプト、関連ファイルをまとめて ファイルに格納
*.zip
Step4. スクリプト・パッケージの定義
■ ワークロード・コンソール上でスクリプト・パッケージを定義
Step5. zipファイルのアップロード
ファイルのアップロード
■ 作成したzipファイルをアップロード
作成した ファイルをアップロード
Step6. 実行タイプの選択
■ スクリプト・パッケージの実行タイプ3種類から選択
スクリプト・パッケージの実行タイプ 種類から選択
62
cbscript.jsonの作成が
の作成が
スクリプト・パッケージ固有
© 2013 IBM Corporation
62
スクリプト・パッケージでの実装の考慮点
パッケージ(zipファイル)の最大サイズは2GBまで
パッケージに導入モジュールを含める場合は2GB以内に収める
2GBを超えるファイルが必要な場合、NFSサーバーなどに配置することを検討
スクリプト・パッケージの実行スクリプトの正常終了の際の戻り値は0
それ以外の戻り値はエラーと判断されるため注意
スクリプト・パッケージはrootユーザーで実行される
別ユーザーで実行する必要のあるものはsuコマンドを利用して実行させる
例) su - virtuser -c <実行スクリプト名>
シェル・スクリプトを書くときは、改行コードをLFにする
Windows標準のCR+LFではエラーになるため、注意
スクリプト・パッケージ間でcbscript.jsonのkeyプロパティーを重複させない
重複があるとどちらかの値で上書きされてしまうので、ネーミング・ルールに注意
63
© 2013 IBM Corporation
63
仮想イメージの操作関連の補足資料
64
© 2013 IBM Corporation
64
(参考) 事前にミドルウェアを導入したいが…
導入したいミドルウェアの要件上ディスクが不足する場合は考慮が必要
仮想イメージの複製で実質的に拡張が難しいパーティションが存在
rootパーティション
特にBase OSイメージはrootパーティションのみ有する
デプロイ時に必要な分だけディスクのアドオンで追加できるため、デフォルトのディスク
サイズは少ない
仮想イメージの拡張操作時にディスクのアドオンは利用できない
Base OSイメージからの一時デプロイ時にディスク追加の機会が与えられない
Base OSイメージ
イメージ
導入できない
拡張(Extend)
OS
MW
OS
MW
収集(Capture)
OS
OS
容量不足・・・
ディスク容量不足でミドルウェア
の追加導入ができない・・・
65
© 2013 IBM Corporation
65
(参考)ストレージ・ボリューム
デプロイした仮想マシンに対し、追加可能な仮想ディスク・ストレージ
仮想マシンに対し、ディスク容量が不足した際に使用
クラウド・グループ単位でストレージ・ボリュームを作成
設定可能なサイズは 1~1800000MB(≒1.7TB)
他のマシンに付け替え可能
1度にアサインできるのは1仮想マシンのみ
作成時に指定したクラウド・グループに属する仮想マシンにのみアサイン可能
クラウド・グループA
クラウド・グループ
クラウド・グループB
クラウド・グループ
アサイン不可
66
ストレージ・ボリューム
アサインの
切り替え可
アサイン
MW
MW
MW
OS
OS
OS
© 2013 IBM Corporation
ストレージ・ボリュームについて、W1500では拡張操作は取れませんが、W1700であれ
ば拡張操作が可能です。
Expanding volume groups and file system size - IBM PureScale Application
System 1.0
http://pic.dhe.ibm.com/infocenter/psappsys/v1r0m0/index.jsp?topic=%2Fcom.ibm
.puresystems.appsys.1700.doc%2Fsystemconsole%2Ft_expandstoragevolume.h
tml
66
(参考)ストレージ・ボリュームの利用ケース
Case1. デプロイした仮想マシンのファイルシステムが逼迫
追加でミドルウェアの導入が必要になった場合
アプリケーション用、ログ用の領域に十分な容量がない場合 etc..
Case2. 仮想イメージのハードウェア定義に仮想ディスクを追加
事前に仮想イメージの定義する仮想マシンにミドルウェアを追加したい場合
特にrootパーティションしかもたないBase OSイメージのディスク拡張に利用可能
ストレージ・ボリューム
Base OS イメージ
20GB
拡張(Extend)
OS
容量が足りない・・・
MW
MW
収集(Capture)
OS
OS
OS
12GB
67
追加
新しい仮想イメージ
12GB
20GB
12GB 20GB
12GB
追加した仮想ディスク
にMWを導入
を導入
© 2013 IBM Corporation
67
ICCT関連の補足資料
68
© 2013 IBM Corporation
68
ソフトウェア・バンドル設定メニュー一覧(1/6)
General (一般)
バンドル名/バージョン, バンドル作成者, 導入する製品名を指定
69
© 2013 IBM Corporation
69
ソフトウェア・バンドル設定メニュー一覧(2/6)
Requirements (要件)
OS前提条件, 前提となるソフトウェア / バンドル を指定
70
© 2013 IBM Corporation
70
ソフトウェア・バンドル設定メニュー一覧(3/6)
Install (インストール)
インストール・タスク時に実行するスクリプト等ファイルのアップロード
および 実行コマンドを指定
71
© 2013 IBM Corporation
71
ソフトウェア・バンドル設定メニュー一覧(4/6)
Configuration (構成)
構成タスク時に実行するスクリプト等ファイルのアップロード
および実行コマンド・実行の依存関係を指定
72
© 2013 IBM Corporation
72
ソフトウェア・バンドル設定メニュー一覧(5/6)
Firewall (ファイアウォール)
デプロイ時に開放するポートを指定
73
© 2013 IBM Corporation
73
ソフトウェア・バンドル設定メニュー一覧(6/6)
Reset (リセット)
リセット・タスク時に実行するスクリプト等ファイルのアップロード
および 実行コマンドを指定
74
© 2013 IBM Corporation
74
ICCTでの開発の流れ
Step1. 実行したいスクリプトの作成
*.sh
■ インストール / リセット / 構成タスク時に実行するスクリプトを作成
Step2. ソフトウェア・バンドルのビルド
■ ICCTコンソール上でソフトウェア・バンドルの定義を作成し、設定作業を実施
コンソール上でソフトウェア・バンドルの定義を作成し、設定作業を実施
Step3. 仮想イメージの選択と編集
■ 拡張したい仮想イメージを選択し、使用するバンドルの選択など、イメージ編集作業を実施
Step4. 仮想イメージの同期処理(Synchronize)
)
仮想イメージの同期処理(
■ 仮想イメージの同期処理を実施し、生成した仮想マシンに対しインストール・タスクを実行
Step5. 仮想イメージの収集処理(Capture)
)
仮想イメージの収集処理(
■ 生成した仮想マシンに対して、リセット・タスクを実行し、仮想イメージ化
Step6. 拡張したイメージを用いてパターンの作成・デプロイ
■ デプロイ時に構成タスクを実行
75
具体的な手順は
参考資料[5]を参照
参考資料 を参照
© 2013 IBM Corporation
75
パーソナリティー
仮想システムで利用するパートを作成するための機能
1つの仮想イメージで複数の目的の仮想マシンを定義可能
目的別に複数仮想イメージを作成することを回避し、管理対象の削減を実現
MW1の導入・設定
の導入・設定
MW1
MW2の導入・設定
の導入・設定
OS
MW1のパートとしてデプロイ
のパートとしてデプロイ
OS
MW2
MW2のパートとしてデプロイ
のパートとしてデプロイ
OS
ユーザーにはMW1のイメージと
のイメージと
ユーザーには
MW2のイメージがあるように表示
のイメージがあるように表示
76
© 2013 IBM Corporation
76
パーソナリティーの設定(1/3)
追加したいソフトウェア・バンドルが登録されていることを確認
[パーソナリティーの追加]をクリック
参考資料[5]
の間で
参考資料 P.60-61の間で
パーソナリティーを定義
77
© 2013 IBM Corporation
77
パーソナリティーの設定(2/3)
必要情報、利用したいソフトウェア・バンドルを選択
パーソナリティー名(=パート名
パーソナリティー名 パート名)を指定
パート名 を指定
パートの数量設定
の可否を定義
使用するバンドルを選択
[追加
追加]をクリック
追加 をクリック
78
© 2013 IBM Corporation
78
パーソナリティーの設定(3/3)
パーソナリティーが追加されていることを確認
必要に応じて他のパーソナリティーを定義
パーソナリティー間で使用するソフトウェア・バンドルが重複しても問題ない
キーは仮想イメージに対し一意になるように定義する必要があることに注意
79
© 2013 IBM Corporation
79
インスタンス・カウントの意味
パターン・エディター時に使用できるパートの表示形式が変更される
インスタンス・カウントの選択を使用可能に設定
パターンエディター時に数量を変更可能にする
動的インスタンス・カウントを使用可能に設定
「インスタンスカウントの選択を使用可能に設定」が設定されていることが前提
デプロイ後に特定のパートに対する仮想マシン台数の変更を可能にする
80
© 2013 IBM Corporation
80
PDK関連の補足資料
81
© 2013 IBM Corporation
81
PDKを利用する上での必須スキルは?
プラグイン開発に慣れるまで意識する必要のあるスキル
Javaスキル
デプロイに必要なハードウェア情報、パッケージ情報などを決められたフォーマットに書
き換えるために必要なスキル
JSON ArrayやJSONオブジェクトの生成・変換をコーディング
OSGiについても理解が必要
Apache Velocity
Javaベースのオープンソースの汎用テンプレート・エンジン
パターンの実装において実質的に必要なスキル
Python
実際にミドルウェアを導入・設定するためのスクリプトの作成のために必要
実装したい対象・機能に対する知識
ミドルウェアの導入・設定など、プラグインの開発に必要なスキルが必要
パターンを開発する人とミドルウェア固有の導入・設定を開発する人を明確に分けて開発するのがお勧め
82
© 2013 IBM Corporation
82
PDKでのパターン・カスタマイズの標準的な流れ
Step1. パターンの開発方針の検討
■ 新規にパターンを開発するのか、既存のパターンのカスタマイズかを選択
Step2. パターン・タイプの開発(存在しない場合に開発)
■作成する予定のプラグインが所属するパターン・タイプを作成
Step3. プラグインの開発
■ 作成・カスタマイズしたいパターンに必要なプラグインを作成
Step3-1:プラグイン構成の定義
:プラグイン構成の定義
Step3-3:
: ノード・パート/パートの作成
ノード・パート パートの作成
Step3-2:カーネル・サービスの定義
:カーネル・サービスの定義
Step3-4:運用機能の定義
:運用機能の定義
Step4. ビルドおよび実機へのアップロード
■ 開発したプラグイン/パターン・タイプをビルドし、
開発したプラグイン パターン・タイプをビルドし、 実機にアップロード
Step5. パターンのデプロイおよび動作確認
参考資料[3]を参照
参考資料 を参照
■開発したプラグイン / パターン・タイプをもとにデプロイを実施し、動作確認
83
© 2013 IBM Corporation
83
カーネル・サービスによるトポロジー変換とは (1/3)
アプリケーション定義情報からデプロイメントに必要な情報を生成するための
変換サービス
仮想アプリケーション・ビルダー画面
appmodel.json
{
"model": {
"name": "AUTOSCALING TEST1",
"nodes": [
{
"attributes": {
"archive": "artifacts/sample.war",
"ignoreFailedIfix": true
},
"id": "Web Application",
"type": "WAR",
"groups": {}
},
・・・
"links": [
{
"source": "Extra Storage",
"target": "Web Application",
"attributes": {},
"type": "ADDSTORAGE",
"id": "ADDSTORAGE_1",
"groups": {}
仮想アプリケーション・ビルダーで作
成したパターンはappmodel.jsonとし
とし
成したパターンは
て保管されている
appmodel.jsonだけではデプロイは困難
だけではデプロイは困難
デプロイに必要な情報を埋めていく必要がある
84
}
],
・・・
}
© 2013 IBM Corporation
84
カーネル・サービスによるトポロジー変換とは(2/3)
appmodel.jsonからデプロイに必要な情報をカーネル・サービスが入力
appmodel.jsonからtopology.jsonが生成され、デプロイ可能な状況になる
topology.json
appmodel.json
ストレージ情報やスケー
リング条件などデプロイ
に必要な情報が記載
カーネル・サービス
によるトポロジー変換
85
© 2013 IBM Corporation
85
カーネル・サービスによるトポロジー変換とは(3/3)
topology.jsonから生成するインスタンスの情報をカーネル・サービスで生成
環境情報や稼働状況を管理するためのdeployment.jsonが生成される
deployment.json(抜粋)
(抜粋)
topology.json
カーネル・サービス
によるトポロジー変換
デプロイ
WAS
RHEL
インスタンスの構成と状態
とdeployment.jsonとで
とで
定期的に同期が行われる
生成されたインスタンス
86
© 2013 IBM Corporation
86
トポロジー変換の詳細なステップとカスタマイズ・ポイント
デプロイメント・ステップ(DS)
デプロイメント・ステップ
appmodel.json
V
transform
*.vm
トポロジー断片
merge
カスタマイズ・ポイント(カーネル・サービスのサービス・タイプ)
TopologyProvider
■ コンポーネント / ポリシー / リンクをトポロジー断片に変換
テンプレート(*.vm)を利用する場合は
)を利用する場合は
■ Velocity Macroテンプレート(
テンプレート(
TemplateTransformerを指定(デフォルト)
を指定(デフォルト)
TopologyProcessor
未解決トポロジー
■ マージした未解決トポロジーを書き換え
config.json
resolve
ServiceProvisioner
解決済みトポロジー
■ 共有サービスとの連携に必要な情報をトポロジーに挿入
provision
topology.json
deploy
deployment.json
87
PostProvisioner
■ topology.jsonおよび
およびdeployment.jsonを確認
を確認
および
カスタマイズ要件に応じてどこを
カスタマイズするかを選択© 2013 IBM Corporation
87
デプロイ時のスクリプトの実行の流れ(1/2)
0config.sh + アクティベーション・スクリプトの実行
:作りこみ不要
:ノード・パート利用時
必ず作成
□ トポロジー・ドキュメント(topology.json)の解析
の解析
トポロジー・ドキュメント
”packages”に指定されているノード・パートを特定
に指定されているノード・パートを特定
:ノード・パート利用時
必要あれば作成
□ 導入されるノード・パート(.tgz)のダウンロードと展開
のダウンロードと展開
導入されるノード・パート
setup/setup.pyの実行
の実行
setup/setup.pyの実行
の実行
setup/setup.pyの実行
の実行
□ 導入されるノード・パートの数だけ実行
common/install/
{N}_{name}.pyの実行
の実行
0_{name}.py
スロット0
スロット
9_{name}.py
・・・
スロット9
スロット
□ 存在する場合、スロット番号順に実行
common/start/
{N}_{name}.pyの実行
の実行
0_{name}.py
スロット0
スロット
8_{name}.py
・・・
スロット8
スロット
□ 存在する場合、スロット番号順に実行
ワークロード・エージェント起動 (common/start/9_agent.sh)
88
© 2013 IBM Corporation
88
デプロイ時のスクリプトの実行の流れ(2/2)
ワークロード・エージェント起動 (common/start/9_agent.sh)
:作りこみ不要
:パート利用時
必ず作成
□ トポロジー・ドキュメント(topology.json)の解析
の解析
トポロジー・ドキュメント
”packages”に指定されているパートを特定
に指定されているパートを特定
:パート利用時
必要あれば作成
□ パート(.tgz)のダウンロードと展開
のダウンロードと展開 (昇順)
パート
setup/setup.pyの実行
の実行
setup/setup.pyの実行
の実行
install.pyの実行
の実行
□ ダウンロード&展開された順に実行
ダウンロード 展開された順に実行
□ ロール別にライフサイクル・スクリプトを実行
scripts/{role}/install.pyの実行
の実行
scripts/{role}/configure.pyの実行
の実行
scripts/{role}/{dep}/install.pyの実行
の実行
scripts/{role}/{dep}/install.pyの実行
の実行
scripts/{role}/{dep}/configure.pyの実行
の実行
scripts/{role}/{dep}/configure.pyの実行
の実行
scripts/{role}/start.pyの実行
の実行
scripts/{role}/{dep}/changed.pyの実行
の実行
scripts/{role}/{dep}/changed.pyの実行
の実行
※ {role}と
と{dep}の状態が
の状態が”RUNNING”の場合に実行
の場合に実行
の状態が
{role}: ロール名,
ロール名 {dep}: 依存ロール名
89
{dep}がロールの拡張の場合は実行されない
}がロールの拡張の場合は実行されない
© 2013 IBM Corporation
89
Fly UP