CloudStackの最新アップデートやジョブ管理OSSによるDevOps紹介 - オープンソースカンファレンス2013 Tokyo/Fall -
オープンソースジョブ管理ツール「JobScheduler」を使ったDevOps
OSSラボ株式会社 代表取締役の船井氏によるセッションでは、ジョブ管理ツールの「JobScheduler」について、有償製品と比べて遜色のないソフトの特徴や、実際の使い方などが紹介されました。
JobSchedularを作ったのは、ドイツのSoftware- und Organisations-Service社(以降、SOS社)です。商用版が2003年にリリースされ、それから1年ほど後にオープンソース化されました。
SOS社は30年の歴史を持つソフトウェア開発会社で、スイスとフランスにも支社があり、主にヨーロッパの金融機関や製造業を顧客に持っています。
そうした背景もあって、もともと企業向けの使用を想定したJobShedulerの開発は、今もコミュニティではなくSOS社内で行われています。OSSのため、すべてのコードはオープンですが、多言語対応や、バグを発見した場合は、同社にリクエストして、パッチなどの対応を依頼することになります。
開発ペースは、1年に約1回のメジャーバージョンアップと、3ヶ月に1回程度のマイナーバージョンアップで進んでいます。2013年9月にバージョン1.3.15がリリースされ、その前のバージョンから、日本のユーザーグループからコントリビュートされた、日本語による画面が追加されました。
GPLライセンスを採用し、Linux版とWindows版は無料で使用可能です。さらに有償ライセンスを購入することでHP-UX/Solaris/AIX版の利用やサポートサービスが受けられます。
商用版はコマーシャルライセンスとなりますが、基本的にサポートの有無のみで、無償版と有償版にはコードを含め、違いはありません。
APIによるプログラマブルな操作が特徴
JobSchedulerの大きな特徴として、プログラマブルな点が挙げられます。APIを前提とし、その上でGUIを操作するため、特にGUIを経由せずとも、自分で書いたアプリケーションからすべての情報管理コマンドの発行・制御ができます。
APIには内部APIと外部APIの2種類があります。内部APIはJava、JavaScript、VBScriptなどから直接APIを叩くことができ、また外部APIは、XML形式のREST APIが用意されているため、ネット経由で情報を投げたり返したりして、APIからジョブの管理が可能です。
ジョブ定義はすべてXML形式なので、慣れてくるとテキストエディタでXMLファイルを直接書いてジョブを登録するCUI的な操作の方が早いとのことでした。
また、ジョブ管理のコアの部分のみならず、ファイル送受信、MySQLのクリーンアップやデフラグで使うテンプレート、ログローテーションのための便利なツールが付属しているほか、ジョブの実行状況をレポートしたり、グラフ表示するためのJasperReportのテンプレートなども用意されています。
デフォルトのデータベースはMySQLで、PostgreSQL、DB2、Oracleなどにも対応しています。
海外におけるユーザーは冒頭で紹介した通り、金融系、大学、製薬会社などが多いようです。日本国内では現在3社ほどが有償版を使用しており、無償版のユーザーも数は分からないものの徐々に増えてきているとのことでした。
JobSchedulerの機能紹介
ジョブ管理機能として、ジョブの定義、実行、エラー制御など、基本的な機能は備えており、JP1やTivoliなど、他社の有償製品と同等の性能を持っています。
ただし、それらの製品とはコンセプトの部分で違いがあり、運用担当者など、業務別に切り分けられた利用ではなく、アプリ開発者自身がジョブを作って自分で管理するといった、プログラマにとって見通しの良い使い方ができると船井氏は述べました。
もう一つの大きな特徴として、ジョブ定義の際に、実行プログラムに直接ロジックを書ける高度な機能も持っています。ただ、ジョブと実行プログラムのメンテナンスが大変になってしまうため、あまりおすすめはできないとのことでした。
JobSchedulerのアーキテクチャは、ほぼJavaで作られており、コアの一部にC++が使われています。
その他、コンポーネント構成として、ジョブの制御と管理を司るJobSchedulerや、ジョブの実行エージェントであるJobScheduler Agent、テンプレートライブラリのJITLなどが紹介されました。
次に、インストール構成例として、シンプルなデモ検証環境から複数台のエンジンを導入するクラスター構成などが紹介されました。
ジョブについて
ジョブについては、JP1などで定義するジョブとJobSchedulerのジョブは考え方が大きく異なるということを前提として、JobSchedulerのジョブについて解説されました。
JobSchedulerにはStandard JobとOrder Jobという2種類のジョブが存在します。この2つの違いは、単体で稼働するジョブか、複数のジョブを組み合わせたJob Chainの中で使われるかの違いになります。
ジョブの実行予定はスケジュールで管理します。スケジュールはジョブごとに持つこともできる上、全体の共通スケジュールや、さらにエンジンごとに持つことも可能です。
例えば全社共通のスケジュールを定義、さらに東京本社の休日予定スケジュール、営業部門のスケジュールなど階層的に設定することもできます。
すべてXMLなので、内部フォルダに書くだけで自動的にエンジンが監視、登録され、素早い変更が可能とのことでした。
外部APIについて PHPから外部APIを叩くためのライブラリがSOS社より提供されています。PHPプログラムからJobSchedulerのジョブを制御することが可能で、GUIなしでジョブの定義、制御できるようになっています。
JobSchedulerの国内事例
セッションの後半では、国内の導入事例も紹介されました。
流通・小売業向けの機器を製造している大手のA社では機器のメンテナンスサービスも行っており、機器の監視や業務の実施をリプレースするため、Nagiosを監視エンジンとして採用しました。ただし会計処理など一部の監視にはNagiosでは不足している部分もあり、JobSchedulerを採用したとのことです。
実際には業務アプリにJobSchedulerを組み込んだ形で、フロントエンド画面をPHPで作成し、NagiosやJobSchedulerを読みこんで使用しています。
小売店などでは店によって休日などにも違いがあるため、そういった複雑なスケジュールをJobSchedulerで監視していますが、利用者はそれらのソフトウェアの違いを意識することなく、2万6千台以上が運用監視に使われているとのことでした。
最後に、2013年4月に発足したユーザーグループを紹介。会費、会則は特になく、メーリングリストによるやりとりや勉強会を行っているので、ぜひ参加してくださいとのことでした。
→ 日本JobSchedulerユーザーグループ(JJUG)(Google Groups)
セッションでは、実際に画面を見ながらのデモも紹介されました。
デモの詳しい内容は@ITの連載で紹介されているようなので、興味のある方は記事を読んでみてはいかがでしょうか。「JobSchedulerの機能と設定〜基礎編 」
他にも、OSC東京のページでもセッション資料など閲覧可能な資料が紹介されています。
→ https://www.ospn.jp/osc2013-fall/
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- ビジネスでオープンソースのさらなる活用を! - オープンソースカンファレンス2013.Enterprise-
- クラウド基盤ミドルウェア「CloudStack」とOpenStackへの取り組み
- 夏の暑さに負けない、オープンソースカンファレンス2013Kansai/Kyoto
- Facebookのデータセンターやビジネス活用の進むOSSなどを紹介 - オープンソースカンファレンス2013 Hokkaido-
- オープンソースカンファレンス2012 Fukuoka
- オープンソースカンファレンスに行こう!OSC浜松、OSC福岡レポート
- クラウドプラットフォーム「Apache CloudStack 4.6.0」リリース
- クラウドプラットフォーム「Apache CloudStack 4.15.0」リリース
- 1700名もの参加者が明星大学に集うOSSの祭典!OSC東京レポート
- バッチジョブ管理ツール「JobScheduler 1.12 LTS」リリース