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.
1
OSS ジョブ管理システムに
よる運用自動化事例
2013 年 7 月 14 日
日本 JobScheduler ユーザグループ
(代表)船井 覚( @satoruf )
井上 研一( @inoccu )
秋穂 賢( @ken_aio )
...
2
アジェンダ
• JobScheduler の概要
• JobScheduler の基本機能
• 想定シナリオのデモ
• JobScheduler 事例紹介
• 日本 JobScheduler ユーザーグループ紹介
2013/07/14 JT...
自己紹介
• 秋穂 賢(あきほ すぐる)
• 某 Sier 所属
• メインフレーム歴:4年
• OSS 歴: 5 ヶ月
• JobScheduler イケてる!と思ってる一人
3
2013/07/14 JTF2013 #techfesta
JobScheduler の概要と基本機
能
4
2013/07/14 JTF2013 #techfesta
5
JobScheduler とは
• OSS の Job 管理製品( GNU Public License )
– ドイツの Software- und Organisations-Service
製
– 2003 年に商用版・ 2005 年...
6
JobScheduler のユーザ
ドイツ
eBank やカード決済サービス会社
イギリス
財務アプリケーションのプロバイダ
オーストリア
( イタリアの ) 大手金融グループ
アメリカノースカロライナ州
保健福祉サービス機関
ヨーロッパを...
7
JobScheduler の概要 - 機能
-
• ジョブ定義
• ジョブ実行(時間指定 / 繰り
返し)
• スケジュール
• 多重実行・排他制御
• 先行・後続制御
• 優先度設定
• イベント監視
• メール通知
• 外部パラメータ設...
8
クライアント / サーバ
JOCJOC JIDJID
JobScheduler
Engine
JobScheduler
EngineRDBMSRDBMS
JobScheduler の
稼働サーバ
JOEJOE
JobScheduler の
...
JOC
JOE
JID
2013/07/14 JTF2013 #techfesta
9
10
JobScheduler のジョブ
Standalone Job
Job Chain
Schedule
• JobScheduler の特徴
– ジョブ関連の全ての定義が XML ファイルで管理
– 様々な操作を行うジョブが SOS 社か...
11
定義ファイル例( XML )
Order Job order_job.job.xml⇒
<?xml version="1.0" encoding="ISO-8859-1"?>
<job order="yes" stop_on_error=...
12
ジョブ定義例 ( スクリプト )
処理をして次のジョブをキックするジョブ
// print my hostname
spooler_log.info(‘Hello World. I run at ' + spooler.hostname(...
13
WEB API
PHP のライブラリが SOS より提供
⇒ プログラマブルにジョブ管理可能
# curl 'http://localhost:4444/<start_job%20job="sos/dailyschedule/Create...
14
ジョブ管理も CI ・ CD
JobScheduler の定義ファイルは全て XML
ジョブのプログラムやジョブ定義を
開発開発したジョブをバージョ
ン
管理システムに反映
バージョン管理システム
より
CI サーバへ取り込み
継続的にテ...
1515
デモシナリオ
• 日次のデータ処理後にデータバックアップを取得
• 日次データ処理は毎日 20:00 から稼動
• 日次のデータ処理は 5 多重で実行
– ただし、処理①と処理②は同時に稼動させない ( 排他制御 )
• バックアップ...
16
ジョブフロー
16
処理①
処理②
処理③
処理④
処理⑤
process1
process2
process3
process4
process5
バックアップ①
バックアップ②
bkup1
bkup2
• データ処理➡バックアップ
•...
1717
JobScheduler でのジョブフ
ロー
データ処理
キック Job
処理①
処理②
処理③
処理④
処理⑤
p_kick
process1
process2
process3
process4
process5
同期
バックアッ...
1818
構成の説明
データ処理
キック Job
処理①
処理②
処理③
処理④
処理⑤
p_kick
process1
process2
process3
process4
process5
同期
バックアップ
キック Job
バックアップ①...
JobScheduler 事例紹介
ここからは、 JobScheduler の日本での
導入事例をご紹介します。
2013/07/14 JTF2013 #techfesta
19
自己紹介
• 井上 研一
– Twitter :  @inoccu
– Facebook :  kenichi.inoue
• アルティザンエッジ合同会社 代表社員
CEO
– 2012 年 7 月 7 日、個人事業主として設立
– 2013 ...
導入企業
• 国内製造業 A 社
o 流通・小売業向けの各種機器を製造
o 機器導入先のエンドユーザー企業で、機器の
保守のほか、ネットワーク監視、運用監視
サービスも併せて提供している
2013/07/14 JTF2013 #techfest...
背景
• 監視システムのリプレースプロジェクト
o Nagios を監視エンジンとして使用したシステムを開
発・導入
o 2012 年 1 月開発開始、同年 9 月から本稼働
o フロントエンドは CakePHP で開発
o 監視対象ノードは現...
業務運用系の監視の特徴
• 監視内容
o 基本的にはファイル(ログ)監視
o エンドユーザー企業によって、監視の方法や
要求レベルは異なる
o ネットワーク環境等もいろいろ( ISDN や
PHS も)
o 常に 24x365 監視ではなく、土...
どう実現するか?
<いままでは>
• シェルや Perl スクリ
プトで監視
• 店舗マスタを CSV 連
携
• cron で監視実行、 at
でリトライ
• 監視結果はログファ
イルとして監視シス
テムに連携
<これからは>
• JobSc...
新システム構成
2013/07/14 JTF2013 #techfesta
25
ジョブ(ジョブチェーン)一覧
画面
2013/07/14 JTF2013 #techfesta
26
面
(基本設定)
2013/07/14 JTF2013 #techfesta
27
面
(対象ノード)
2013/07/14 JTF2013 #techfesta
28
面
(スケジュール)
2013/07/14 JTF2013 #techfesta
29
ジョブ実行履歴画面
2013/07/14 JTF2013 #techfesta
30
JobScheduler を採用したメ
リット
• 監視システムとのワンストップのフロント
エンドシステムを開発できた
o JobScheduler は API が提供されているので、フ
ロントエンドを独自に開発できる
• 既存の監視スクリプト...
今後の方向性
• すべての業務監視ジョブ・対象店舗の
JobScheduler への移行
o 現時点では、かけられる工数等の問題もあり
、すべてを移行できているわけではない
• JITL (テンプレートライブラリ)の活用
• ファイル転送での ...
機器アップグレードでの活
用
2013/07/14 JTF2013 #techfesta
33
日本 JobScheduler
ユーザーグループ( JJUG )ご
紹介
2013/07/14 JTF2013 #techfesta
34
自己紹介
• PC8001
• オフコン、ビジコン
• メインフレーム
• ミニコン
• スーパーミニコン
• ミニスーパーコン
• ワークステーション
• RISC vs CISC
• 紙テープ、パンチカード
• テープ、ディスクパック
• ...
日本 JobScheduler ユーザーグルー
プ
• 2013/4 発足
• JobScheduler いけるやん、という人の集まり
• 独 SOS サイトにも掲載
“Company News : Japanese language JobS...
活動内容
• 勉強会
– 5/2 第0回開催、
– 今後の活動内容について
相談
– 6/7  第 1 回開催、 JTF 参加について相談
• LT :某製造業事例、 fabric を使った
JobScheduler 全自動インストール
– 月...
活動内容
• グループサイトの運営
https://sites.google.com/site/jobschedulerja/home
– Wiki, tips, ドキュメントを掲載
• Facebook ページ
http://ja-jp.fa...
次回勉強会
• 日程:8月23日(金)19時〜21時
• 会場:募集中
• 内容:募集中
• LT: 募集中
• 懇親会:たぶん、いや行くでしょ www
• 会場、ネタのご提供は、メーリングリス
トまでご連絡お願いします。
jobschedul...
最後に
• Please join us!!
https://groups.google.com/forum/?
fromgroups#!forum/jobscheduler-ja
2013/07/14
40
JTF2013 #techfesta
ご清聴ありがとうございま
した
41
2013/07/14 JTF2013 #techfesta
Upcoming SlideShare
Loading in …5
×

Jtf13 ossジョブ管理システムによる運用自動化事例

7,169 views

Published on

SOS JobScheduler Overview and Case study at JTF2013

Published in: Technology

Jtf13 ossジョブ管理システムによる運用自動化事例

  1. 1. 1 OSS ジョブ管理システムに よる運用自動化事例 2013 年 7 月 14 日 日本 JobScheduler ユーザグループ (代表)船井 覚( @satoruf ) 井上 研一( @inoccu ) 秋穂 賢( @ken_aio ) JTF2013 #techfesta 2013/07/14 JTF2013 #techfesta
  2. 2. 2 アジェンダ • JobScheduler の概要 • JobScheduler の基本機能 • 想定シナリオのデモ • JobScheduler 事例紹介 • 日本 JobScheduler ユーザーグループ紹介 2013/07/14 JTF2013 #techfesta
  3. 3. 自己紹介 • 秋穂 賢(あきほ すぐる) • 某 Sier 所属 • メインフレーム歴:4年 • OSS 歴: 5 ヶ月 • JobScheduler イケてる!と思ってる一人 3 2013/07/14 JTF2013 #techfesta
  4. 4. JobScheduler の概要と基本機 能 4 2013/07/14 JTF2013 #techfesta
  5. 5. 5 JobScheduler とは • OSS の Job 管理製品( GNU Public License ) – ドイツの Software- und Organisations-Service 製 – 2003 年に商用版・ 2005 年に OSS 版をリリース • Web ブラウザ (JOC) ・ JOE (デスクトップ)と いった GUI ツールで Job の監視や管理を実施 • Windows, Linux, Solaris( 商用版のみ ), AIX( 商用版 のみ ), HP-UX( 商用版のみ ) に対応 • リモートジョブ実行、冗長化機能、ロードバラン ス、外部認証等、エンタープライズ向け大規模シ ステム対応 2013/07/14 JTF2013 #techfesta
  6. 6. 6 JobScheduler のユーザ ドイツ eBank やカード決済サービス会社 イギリス 財務アプリケーションのプロバイダ オーストリア ( イタリアの ) 大手金融グループ アメリカノースカロライナ州 保健福祉サービス機関 ヨーロッパを中心に金融・産業・政府・ 大学 などの様々な機関で使用されている 日本でも最近活用され始めている! ⇒ 本日、活用事例の一つをご紹介 ドイツ 大学図書館 2013/07/14 JTF2013 #techfesta
  7. 7. 7 JobScheduler の概要 - 機能 - • ジョブ定義 • ジョブ実行(時間指定 / 繰り 返し) • スケジュール • 多重実行・排他制御 • 先行・後続制御 • 優先度設定 • イベント監視 • メール通知 • 外部パラメータ設定 • 開始 / 終了遅延検知 • クライアント / サーバ • バックアップクラスタ • 負荷分散クラスタ • SOAP/REST の外部 API • 独自の内部 API • Javascript / Perl / Java / Shell Script / Powershell / VBScript / javax.script での ジョブ定義 高度なジョブ管理機能 Dev の使い慣れた言語での Job 定義 2013/07/14 JTF2013 #techfesta
  8. 8. 8 クライアント / サーバ JOCJOC JIDJID JobScheduler Engine JobScheduler EngineRDBMSRDBMS JobScheduler の 稼働サーバ JOEJOE JobScheduler の 管理端末 JobScheduler Agent JobScheduler Agent ジョブの稼働サーバ JobScheduler の基本的な構成 2013/07/14 JTF2013 #techfesta
  9. 9. JOC JOE JID 2013/07/14 JTF2013 #techfesta 9
  10. 10. 10 JobScheduler のジョブ Standalone Job Job Chain Schedule • JobScheduler の特徴 – ジョブ関連の全ての定義が XML ファイルで管理 – 様々な操作を行うジョブが SOS 社から提供されている • ファイル操作、ファイル転送、 DB 制御、 SQL 操作、エージェントレ ス実行、 メール制御、レポーティング機能 などなど • Standalone Job – 単体で稼動するジョブを定義 • Job Chain – 複数ジョブに対して順序関係を考慮し て組み合わせるジョブ (order job) を定 義 • Schedule – ジョブの稼動予定を定義 • ジョブ定義は shellscript, windows bat 以外に Java,JavaScript,VBScript, javax.script で定義可能 Order Job Order Job 2013/07/14 JTF2013 #techfesta
  11. 11. 11 定義ファイル例( XML ) Order Job order_job.job.xml⇒ <?xml version="1.0" encoding="ISO-8859-1"?> <job order="yes" stop_on_error="no"> <script language="shell"> <![CDATA[ echo $SCHEDULER_JOB_NAME ]]> </script> <run_time/> </job> Standalone Job simple.job.xml⇒ <?xml version="1.0" encoding="ISO-8859-1"?> <job name=“simple"> <script language="shell"> <![CDATA[ echo $SCHEDULER_JOB_NAME ]]> </script> <run_time schedule="my_schedule" /> </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⇒ <?xml version="1.0" encoding="ISO-8859-1"?> <schedule > <period single_start="10:00"/> </schedule> 2013/07/14 JTF2013 #techfesta
  12. 12. 12 ジョブ定義例 ( スクリプト ) 処理をして次のジョブをキックするジョブ // print my hostname spooler_log.info(‘Hello World. I run at ' + spooler.hostname()); // kick next job spooler.job(‘path/to/kicked').start(); • 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 2013/07/14 JTF2013 #techfesta
  13. 13. 13 WEB API PHP のライブラリが SOS より提供 ⇒ プログラマブルにジョブ管理可能 # 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> 2013/07/14 JTF2013 #techfesta
  14. 14. 14 ジョブ管理も CI ・ CD JobScheduler の定義ファイルは全て XML ジョブのプログラムやジョブ定義を 開発開発したジョブをバージョ ン 管理システムに反映 バージョン管理システム より CI サーバへ取り込み 継続的にテスト・デプロイを 実施 2013/07/14 JTF2013 #techfesta
  15. 15. 1515 デモシナリオ • 日次のデータ処理後にデータバックアップを取得 • 日次データ処理は毎日 20:00 から稼動 • 日次のデータ処理は 5 多重で実行 – ただし、処理①と処理②は同時に稼動させない ( 排他制御 ) • バックアップはデータ処理が全て完了した後に実行 • データバックアップは 2 多重で実行 この要件のジョブフローを定義してみる 2013/07/14 JTF2013 #techfesta
  16. 16. 16 ジョブフロー 16 処理① 処理② 処理③ 処理④ 処理⑤ process1 process2 process3 process4 process5 バックアップ① バックアップ② bkup1 bkup2 • データ処理➡バックアップ • 処理➡ 20:00 稼動 • 処理➡ 5 多重 • 処理①・処理②➡排他 • バックアップ ➡ データ処理完了後 • バックアップ➡ 2 多重 20:0020:00 排他制御排他制御 20:0020:00 20:0020:00 20:0020:00 20:0020:00 2013/07/14 JTF2013 #techfesta
  17. 17. 1717 JobScheduler でのジョブフ ロー データ処理 キック Job 処理① 処理② 処理③ 処理④ 処理⑤ p_kick process1 process2 process3 process4 process5 同期 バックアップ キック Job バックアップ① バックアップ② sync b_kick bkup1 bkup2 ※ デモでは全て 10 秒 wait した後に   正常終了する Job を使用 20:0020:00 排他制御排他制御 2013/07/14 JTF2013 #techfesta
  18. 18. 1818 構成の説明 データ処理 キック Job 処理① 処理② 処理③ 処理④ 処理⑤ p_kick process1 process2 process3 process4 process5 同期 バックアップ キック Job バックアップ① バックアップ② sync b_kick bkup1 bkup2 排他 lock 排他 lock echo で Job を正 常終了させ、正常 終了時の XML コ マンドで後続 5Job を開始させ ている everyday_at2000  毎日 20:00 稼 働 「処理①~⑤⇒同期」は JobChain となっており、処理③のみ 同期⇒バックアップキック Job と JobChain が組まれている echo で Job を正常終了させ、正常 終了時の XML コマンドで後続 2Job を開始させている 2013/07/14 JTF2013 #techfesta
  19. 19. JobScheduler 事例紹介 ここからは、 JobScheduler の日本での 導入事例をご紹介します。 2013/07/14 JTF2013 #techfesta 19
  20. 20. 自己紹介 • 井上 研一 – Twitter :  @inoccu – Facebook :  kenichi.inoue • アルティザンエッジ合同会社 代表社員 CEO – 2012 年 7 月 7 日、個人事業主として設立 – 2013 年 7 月 5 日、会社になりました! – http://artisanedge.jp – http://artisanedge.jp/solution/jobscheduler/ • Dev 側の人です 2013/07/14 JTF2013 #techfesta 20
  21. 21. 導入企業 • 国内製造業 A 社 o 流通・小売業向けの各種機器を製造 o 機器導入先のエンドユーザー企業で、機器の 保守のほか、ネットワーク監視、運用監視 サービスも併せて提供している 2013/07/14 JTF2013 #techfesta 21
  22. 22. 背景 • 監視システムのリプレースプロジェクト o Nagios を監視エンジンとして使用したシステムを開 発・導入 o 2012 年 1 月開発開始、同年 9 月から本稼働 o フロントエンドは CakePHP で開発 o 監視対象ノードは現在 6,000 を超える • 監視対象 o 疎通やサーバの生死等のネットワーク監視 o 業務運用系の監視 ←これは Nagios だけでは難し い  店舗レジの開閉店処理の実施有無  マスタファイルの送信処理の成否 2013/07/14 JTF2013 #techfesta 22
  23. 23. 業務運用系の監視の特徴 • 監視内容 o 基本的にはファイル(ログ)監視 o エンドユーザー企業によって、監視の方法や 要求レベルは異なる o ネットワーク環境等もいろいろ( ISDN や PHS も) o 常に 24x365 監視ではなく、土日や年末年始 は監視しないといったこともある • 監視規模 o 1 つのエンドユーザー企業で、数百店舗(= ノード)の監視が必要となることも2013/07/14 JTF2013 #techfesta 23
  24. 24. どう実現するか? <いままでは> • シェルや Perl スクリ プトで監視 • 店舗マスタを CSV 連 携 • cron で監視実行、 at でリトライ • 監視結果はログファ イルとして監視シス テムに連携 <これからは> • JobScheduler ! • ワンストップのフロ ントエンドシステム で、複雑な監視スケ ジュールを制御 • JobScheduler のジョ ブで Nagios に連携 2013/07/14 JTF2013 #techfesta 24
  25. 25. 新システム構成 2013/07/14 JTF2013 #techfesta 25
  26. 26. ジョブ(ジョブチェーン)一覧 画面 2013/07/14 JTF2013 #techfesta 26
  27. 27. 面 (基本設定) 2013/07/14 JTF2013 #techfesta 27
  28. 28. 面 (対象ノード) 2013/07/14 JTF2013 #techfesta 28
  29. 29. 面 (スケジュール) 2013/07/14 JTF2013 #techfesta 29
  30. 30. ジョブ実行履歴画面 2013/07/14 JTF2013 #techfesta 30
  31. 31. JobScheduler を採用したメ リット • 監視システムとのワンストップのフロント エンドシステムを開発できた o JobScheduler は API が提供されているので、フ ロントエンドを独自に開発できる • 既存の監視スクリプトを流用できた o JobScheduler は何でも実行できる  Shell / Perl / Java / JavaScript ... • Nagios への連携ジョブを共通化できた o JobScheduler はジョブチェーンが組めるので、 共通ジョブを開発しておけば便利 • オープンソース! 2013/07/14 JTF2013 #techfesta 31
  32. 32. 今後の方向性 • すべての業務監視ジョブ・対象店舗の JobScheduler への移行 o 現時点では、かけられる工数等の問題もあり 、すべてを移行できているわけではない • JITL (テンプレートライブラリ)の活用 • ファイル転送での SOS FTP の活用 • 機器アップグレードでの活用ができない か? 2013/07/14 JTF2013 #techfesta 32
  33. 33. 機器アップグレードでの活 用 2013/07/14 JTF2013 #techfesta 33
  34. 34. 日本 JobScheduler ユーザーグループ( JJUG )ご 紹介 2013/07/14 JTF2013 #techfesta 34
  35. 35. 自己紹介 • PC8001 • オフコン、ビジコン • メインフレーム • ミニコン • スーパーミニコン • ミニスーパーコン • ワークステーション • RISC vs CISC • 紙テープ、パンチカード • テープ、ディスクパック • CP/M, MS-DOS2.0 • ISAM 、階層型、ネットワー ク型データベース • RDBMS 、並列プログラミン グ • SMP, MPP, NUMA • ネットワーク • セキュリティサービス 35 コンピュータ屋歴 32年 エンタープライズ向け OSS インテグレーション コンピュータ屋歴 32年 エンタープライズ向け OSS インテグレーション 2013/07/14 JTF2013 #techfesta
  36. 36. 日本 JobScheduler ユーザーグルー プ • 2013/4 発足 • JobScheduler いけるやん、という人の集まり • 独 SOS サイトにも掲載 “Company News : Japanese language JobScheduler user group on Facebook” http://www.sos-berlin.com/modules/news/article.php?storyid=42 • 会則/会費ありません • 会員資格ありません、 Google Groups に参加して下 さい https://groups.google.com/forum/?fromgroups#!forum/jobscheduler-ja • 現在メンバー16名 • JobScheduler を使う上での疑問やノウハウの共有 • 勉強会と言う名の飲み会 2013/07/14 JTF2013 #techfesta 36
  37. 37. 活動内容 • 勉強会 – 5/2 第0回開催、 – 今後の活動内容について 相談 – 6/7  第 1 回開催、 JTF 参加について相談 • LT :某製造業事例、 fabric を使った JobScheduler 全自動インストール – 月 1 回くらいで情報交換 2013/07/14 37 JTF2013 #techfesta
  38. 38. 活動内容 • グループサイトの運営 https://sites.google.com/site/jobschedulerja/home – Wiki, tips, ドキュメントを掲載 • Facebook ページ http://ja-jp.facebook.com/pages/Jobscheduler-Japan- ユーザーグルー プ /594469610565511 – 各種告知 – いいね!をお願いします!! • 普及活動 – JTF (今日) – 次は秋の OSC 東京?2013/07/14 38 JTF2013 #techfesta
  39. 39. 次回勉強会 • 日程:8月23日(金)19時〜21時 • 会場:募集中 • 内容:募集中 • LT: 募集中 • 懇親会:たぶん、いや行くでしょ www • 会場、ネタのご提供は、メーリングリス トまでご連絡お願いします。 jobscheduler-ja@googlegroups.com 39 2013/07/14 JTF2013 #techfesta
  40. 40. 最後に • Please join us!! https://groups.google.com/forum/? fromgroups#!forum/jobscheduler-ja 2013/07/14 40 JTF2013 #techfesta
  41. 41. ご清聴ありがとうございま した 41 2013/07/14 JTF2013 #techfesta

×