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

6,078 views

Published on

SOS JobScheduler Overview and Case study at JTF2013

Published in: Technology
0 Comments
15 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,078
On SlideShare
0
From Embeds
0
Number of Embeds
1,103
Actions
Shares
0
Downloads
56
Comments
0
Likes
15
Embeds 0
No embeds

No notes for slide
  • 複雑な制御はプログラミングをする 一部は JITL で提供されている
  • ALEX
  • 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

    ×