Successfully reported this slideshow.
Open Programmable
Infrastructure Environment

JobSchedulerでCD(継続的デリバリ)	
2013/12/13	

	

日本JobSchedulerユーザーグループ	

@satoruf
自己紹介	
l 

船井 覚(ふない さとる)

l 

OSSラボ株式会社 代表取締役
日本JobSchedulerユーザーグループ
日本openQRMユーザーグループ	
その他、Hadoop、XtreemFS、Ceph, Fabric ...
継続的デリバリとは	
l 

継続的にソフトウェアを改善
し、顧客の価値を増大させる

l 

リリース頻度を高くし、開発
リリースサイクルを短縮する

l 

開発 テスト デプロイを可
能な限り自動化する

のことではない
2013/...
システム運用の目的	
l 

サービスの継続的提供
ビジネスに価値のあるサービスを、
l  より素早く
⇨計画 リリースの期間を短く	
l  欠陥を減らし
⇨性能低下、障害発生の防止
l  効率を改善し
⇨サポートコストの削減
継続的に...
リリース作業の現状	

1ヶ月 半年
	
運用手順書による手作業が前提
	
2013/12/13	

OSC .Enterprise 2013	

5
手作業の運用の問題	
l 

撲滅できない操作ミス
l 
l 
l 

l 

原因不明の障害
l 
l 
l 

l 

l 

端末操作、手順書読み上げ、作業確認の3人体制
長時間にわたる操作の緊張と重圧

リリースサイ...
CDはシステム運用にも有効	
l 

継続的デリバリーの実現
l 
l 

l 

リリースの多頻度化により、リリースのリスクを低減
ビジネスサイクルの高速化に適応

構築
l 

l 

AWS等のクラウドサービスから、オンプレミ...
CDの位置づけ	
開発サイクルの高速化	

テスト	

運用サイクルの自動化	

リカバ
リ	

要件定
義	
継続的
	
インテ
グレーション
	

コーディ
ング	

ジョブ
管理	
運用
	
サイクル
	

検知	

設計	

監視	

...
構成管理及びリリース管理の成熟度モデル
「継続的デリバリー  信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化」

David Farley (著), Jez Humble (著), 和智 右桂 (翻訳), 高木 正...
概念アーキテクチャ
運用ポータル	
イベントモニタ
	
ジョブモニタ
	
リソースモニタ
	
チケットモニタ
	
カレンダ
	
ニュース
	
メール
	

CMDB
	

サービスデスク/
	
構成管理/変更管理
	

プロジェクト管理
	

...
Redmine
Git/svn
OTRS
	
Nagios
Zabbix
	

運用管理自動化基盤構成スタック	

コマンド自動実行
	
アプリケーション構成
	
ネットワーク管理
	
初期設定/構成管理
	
OSインストール
	
資源管理
(...
JobSchedulerの特長	
l 

オープンソース(GNU Public License)
l 
l 
l 

l 

プログラマブル
l 
l 

l 

l 

ドイツのSoftware- und Organisat...
JobSchedulerのユーザ	

ドイツ
eBankやカード決済サービス会社	

イギリス
財務アプリケーションのプロバイダ	

オーストリア
(イタリアの)大手金融グループ	

ドイツ
大学図書館	
アメリカノースカロライナ州
保健福祉サ...
JobSchedulerの概要 - 機能 l 
l 
l 
l 
l 
l 
l 
l 
l 
l 

ジョブ定義
ジョブ実行(時間指定/繰り返し)
スケジュール
多重実行・排他制御
先行・後続制御
優先度設定
イベント監視...
アーキテクチャ	
JobSchedulerはC++とJavaで開発されており、以下のコンポーネントで構成される。	
l 
JobScheduler Engine	
l 

l 

JobScheduler Agent
l 

l 

...
JOC

JOE

JID

2013/12/13

OSC .Enterprise 2013

16
JobSchedulerのジョブ	
•  Standalone Job
Job Chain
Standalone Job

Order Job
Order Job

–  単体で稼動するジョブを定義

•  Job Chain
–  複数ジョブ...
定義ファイル例(XML)	
Order Job ⇒ order_job.job.xml
Standalone Job ⇒ simple.job.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<j...
ジョブ定義例(スクリプト)
•  Java ※class定義などを省略し、簡単化しています	
// print my hostname
spooler_log.info(‘Hello World. I run at ' + spooler.ho...
WEB API
# curl 'http://localhost:4444/<start_job%20job="sos/dailyschedule/CreateDaysSchedule
"%20/>'
<?xml version="1.0" e...
コマンド実行デプロイ:Fabric	
l 
l 
l 
l 

l 

Fabric は、Python 製のデプロイ・コマンド実行ツール。	
類似のツールとして Ruby 製の Capistrano がある。	
sshを使用した、エー...
サービスデスク:OTRS	
l OTRS

(Open-source Ticket Request
System)は、ドイツのOTRS AG社が開
発しているオープンソース(APGPL V3)
のサービスデスクシステム	
l ヘルプデスク管...
クラウド自動化基盤:openQRM	

ユーザ
ポータル	

クラウド管理
ダッシュボード	

OSイン
ストール	

プロビジョ
ニング	
• 
• 
• 
• 
• 
• 

ベアメタル
VMware
KVM
Xen
LXC
OpenVZ
...
openQRMシステム概要	

クラウド
	
管理者
	
コンソール
	
ユーザ
	
管理者
	
コンソール
	

プラグイン・マネージャ
	

openQRMサーバ
	
DHCP
	
DNS
	

PXE ブート
構成情報取得	

PXE
	...
AWSインテグレーション	
l 
l 
l 

openQRMコンソールから、EC2/S3の操作が可能
AMIとローカルイメージのインポート/エキスポート
Nagios/Puppet等と併用でインスタンス設定も自動化	

2013/12/...
運用管理機能	
Zabbix監視システム
連携	

i-doit構成管理システム
連携(エンタープライズ版)	
2013/12/13	

OSC .Enterprise 2013

26
LinuxCOE+Puppet/Ansibleで全自動セットアップ	
l 

LinuxCOE
l 

HP社が開発したOSSのLinux OS自動インストール/設定シス
テム
l 

l 

http://linuxcoe.sourc...
Fabricと組み合わせてCD	

チケット管理
構成管理/変更管理
工程管理	

ソースコード管理	
バージョン管理

Fabric
ジョブ制御
パラメータ制御
エラー制御
スケジューリング	
2013/12/13

クラウドコントローラ
ロ...
構築作業の流れ	
サービス管理者	

作業担当者	

作業依頼受領	
OTRS構成管理確認
チケット作成	

Svn/gitリポジトリから最新版入手、修正	
Fabric(設定内容の投入、設定確認)
JobScheduler(エラー制御)	
開...
構成例	
チケット管理
構成管理
開発
デバッグ/テスト
リリース/監視
スケジューリング	

管理サーバ	

リポジトリ

ssh	

サービスデスク/構成管理:
OTRS
ソースコード管理:svn/git
デプロイツール:Fabric
ジョ...
CDの効果	
l 

リリースサイクルの短縮
プロビジョニ
ング	

OSインス
トール	

各種	
設定	

アプリインス
トール	

テスト	

運用引渡	

プロビ OSイ 各種	
アプリ
運用
ジョニ ンス
インス テスト	
引渡	
...
日本JobSchedulerユーザーグループ
l 
l 
l 

2013/4発足
JobSchedulerいけるやん、という人の集まり
独SOSサイトにも掲載

“Company News : Japanese language Job...
活動内容	
l  グループサイトの運営
https://sites.google.com/site/jobschedulerja/home
l 

Wiki, tips, ドキュメントを掲載

l  Facebookページ
http://...
@IT記事 絶賛連載中!!	

2013/12/13

OSC .Enterprise 2013

34
最後に	
l 

Please join us!!

https://groups.google.com/forum/?
fromgroups#!forum/jobscheduler-ja

2013/12/13

OSC .Enterpri...
ご清聴ありがとうございました
Upcoming SlideShare
Loading in …5
×

JobSchedulerでCD(継続的デリバリ)

17,024 views

Published on

2013/12/13 OSC .Enterpriseでのセミナー資料

Published in: Technology
  • Be the first to comment

JobSchedulerでCD(継続的デリバリ)

  1. 1. Open Programmable Infrastructure Environment JobSchedulerでCD(継続的デリバリ) 2013/12/13 日本JobSchedulerユーザーグループ @satoruf
  2. 2. 自己紹介 l  船井 覚(ふない さとる) l  OSSラボ株式会社 代表取締役 日本JobSchedulerユーザーグループ 日本openQRMユーザーグループ その他、Hadoop、XtreemFS、Ceph, Fabric etc.を企 業向けに提供 l  l  l  2013/12/13 OSC .Enterprise 2013 2
  3. 3. 継続的デリバリとは l  継続的にソフトウェアを改善 し、顧客の価値を増大させる l  リリース頻度を高くし、開発 リリースサイクルを短縮する l  開発 テスト デプロイを可 能な限り自動化する のことではない 2013/12/13 OSC .Enterprise 2013 3
  4. 4. システム運用の目的 l  サービスの継続的提供 ビジネスに価値のあるサービスを、 l  より素早く ⇨計画 リリースの期間を短く l  欠陥を減らし ⇨性能低下、障害発生の防止 l  効率を改善し ⇨サポートコストの削減 継続的に提供する l  障害対応 障害発生時に l  迅速にサービスを復旧し l  再発を防止する 2013/12/13 OSC .Enterprise 2013 4
  5. 5. リリース作業の現状 1ヶ月 半年 運用手順書による手作業が前提 2013/12/13 OSC .Enterprise 2013 5
  6. 6. 手作業の運用の問題 l  撲滅できない操作ミス l  l  l  l  原因不明の障害 l  l  l  l  l  端末操作、手順書読み上げ、作業確認の3人体制 長時間にわたる操作の緊張と重圧 リリースサイクルの長期化 l  l  l  開発環境、検証環境、本番環境が微妙に異なる(ライブラリやOS設定) 環境によって操作手順が異なる そもそも手作業なので、再現が困難 非効率、非人間的な作業 l  l  タイプミス 手順書のタイポ エラー時のロールバック手順不備 変更が適用されるまでに、次の変更要求が滞留 変更頻度が少ないため、変更箇所が増え、変更のリスクが増大 環境の複雑化への対応が困難 l  l  2013/12/13 仮想化、クラウド化によってシステム環境が複雑化し、動的な変更/変化が発生 それに伴い作業手順も複雑化し、メンテナンスが困難に OSC .Enterprise 2013 6
  7. 7. CDはシステム運用にも有効 l  継続的デリバリーの実現 l  l  l  リリースの多頻度化により、リリースのリスクを低減 ビジネスサイクルの高速化に適応 構築 l  l  AWS等のクラウドサービスから、オンプレミスの既存物理サーバまで一元管理 リソースの最適化 l  l  人に依存しない標準化、品質向上 広域分散環境に対応 l  l  コスト低減、ミスの削減、期間短縮 運用管理の集中化 l  l  実装 サービス稼働までプログラム化 目的に応じて最適なプラットフォームにアプリケーションを移動 DR/BCPへ対応 l  2013/12/13 DR/BCPの自動化 OSC .Enterprise 2013 7
  8. 8. CDの位置づけ 開発サイクルの高速化 テスト 運用サイクルの自動化 リカバ リ 要件定 義 継続的 インテ グレーション コーディ ング ジョブ 管理 運用 サイクル 検知 設計 監視 運用引き継ぎの自動化 バージョン管理 構成管理 自動デプロイ 自動テスト 2013/12/13 OSC .Enterprise 2013 •  •  •  •  全てプログラム化 どの環境でも同じ手順 何度実行しても同じ結果を再現 作業結果をログに保存 8
  9. 9. 構成管理及びリリース管理の成熟度モデル 「継続的デリバリー  信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化」
 David Farley (著), Jez Humble (著), 和智 右桂 (翻訳), 高木 正弘 (翻訳) アスキー・メディアワークス (2012/3/14)   レベル -1 レベル 0 レベル 1 レベル 2 レベル 3 リグレッションエラー多発:
 プロセスは繰返せず管理も 貧弱、そして対症療法を行っ ている。 繰返し可能:
 プロセスは文書化され、一部 は自動化されている。 一貫している:
 自動化されたプロセスが、ア プリケーションのライフサイク ル全体に適用されている。 定量的な管理:
 プロセスが計測可能で制御さ れている。 最適化:
 プロセスの改善に注力する。 ソフトウェアのビルド手順が 手動である。成果物やビルド 結果の管理をしていない。 普段のビルドやテストを自動 化している。全てのビルドは ソース管理システムを使って 自動化された手順で再現で きる。 自動ビルドと自動テストのサ イクルを、変更がコミットされ るたびに実行する。依存関係 を管理する。スクリプトやツー ルを再利用する。 ビルドメトリクスを収集して可 視化し、それに基づいて作業 する。ビルドを壊れたままに しない。 チームで定期的に話し合い の場を持ち、統合時の問題 やその自動化による解決、素 早いフィードバック、そしてよ り良い可視化について議論 する。 ソフトウェアのデプロイ手順 が手動である。バイナリが環 境に依存する。環境の配布 が手動である。 一部の環境ではデプロイを自 動化している。新しい環境を 手軽に作成できる。全ての構 成情報を外に出してバージョ ン管理する。 ソフトウェアのデプロイは完 全に自動化され、ボタンを押 すだけで完結する。全ての環 境に対して同じ手順でデプロ イする。 統合したデプロイ管理、リ リースやリリース取消の手順 もテストしている。 全ての環境がうまく管理され ている。プロビジョニングは完 全に自動化、仮想化を適切 に活用する。 リリース頻度が低く、しかも信 頼できない。 面倒で頻度も低く、信頼でき ないリリース、リリース要件に 関するトレーサビリティも限定 的。 変更管理とその承認プロセス が定義され、それを守ってい る。規約を遵守している。 環境はアプリケーションの健 康状態を監視し、能動的に管 理している。サイクルタイムを 監視している。 運用チームとデリバリーチー ムが協力し、リスク管理やサ イクルタイム削減を行う。 開発をした後に手作業でのテ ストを実施する。 ストーリーの開発の一環とし て自動テストを書く。 ユニットテストや受入テストを 自動化する。受入テストはテ スターが書く。テストが開発プ ロセスに組み込まれている。 品質のメトリクスとその傾向 を追跡する。非機能要件を定 義し、計測する。 本番環境への変更の取消は 滅多に発生しない。問題があ ればすぐに見つかり、すぐに 修正される。 データ管理 データのマイグレーションは バージョン管理されておらず、 手作業で操作する。 データベースへの変更は自 動化したスクリプトで行い、ス クリプトはアプリケーションと 共にバージョン管理する。 データベースの変更はデプロ イメントプロセスの一環として 自動的に行う。 データベースの更新やロー ルバックはデプロイの度にテ ストされる。データベースの パフォーマンスを監視、最適 化する。 リリースのたびに、データ ベースのパフォーマンスやデ プロイメントプロセス自体につ いてのフィードバックを得る。 構成管理 バージョン管理システムを 使っていない、あるいは使っ ていても滅短チェックインしな い。 バージョン管理システムを 使って、ソフトウェアの作成に 必要な物を全て管理する。 ソースコードや設定ファイル、 ビルドやデプロイ用スクリプト、 データのマイグレーション等。 ライブラリや依存関係を管理 する。バージョン管理システ ムの利用ポリシーは、変更管 理プロセスで定義する。 開発者は、少なくとも1日1度 はメインラインにチェックイン する。ブランチはリリース作業 のときだけ使う。 変更管理のポリシーを常に 検証し、効率的な共同作業 や素早いデプロイができてい るかを確かめる。また、変更 管理プロセスの可監査性も チェックする。 プラクティス ビルド管理及 び継続的イン テグレーション 環境及びデプ ロイメント リリース管理及 びコンプライア ンス テスト 2013/12/13 OSC .Enterprise 2013 9
  10. 10. 概念アーキテクチャ 運用ポータル イベントモニタ ジョブモニタ リソースモニタ チケットモニタ カレンダ ニュース メール CMDB サービスデスク/ 構成管理/変更管理 プロジェクト管理 作業依頼 チケット作成 障害通知 コード 作成/修正 ソースコード管理 監視/アラート オーケストレーシ ョンレイヤ イメージ置場 結果登録 レポジトリ 2013/12/13 OSC .Enterprise 2013 テスト デバッグ リリース クラウドAPI デプロイツール ジョブ管理 クラウド プロバイダ リソース 10
  11. 11. Redmine Git/svn OTRS Nagios Zabbix 運用管理自動化基盤構成スタック コマンド自動実行 アプリケーション構成 ネットワーク管理 初期設定/構成管理 OSインストール 資源管理 (クラウド/VM/実機) 2013/12/13 JobScheduler アプリケーション フレームワーク 監視 サービスデスク/工程管理/リポジトリ ジョブ管理 OSC .Enterprise 2013 Fabric Puppet Ansible openvswith openQRM Cobbler LinuxCOE Clonezilla 11
  12. 12. JobSchedulerの特長 l  オープンソース(GNU Public License) l  l  l  l  プログラマブル l  l  l  l  ドイツのSoftware- und Organisations-Service社 製 Linux/Windows版は、全ての機能が無料で使用可能。 サポートライセンスを購入すれば、HP-UX/Solaris/AIX版の利用に加えて、障害対応、バグ フィックス/ワークアラウンドの提供、新機能の早期提供、チケットシステム(OTRS)、JIRAの 利用が提供される。 ジョブ定義は全てXML形式のテキストファイル ジョブの中で、Java, Perl, JavaScript, VBScript, Powershell, javax.scriptの内部APIを使っ たロジックを記述可能 外部API(XML形式)によりRESTまたはコマンドラインからジョブの実行制御、実行状況の取 得が可能 エンタープライズ・グレード l  ファイル転送やログローテンション等豊富なテンプレート機能 l  リモートジョブ実行、冗長化機能、ロードバランス、外部認証等、エンタープライズ向け大規模 システム対応 JasperReport(ジョブ実行レポート)やNagios(ジョブ実行監視)との連携機能 MySQLの他、Oracle, DB2, MS SQL Server, PostgreSQL, Firebirdに対応 l  l  2013/12/13 OSC .Enterprise 2013 12
  13. 13. JobSchedulerのユーザ ドイツ eBankやカード決済サービス会社 イギリス 財務アプリケーションのプロバイダ オーストリア (イタリアの)大手金融グループ ドイツ 大学図書館 アメリカノースカロライナ州 保健福祉サービス機関 ヨーロッパを中心に金融・産業・政府・大学 などの様々な機関で使用されている 2013/12/13 OSC .Enterprise 2013 13
  14. 14. JobSchedulerの概要 - 機能 l  l  l  l  l  l  l  l  l  l  ジョブ定義 ジョブ実行(時間指定/繰り返し) スケジュール 多重実行・排他制御 先行・後続制御 優先度設定 イベント監視 メール通知 外部パラメータ設定 開始/終了遅延検知 •  •  •  •  •  •  クライアント / サーバ バックアップクラスタ 負荷分散クラスタ SOAP/RESTの外部API 独自の内部API Javascript / Perl / Java / Shell Script / Powershell / VBScript / javax.scriptでのジョ ブ定義 高度なジョブ管理機能 Devの使い慣れた言語でのJob定義 2013/12/13 OSC .Enterprise 2013 14
  15. 15. アーキテクチャ JobSchedulerはC++とJavaで開発されており、以下のコンポーネントで構成される。 l  JobScheduler Engine l  l  JobScheduler Agent l  l  ジョブ定義を作成するための、Javaで稼働するスタンドアロンアプリケーション。 JID (JobScheduler Information Dashboard) l  l  WEB UIのジョブ管理画面 JOE (JobScheduler Object Editor) l  l  ジョブのリモート実行エージェント JOC (Job Operation Center) l  l  ジョブの制御と管理を司るサービス。以下の機能を包含する。 l  バックアップフェイルオーバー機能 l  RDBMSを使用したジョブ履歴、ログ管理機能(JDBC接続) 待機中、実行中、完了したジョブの状態、ログを一覧できるJavaで稼働するスタンドアロンアプリケーション。 JITL (JobScheduler Integrated Template Library) l  ファイル転送やログローテンション等、予め含まれるテンプレート。以下のものが用意されている。 l  Logging and Cleanup l  Sanity Checking l  Mail Forwarding l  Remote Job Execution l  File Transfer l  File Operations (rename, copy, remove, check existence, ...) 2013/12/13 OSC .Enterprise 2013 15
  16. 16. JOC JOE JID 2013/12/13 OSC .Enterprise 2013 16
  17. 17. JobSchedulerのジョブ •  Standalone Job Job Chain Standalone Job Order Job Order Job –  単体で稼動するジョブを定義 •  Job Chain –  複数ジョブに対して順序関係を考慮して 組み合わせるジョブ(order job)を定義 •  Schedule –  ジョブの稼動予定を定義 Schedule •  ジョブ定義はshellscript, windows bat以 外にJava,JavaScript,VBScript, javax.scriptで定義可能 •  JobSchedulerの特徴 –  ジョブ関連の全ての定義がXMLファイルで管理 –  様々な操作を行うジョブがSOS社から提供されている •  ファイル操作、ファイル転送、DB制御、SQL操作、エージェントレス実行、 メール制御、レポーティング機能 などなど 2013/12/13 OSC .Enterprise 2013 17
  18. 18. 定義ファイル例(XML) Order Job ⇒ order_job.job.xml Standalone Job ⇒ simple.job.xml <?xml version="1.0" encoding="ISO-8859-1"?> <job order="yes" stop_on_error="no"> <?xml version="1.0" encoding="ISO-8859-1"?> <job name=“simple"> <script language="shell"> <script language="shell"> <![CDATA[ <![CDATA[ echo $SCHEDULER_JOB_NAME echo $SCHEDULER_JOB_NAME ]]> ]]> </script> </script> <run_time/> <run_time schedule="my_schedule" /> </job> </job> Job Chain ⇒ my_job_chain.job_chain.xml <?xml version="1.0" encoding="ISO-8859-1"?> <job_chain orders_recoverable="yes" visible="yes"> <job_chain_node state="test" job=“order_job"/> </job_chain> Schedule ⇒ my_schedule.schedule.xml 2013/12/13 <?xml version="1.0" encoding="ISO-8859-1"?> <schedule > <period single_start="10:00"/> </schedule> 18 OSC .Enterprise 2013
  19. 19. ジョブ定義例(スクリプト) •  Java ※class定義などを省略し、簡単化しています // print my hostname spooler_log.info(‘Hello World. I run at ' + spooler.hostname()); // kick next job spooler.job(‘path/to/kicked').start(); •  Perl # print my hostname $spooler_log->info(' Hello World. I run at ' . $spooler->hostname); # kick next job $spooler->job('path/to/kicked')->start(); •  JavaScript // print my hostname spooler_log.info(‘Hello World. I run at ' + spooler.hostname); // kick next job spooler.job(‘path/to/kicked').start(); 2013/12/13 OSC .Enterprise 2013 19
  20. 20. WEB API # curl 'http://localhost:4444/<start_job%20job="sos/dailyschedule/CreateDaysSchedule "%20/>' <?xml version="1.0" encoding="ISO-8859-1"?> <spooler> <answer time="2013-07-08 17:51:19.202"> <ok> <task job="/sos/dailyschedule/CreateDaysSchedule" id="27" task="27" state="none" name="" enqueued="2013-07-08 17:51:19.211" start_at="2013-07-08 17:51:19.203" steps="0" log_file="/home/scheduler/sos-berlin.com/jobscheduler/ scheduler/logs/scheduler-2013-07-08-161409.scheduler.log" force_start="yes"> <log level="info"/> </task> </ok> </answer> </spooler> PHPのライブラリがSOSより提供 ⇒プログラムからジョブ制御が可能 2013/12/13 OSC .Enterprise 2013 20
  21. 21. コマンド実行デプロイ:Fabric l  l  l  l  l  Fabric は、Python 製のデプロイ・コマンド実行ツール。 類似のツールとして Ruby 製の Capistrano がある。 sshを使用した、エージェントレス型のツール 最大の特長は、シェルスクリプトとしてまとめていたコマンドをそのまま run() メソッドや sudo() メソッドで囲むだけで使うことができ、複数ホストに対して同時に実行や複数コ マンドを順番に実行が可能。 Linux環境確認のスクリプト例 2013/12/13 from  fabric.api  import  env,  task,  run     from  envassert  import  file,  process,  package,  user,  group,  port,  cron,  detect,  service     def  check():        print('1:MySQL  Process  Check')        if  process.is_up('mysqld'):              print('    MySQL  Runningn')        else:              print('    Not  MySQL  Runningn')                print('2:NTP  Process  Check')        if  process.is_up('ntpd'):              print('    NTP  Runningn')        else:              print('    Not  NTP  Runningn')          print('3:SELinux  Check')              selinux=run('getenforce')        if  selinux  ==  'Disabled':              print('SELinux  Disablen')        else:              print('SELinux  Enablen’)   OSC .Enterprise 2013 21
  22. 22. サービスデスク:OTRS l OTRS (Open-source Ticket Request System)は、ドイツのOTRS AG社が開 発しているオープンソース(APGPL V3) のサービスデスクシステム l ヘルプデスク管理機能(OTRS Help Desk)とITIL(v3)に対応した運用管理 機能(OTRS ITSM)にわかれている l OTRSヘルプデスクでは、顧客からの問 い合わせを電話やメールなどで受信す るインバウンド業務と、その問い合わせ などを返答したり、顧客に連絡事項を通 知したりするアウトバウンド業務におい て、トラブルチケットの発行、配信、回答、 管理、保管といった顧客対応の一連の 流れを管理する機能が備わっている l OTRS ITSMとしては、インシデント管理、 問題管理、変更管理、要求実現、サー ビス資産管理・構成管理、ナレッジ管理 がある l 利用可能言語が32もあり、全世界で 165万ダウンロード、11万以上のインス トール実績がある 2013/12/13 OSC .Enterprise 2013 22
  23. 23. クラウド自動化基盤:openQRM ユーザ ポータル クラウド管理 ダッシュボード OSイン ストール プロビジョ ニング •  •  •  •  •  •  ベアメタル VMware KVM Xen LXC OpenVZ •  •  •  •  各種 設定 •  Kickstart •  preseed LinuxCOE Cobbler Clonezilla FAI, OPSI オンプレミス (物理・仮想マシン) •  Puppet •  Ansible •  •  •  •  2013/12/13 ユーザ管理 課金管理 •  •  •  •  Live Migration イメージインポート/エキスポート LCMC Pacemaker, Corosync, Heartbeat, DRBD •  OpenLDAP パブリッククラウドサービス (仮想マシン) 移行 API API VMware, KVM, Xen, etc. システム イメージ 移行 HA/DR ZABBIX Nagios/Icinga Collectd idoit プライベートクラウド (仮想マシン) 移行 IPMI 運用 監視 アプリイン ストール システム イメージ OSC .Enterprise 2013 AMI 23
  24. 24. openQRMシステム概要 クラウド 管理者 コンソール ユーザ 管理者 コンソール プラグイン・マネージャ openQRMサーバ DHCP DNS PXE ブート 構成情報取得 PXE その他 プラグイン API サーバイメージ ダウンロード tftpd, SAN Local, 他 Linux Solaris Windows 仮想化環境 VMware, Xen, KVM, lxc, OpenVZ Linux Solaris Windows 物理環境 Intel/AMD x64アーキテクチャ サーバイメージ・ストレージ NFS SAN サーバイメージ変換 REST API Enterprise Cloud クラウド・サービス iSCSI 2013/12/13 Gluster FS他 OSC .Enterprise 2013 24
  25. 25. AWSインテグレーション l  l  l  openQRMコンソールから、EC2/S3の操作が可能 AMIとローカルイメージのインポート/エキスポート Nagios/Puppet等と併用でインスタンス設定も自動化 2013/12/13 OSC .Enterprise 2013 25
  26. 26. 運用管理機能 Zabbix監視システム 連携 i-doit構成管理システム 連携(エンタープライズ版) 2013/12/13 OSC .Enterprise 2013 26
  27. 27. LinuxCOE+Puppet/Ansibleで全自動セットアップ l  LinuxCOE l  HP社が開発したOSSのLinux OS自動インストール/設定シス テム l  l  http://linuxcoe.sourceforge.net/ openQRMとの連携の仕組み 1.  openQRM上でイメージ作成時に、LinuxCOEのプロファイルを 選択 2.  アプライアンスを起動すると、LinuxCOEからtftpブートされる 3.  LinuxCOEでのインストール/基本設定完了後、openQRM サーバから再起動 4.  起動時にPuppet/Ansibleのマニフェストが実行される 2013/12/13 OSC .Enterprise 2013 27
  28. 28. Fabricと組み合わせてCD チケット管理 構成管理/変更管理 工程管理 ソースコード管理 バージョン管理 Fabric ジョブ制御 パラメータ制御 エラー制御 スケジューリング 2013/12/13 クラウドコントローラ ログイン API インスタンス作成 コマンド発行 OSインストール/設定 アプリケーションインストー ル/設定 データアップロード アプリケーション実行 実行結果ダウンロード インスタンスシャットダウン OSC .Enterprise 2013 28
  29. 29. 構築作業の流れ サービス管理者 作業担当者 作業依頼受領 OTRS構成管理確認 チケット作成 Svn/gitリポジトリから最新版入手、修正 Fabric(設定内容の投入、設定確認) JobScheduler(エラー制御) 開発環境でテスト/コミット OTRSコードレビュー/承認 OTRS作業スケジュール調整 JobScheduler作業スケジュール設定 OTRS構成管理更新 チケットクローズ 2013/12/13 JobScheduler作業実施/ログ確認 openQRMでVM作成、OSインス トール、アプリケーション設定まで自 動実行 OSC .Enterprise 2013 29
  30. 30. 構成例 チケット管理 構成管理 開発 デバッグ/テスト リリース/監視 スケジューリング 管理サーバ リポジトリ ssh サービスデスク/構成管理: OTRS ソースコード管理:svn/git デプロイツール:Fabric ジョブ管理:JobScheduler クラウド自動化:openQRM テスト デバッグ 自動リリース 開発環境 2013/12/13 自動リリース 検証環境 OSC .Enterprise 2013 本番環境 30
  31. 31. CDの効果 l  リリースサイクルの短縮 プロビジョニ ング OSインス トール 各種 設定 アプリインス トール テスト 運用引渡 プロビ OSイ 各種 アプリ 運用 ジョニ ンス インス テスト 引渡 ング トール 設定 トール l  l  l  オペミス撲滅による品質の向上 自動化による属人化排除 集中化によるコスト削減 リソース最適化による付加価値増大 2013/12/13 OSC .Enterprise 2013 31
  32. 32. 日本JobSchedulerユーザーグループ l  l  l  2013/4発足 JobSchedulerいけるやん、という人の集まり 独SOSサイトにも掲載 “Company News : Japanese language JobScheduler user group on Facebook” http://www.sos-berlin.com/modules/news/article.php?storyid=42 l  l  会則/会費ありません 会員資格ありません、Google Groupsに参加して下さい https://groups.google.com/forum/?fromgroups#!forum/jobscheduler-ja l  l  l  現在メンバー30名 JobSchedulerを使う上での疑問やノウハウの共有 勉強会と言う名の飲み会 2013/12/13 OSC .Enterprise 2013 32
  33. 33. 活動内容 l  グループサイトの運営 https://sites.google.com/site/jobschedulerja/home l  Wiki, tips, ドキュメントを掲載 l  Facebookページ http://ja-jp.facebook.com/pages/Jobscheduler-Japan-ユーザーグループ/ 594469610565511 l  l  l  各種告知 いいね!をお願いします!! 普及活動 l  l  July Tech Festa 2013 Open Source Conference Tokyo/Fall 2013/12/13 OSC .Enterprise 2013 33
  34. 34. @IT記事 絶賛連載中!! 2013/12/13 OSC .Enterprise 2013 34
  35. 35. 最後に l  Please join us!! https://groups.google.com/forum/? fromgroups#!forum/jobscheduler-ja 2013/12/13 OSC .Enterprise 2013 35
  36. 36. ご清聴ありがとうございました

×