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.

201023 jobscheduler os_cfall

217 views

Published on

OSC2020 Online/Fall
OSSジョブ管理の定番JobSchedulerの進化 最新情報

Published in: Technology
  • Be the first to comment

  • Be the first to like this

201023 jobscheduler os_cfall

  1. 1. OSS(オープンソース)ジョブ管理の定番 JobSchedulerの進化 最新情報 2020/10/23 http://www.ossl.co.jp TWITTER: http://twitter.com/satoruf LINKEDIN: http://jp.linkedin.com/in/satorufunai/ja SLIDESHARE: http://www.slideshare.net/sfunai FACEBOOK: http://www.facebook.com/satoru.funai OSC2020 Online/Fall
  2. 2. ジョブ管理とは l バッチジョブの実⾏制御 l *nix: Cron l Windows: タスクマネージャ l Mainframe: JCL, JES, etc. l *nix/Windows商⽤製品 l JP1 l A-AUTO l 千⼿ l IBM IWS (Tivoli), BMC Control-M, etc. l OSS l JobScheduler l Hinemos l Rundeck l Job Arranger for Zabbix l Jhako 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 2
  3. 3. JobSchedulerの特⻑ l オープンソース(GNU Public License V.2) l エンタープライズで必要な全ての機能が無料で使⽤可能。(但しユニバーサルエージェント上の同 時複数タスク実⾏は有償ライセンスが必要) l 有償ライセンスを購⼊すれば、障害対応、バグフィックス/ワークアラウンドの提供、新機能の早 期提供、チケットシステム(OTRS)、JIRAの利⽤が提供される。 l プログラマブル l ジョブの中で、Java, Perl, JavaScript, VBScript, Powershell, javax.scriptのAPIを使ったロジックを 記述可能 l 外部APIによりRESTまたはコマンドラインからジョブの実⾏制御、実⾏状況の取得が可能 l エンタープライズ・グレード l リモートジョブ実⾏、冗⻑化機能、ロードバランス、外部認証等、エンタープライズ向け⼤規模シ ステム対応 l ファイル転送やログローテンション等豊富なテンプレート機能 l Zabbix/Nagios等と(ジョブ実⾏監視)との連携機能 l MySQLの他、PostgreSQL, Oracle, DB2, MS SQL Server等に対応 l 豊富な導⼊実績 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 3
  4. 4. JobSchedulerの進化 1983 SOS社創業 2005 OSSとしてリリース 2013 V.1.3 国内販売開始、⽇本語化リリース 2013 V.1.5 64bitバージョンリリース 2015 V.1.10 ユニバーサルエージェント、コンテナ対応 リリース 2017 V.1.11 JOCコックピット/REST APIリリース 2017 V.1.12 JOEのWEBアプリリリース(JOCコック ピットに統合)、カレンダー管理リリース 2019 V.1.13 ジョブストリームリリース 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 4
  5. 5. 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 5
  6. 6. JobSchedulerの⽤途 l バッチ処理制御 l 業務アプリケーション l ハウスキーピング(バックアップ/ログローテ等) l ⾃動インシデントレスポンス l 監視システムからのアラートに応じて、ログ収集など⾃動対応 l 継続的デリバリ l インフラ運⽤のプログラム化 l テスト⾃動化 l ⾃動システム構築 l クラウドインスタンス作成から、アプリ配備 l クラウドに依存しないオートスケール 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 6
  7. 7. JobSchedulerの構成(V.1.12〜) l JOCコックピット l WEB UIのジョブ管理画⾯ l 待機中、実⾏中、完了したジョブの状態、 ログを⼀覧できるWEBアプリケーション l ジョブ定義の作成 l JobSchedulerマスターとは独⽴して稼働 l JobSchedulerマスター l ジョブの制御と管理を司るサービス l クラスタリング機能内蔵(Act-Stby, Act- Act) l RDBMSを使⽤したジョブ履歴、ログ管理 機能(JDBC接続) l JobSchedulerエージェント l ジョブのリモート実⾏エージェント l ゼロコンフィグレーション l エージェントクラスタリング 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 7 JobScheduler マスター JobScheduler エージェント JobScheduler エージェント JobScheduler エージェント JOCコックピット RDB JobScheduler マスター JobScheduler マスター RDB RDB エージェント レス・ホスト ssh 管理⽤PC 管理サーバ 管理対象サーバ WEB ブラウザ ジョブ定義 ファイル
  8. 8. ReportingDB JOCコックピット(V.1.11〜) 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 8 クライアント JobSchedulerDB 認 証 サ = ビ ス コールバック セッションマネージャ レポーティング インベントリ情報 XML JSON ハンドラ JSイベントメッセージプラグイン JSイベントメッセージプラグイン オブジェクト XMLファイル モニタリングジョブ レポーティングジョブ 実⾏計画ジョブ インベントリジョブ scheduler.xml Iniファイル MySQL/MariaDB/ Postgres/Oracle/ SQLserver etc. xmlレスポンス イベント REST エージェント http/ https クライアント エージェント JobSchedulerマスターJOCコックピット xmlコマンド OpenLDAP MS ActiveDierctory RDB オプション
  9. 9. JOCコックピット︓ダッシュボード 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 9 サーバー稼働状態 エージェント稼働状態 ジョブタスク稼働状態 ジョブオーダー稼働状態 ジョブオーダー実⾏結果 ジョブオーダー実⾏計画
  10. 10. JOCコックピット︓フロー表⽰ 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 10 リアルタイム表⽰ 実⾏タスク表⽰ 実⾏履歴表⽰
  11. 11. JOCコックピット︓実⾏計画 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 11 ステータス表⽰ 実⾏予定表⽰ 表⽰フィルタリング 現時刻表⽰ Excel出⼒
  12. 12. JOCコックピット︓ロールベースアクセス制御 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 12 操作単位の権限付与ロール設定
  13. 13. JOCコックピット︓操作ログ 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 13 時刻/ユーザー/操作 操作コメント コマンド内容 Excel出⼒
  14. 14. ユニバーサル・エージェント l V1.10以降でサポート l 従来のエージェント(クラシック・エージェント)との違い l https://kb.sos-berlin.com/display/PKB/JobScheduler+Universal+Agent+-+Features l Pure Java、シングルバイナリー l ゼロ・コンフィグレーション l エージェント側での設定を廃⽌、マスタ側からのリクエストに変更 l リモート・ファイル監視 l エージェント側ホストのファイル監視が可能 l Docker サポート l Dockerコンテナ内でのエージェント稼働、ジョブの起動/停⽌ l MacOSX/Raspberry Pi サポート l 有償ライセンスのみのリリース l 無償でのダウンロード/使⽤は可能だが、各エージェント上の同時複数タスク実⾏ は出来ない l オープンソースライセンスは、SSHのみ l 30⽇間のトライアルライセンスをお申込いただけば、全ての機能が無料でお試し できます l JobSchedulerのマスターとエージェントは、異なるバージョンでも使⽤可能 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 14
  15. 15. エージェント・クラスター構成 l エージェントは、Process_classで グループ化できる l 1システム上に複数エージェントを 動かすことも可能 l Process_classでグループ化した エージェントに、以下の⼆つの⽅法 でジョブの負荷分散が可能 (1)固定スケジュール (Fixed Priority Scheduling) l 最初に指定したエージェントが稼 働していれば常にそのエージェン トで実⾏される l そのエージェントが稼働していな ければ、次に指定したエージェン トで実⾏される (2)ラウンドロビンスケジュール (Round-Robin Scheduling) l 指定したエージェントから、順番 にジョブが割り振られる l クラスター構成のマスターと組み合 わせることも可能 15 JobScheduler エージェント JobScheduler マスター Windows/Linux RDBMS Process_class JobScheduler エージェント JobScheduler エージェント JobScheduler エージェント JobScheduler エージェント JobScheduler エージェント Process_class 固定スケジュール ラウンドロビン スケジュール 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved JOCコックピット Windows/Linux
  16. 16. ジョブの定義⽅法 l JOCコックピットによる定義例 l XMLファイルによる定義例 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 16 <?xml version="1.0" encoding="ISO-8859-1"?> <job > <params /> <script language="shell"> <![CDATA[ #!/bin/sh echo “$SCHEDULER_JOB_NSME is running” echo “Current Timestamp `date`” exit $? ]]> </script> </job>
  17. 17. JOCコックピットでのジョブチェーン作成例 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 17
  18. 18. ジョブストリーム(V.1.13〜) l 従来からあるジョブチェーンと同様に、ジョブ間の依存関係 を定義し⼀連のジョブを実⾏する l BMC Control-Mとの互換性 l ジョブチェーンとの違い l オーダーによる前⽅依存制御ではなく、イベントによる後⽅依存制御 l pre- and post-processing APIがないため、ジョブで定義する必要がある l 並列実⾏-待合せ制御が、ジョブチェーンのsplit/sync or joinより⾼速 l 閉じない⼊れ⼦ツリーが可能 l 詳細は以下を参照 l https://kb.sos-berlin.com/display/PKB/Job+Streams Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved2020/10/23 18
  19. 19. 複雑なジョブストリーム例 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 19
  20. 20. ジョブストリームのオブジェクト l イベントとグローバルイベント l イベントは、ジョブの実⾏結果を知らせるために作成されるトークンです。(従来からあるイベントとは別物で す) l イベントは後続のジョブが実⾏されるかどうかの条件を評価するために使⽤されます。 l グローバルイベントはマスタークラスタ構成の間でジョブの実⾏のために共有されるイベントです。これらは別の ジョブスケジューラーマスター上でジョブの実⾏結果を知らせるために作成されるトークンです。 l インコンディションとアウトコンディション l ジョブは実⾏する条件(インコンディション)を複数持つことができます。これらの条件には、真(true)または偽 (false)になるように評価されるいくつかの条件式を含むことができます。評価結果が真であればジョブが開始さ れ、偽であれば開始されずにそれ以降のジョブストリームの実⾏を保留(suspend)します。インコンディションの 条件式は、イベントの存在や特定のジョブまたはジョブチェーンの実⾏結果などを、AND/OR等の論理演算⼦で評価 することができます。 l ジョブはジョブ実⾏後に評価される複数のアウトコンディションを持つことができます。アウトコンディションに は複数の条件式を持つことができ、評価結果に応じて後続ジョブのインコンディションで使⽤されるイベントを追 加または削除できます。 l アウトコンディションがもつ条件式は、イベントの存在や特定のジョブまたはジョブチェーンの実⾏結果などを、 AND/OR等の論理演算⼦で評価することができます。 l スターターとセッション(V.1.13.4以降) l スターターはジョブストリームを開始するために使⽤します。スターターはランタイム設定に基づいてジョブスト リームを開始、またはアクションメニューの “即時開始”操作を使って⼿動で開始することもできます。 l スターターはジョブストリームのセッションを作成します。各セッションにはそれぞれインスタンスIDが付与され、 イベントはセッション毎に作成されます。例えば、セッションAで作成されたイベントはセッションBからはアクセ スできません。 l スターターは各ジョブストリームで複数作成でき、それぞれ必要ジョブと終了ジョブを設定できます。(V.1.13.5以 降) l 必要ジョブが終了しない限りセッションは継続し、終了ジョブが終了するとセッションが終了します。 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved2020/10/23 20
  21. 21. ジョブストリームの使⽤ l デフォルトインストレーションではジョブストリーム機能は無効になっているので、以下を実施します l JobSchedulerインストール時に有効化する場合 l GUIインストーラー︓step9で Enable Conditions-Pluginにチェックを⼊れる l CLIインストーラー︓jobscheduler_install.xmlの以下のvalueをonに変更 <entry key="jobStreamsPlugin" value="on"/> l JobSchedulerインストール後に有効化する場合 l /config/scheduler.xmlのコメントアウトされている以下の⾏を有効にして、マスター再起動 <plugin java_class="com.sos.jobstreams.plugins.JobStreamsPlugin"/> l 共通 l /config/scheduler.xmlの以下の⾏は、ジョブストリームのセッションピリオド開始時間(UTC)なので、⽇本時間0時=UTC 15 時に変更しておく <param name="sos.jobstream_period_begin" value="15:00"/> Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved2020/10/23 21
  22. 22. ジョブストリームの実⾏ l スケジュール実⾏︓スターターメニューでランタイムを設定 l 途中停⽌︓⽌めたいジョブメニューで「停⽌」を選択 l 途中から実⾏︓開始したいジョブメニューで「インスタンスでタスク開始」を選 択 l 途中ジョブをスキップ l 以下を参照 l https://kb.sos-berlin.com/display/PKB/Run-time+of+jobs+in+a+Job+Stream l スターターから時間差で複数ジョブ起動 1.相対時間での起動指定 l スターター編集画⾯で、他のジョブを追加をクリックし、起動したいジョブを追加し、ディレイ (秒)を指定 l 例)スターターランタイム指定時間から1時間後に起動->3600 2.絶対時間での起動指定 l スターター編集画⾯で、他のジョブを追加をクリックし、起動したいジョブを追加し、ディレイ (秒)を0で登録 l 起動したいジョブのランタイム設定を開き、周期追加で繰り返し間隔を「時間帯」で選択 l 開始〜終了の時間を、実⾏させたい時間帯で登録 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved2020/10/23 22
  23. 23. JobSchedulerの進歩 1983 SOS社創業 2005 OSSとしてリリース 2013 V.1.3 ⽇本語化リリース 2013 V.1.5 64bitバージョンリリース 2015 V.1.10 ユニバーサルエージェント、コンテナ対応リリース 2017 V.1.11 JOCコックピット/REST APIリリース 2017 V.1.12 JOEのWEBアプリリリース(JOCコックピットに統 合)、カレンダーリリース 2019 V.1.13 ジョブストリームリリース 2020 V.2 JS7 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 23
  24. 24. V.2計画 l V.1アーキテクチャーを変更 l 2020/12 リリース予定 l 最初のリリースは、新規ユーザー向けに限られた 機能を提供 l 後続リリースでV.1系からの移⾏機能を提供 l 2年間はV.1系と併存 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 24
  25. 25. V.2ターゲット l ⾼可⽤性 l アーキテクチャーレベル(⾮同期分散処理)での⾼可⽤性 l DB障害時もジョブ実⾏継続 l ⾼速クラスターフェイルオーバー l ⼤規模 l 〜 50万ジョブネット l 〜 100万ジョブ l 〜 1,000エージェント l ⾼性能 l ジョブ起動オーバーヘッドなし l 1万タスクを1秒以内で同時起動 l ⾼セキュリティ l JOC・コントローラー・エージェント間の全通信にクライアント・サーバー認証 l 定義ファイルにも証明書を付加 l 外部認証局(CA)をサポート 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 25
  26. 26. V.1アーキテクチャー l マスター l DBにすべての情報・ログを保存するためDB負荷⼤ l DB障害時、全サービス停⽌ l 起動時すべての定義情報をメモリー上に展開 l 実⾏スケジュールはバッチ処理で更新 l クラスターフェイルオーバーは〜2分待機後バックアップが起動(Act- Stby) l Act-Actマスター構成は元々マスター上のジョブ実⾏が前提だったため、エー ジェント実⾏には不向き l ユニバーサルエージェント l 常時マスターとのハートビート通信 l マスターエージェント間の通信量⼤ l マスターとの通信遮断時、ジョブも停⽌ 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 26
  27. 27. V.2アーキテクチャー l JOCコックピット l WEB GUI/REST API l ジョブ実⾏制御 l 履歴情報 l ジョブ定義の作成 l クラスターサービス l ジョブ定義の管理とコントローラーへの配布 l クラスター制御、イベントキュー、ロギングなど l コントローラー l DB接続を廃⽌ l ジョブ定義をJOCコックピットから取得 l 実⾏履歴をJOCコックピットに送信 l 実⾏計画とジョブ定義をエージェントに配布 l ⾃律型エージェント l コントローラーとの通信障害時にも⾃律的にジョブ実⾏制御 l エージェントクラスター内で実⾏計画とジョブ定義を同期 l 実⾏履歴をコントローラーに送信 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 27
  28. 28. V.2アーキテクチャー l 公開鍵認証の導⼊ l 各モジュール間通信の公開鍵認証 l JOCコックピットまたは外部認証局で証明書を作成・署名 l ルート証明書と中間証明書を各コントローラーとエージェントに配布 l ジョブ定義の公開鍵認証 l JOCコックピットまたは外部認証局でジョブ定義ファイル毎に署名 l 各コントローラー及びエージェントで配布された署名が⼀致するかを確認 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 28
  29. 29. V.2の構成概要 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 29 プライマリ コントローラー ⾃律型 エージェント ⾃律型 エージェント ⾃律型 エージェント JOCコックピット プライマリ Reporting DB 管理⽤PC エージェントクラスター WEB ブラウザ JOCコックピット スタンバイ LB/VIP バックアップ コントローラー スタンバイ ジャーナル同期 ジョブ定義リポジトリ ピアツーピア 通信 ピアツーピア 通信 ジャーナル ファイル ジャーナル ファイル ジャーナル ファイル ジャーナル ファイル ⾮同期 ⾮同期 ⾮同期 ジャーナル ファイル
  30. 30. V.2ダッシュボード画⾯例 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 30
  31. 31. V.2ワークフロー l 従来からあるジョブチェーンと同様に、ジョブ間の依存関係を定義し⼀連 のジョブを実⾏する l DAG(有向⾮巡回グラフ、Directed Acyclic Graph)モデル l BPMN(ビジネスプロセスモデリング表記法、Business Process Model and Notation)ベースの記法、ただし準拠ではない l ジョブチェーンとの違い l オーダーによる前⽅依存制御ではなく、DAGによる後⽅依存制御 l pre- and post-processing APIがないため、BMMNで定義 l 並列実⾏-待合せ制御が、ジョブチェーンのsplit/sync or joinより⾼速 l 閉じない⼊れ⼦ツリーが可能 l ジョブストリームとの違い l イベント・コンディションではなく、BPMNで定義 l スターターではなくオーダーによる実⾏制御 l 複数のワークフローを⼊れ⼦定義可能 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 31
  32. 32. V.2ワークフロー作成画⾯例 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 32
  33. 33. V.2実⾏計画画⾯例 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 33
  34. 34. サポートサービス l 無償サービス l GPL版ソフトウェアのダウンロード提供 l メーリングリスト/フォーラムでの応答 l SOS社ナレッジベース/ユーザーグループでの情報提供 l 有償サービス l 年間サブスクリプションライセンスご契約者様には、下 記サービスを年間対応件数無制限にてサポート § 有償版ソフトウェアの提供 § 導⼊⽅法、パラメータ、仕様についての質問 § 新機能の早期提供 § 障害調査 § 発⽣現象の確認と過去事例の調査 § バグフィックス/ワークアラウンドの提供 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 34
  35. 35. プロフェッショナルサービス l 年間サブスクリプションライセンスのご契約者様には、下記オプション サービスを提供 l 拡張サポートサービス l 標準サポートには含まれない、ジョブ設計/作成⽀援、性能チューニング等に関する、 QA及びアドバイス、ベストプラクティスの提供 l 可能であればお客様環境へのssh/vpnアクセス、調査 l SOS社エンジニアの直接対応も可能(英語のみ) l マイグレーションサービス l 他社ジョブ管理製品からの移⾏⽀援サービス l お客様の既存ジョブ定義をご提供いただき、調査/分析の上お⾒積もりいたします l トレーニングサービス l JobScheduler初級トレーニング(4時間x2回) l アーキテクチャ概要、システム構成、操作⽅法、ジョブ作成⽅法 l 詳細は、お問い合わせください l お問い合わせフォーム http://www.ossl.co.jp/jpn/node_184 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 35
  36. 36. ⽇本JobSchedulerユーザーグループ l 2013/4発⾜ l JobSchedulerいけるやん、という⼈の集まり l 独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 JobSchedulerを使う上での疑問やノウハウの共有 l 勉強会と⾔う名の飲み会 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 36
  37. 37. 活動内容 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 OSC 2020/10/23 37Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved
  38. 38. 各種情報リンク l ⽇本語紹介資料 https://www.ossl.co.jp/?page_id=148 l ⽇本JobSchedulerユーザーグループ https://sites.google.com/site/jobschedulerja/ https://groups.google.com/forum/?hl=ja#!forum/jobscheduler-ja https://www.facebook.com/Jobscheduler-Japan- %E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%B0%E3%83%AB%E3%83%BC%E3 %83%97-594469610565511/timeline/ l ナレッジベース(英語) https://kb.sos-berlin.com/display/PKB/Product+Knowledge+Base+Home l JIRA(英語) https://change.sos-berlin.com/secure/Dashboard.jspa l User Forum(英語) http://sourceforge.net/projects/jobscheduler/forums/forum/486122 l SOS社ホームページ http://www.sos-berlin.com 2020/10/23 Copyright 2020(C) OSS Laboratories Inc. All Rights Reserved 38

×