CloudStackの最新アップデートやジョブ管理OSSによるDevOps紹介 - オープンソースカンファレンス2013 Tokyo/Fall -

2013年11月2日(土)
Think IT編集部

2013年10月19日(土)と20日(日)の2日にわたって、日野市の明星大学にて、オープンソースカンファレンス2013 Tokyo/Fall(以降、OSC東京)が開催されました。

Apache CloudStackの最新アップデート情報や、ジョブ管理に使用するJobSchedulerのセッション内容とあわせて、出展ブースを紹介していきます。

今まさにApache CloudStackが熱い!
〜使ってみようCloudStack〜

日本CloudStackユーザー会の会長である輿水氏によるセッションでは、CloudStackの概要や新バージョンの4.2の新機能や、実際に4.2を使ったデモが紹介されました。

最低でもハイパーバイザーとマネジメントサーバーの2台構成でないと使用が難しいことから、少々ハードルが高く、興味を持って自分で使ってみようという人が少ない様子のCloudStackですが、セッションの後半では、そういった人に向けた、手軽に使う方法も紹介されました。

まずはCloudStackの紹介から。IaaSを構築するためのクラウド基盤ソフトウェアであるApache CloudStackは、もともとはCloud.com社の商用プロダクトでした。その後、Citrix社が買収・オープンソース化を経て、2012年にApache Software Foundation(ASF)に寄贈されました。そして2013年3月にASFの正式プロジェクトに昇格、というのがこれまでの歩みです。

Apacheにはインキュベーター期間があり、CloudStackも当初はインキュベータープロジェクトでしたが、1年を経ずに正式プロジェクトに昇格し、現在ASFによって開発が進められています。

正式プロジェクトになった際にバージョン4.0.0がリリース。2013年6月には4.1、10月に4.2が立て続けにリリースされました。以前よりもバージョンアップのペースは早くなり、数々の要素が含まれるようになりました。

輿水氏いわく、現在の4.2はKVM関連を含めバグが多いとのことで、近日中に4.2.1か、もしくは既にデザインドキュメントが出ている4.3のいずれかがリリースされるであろうことが紹介されました。

CloudStackの基本的な特徴

CloudStackはクラウドOSのため、マルチハイパーバイザーに対応しています。VMwareや、KVMの仮想マネージャなどで使用する際にも、ハイパーバイザーの違いを意識せずにCloudStackで仮想インスタンスをVMware上に作れる機能を持っており、メジャーなハイパーバイザーにも対応しているとのことでした。

また、一つのクラウドを複数のテナントに分けて使うマルチテナントの仕組みを持っています。ドメインとアカウント、ユーザーの概念を持ち、クラウドサービスに適した管理体系を持っています。
4.1や4.2からは、プロジェクトという形でアカウントをまたがってのVM制御ができたり、4.2からはハイバーバイザーを特定のアカウントで専有する機能も追加されました。

また、セルフポータルサービスでは、UIがとても分かりやすく、初期設定ができていれば簡単にVMが作れるようになっています。管理者、ドメイン管理者、ユーザーによって表示内容は異なるものの、基本的に同じGUIを利用して操作が可能です。

柔軟なネットワーク構成 〜CloudStackの2つのネットワークモード

CloudStackには2種類のネットワークモードがあります。
Basicネットワークモード(基本ネットワーク)はL3レベルでの隔離。マルチテナント対応にはSecrityGroupを使用して各テナントを制御するネットワークとなります。
Advancedネットワークモード(拡張ネットワーク)では、テナントごとに仮想ネットワークを提供。L2レベルでテナントを隔離します。ネットワークごとに仮想ファイアウォールと仮想ロードバランサ、NATなどの機能を使うことができます。

日本ではAdvancedネットワークを使用する場合が多いのではないかとのことでした。

CloudStackのアーキテクチャ

CloudStackのアーキテクチャは比較的シンプルな構成で、一つの管理サーバー上でマネジメントプロセスが動きます。
プライマリーストレージ、セカンダリーストレージ、ネットワーク機器との連携の他、セルフポータルも管理サーバーを動かすことで提供されます。

CloudStackの最小単位は、仮想マシンを実行するハイパーバイザー環境(CPU、メモリ)、仮想マシンのディスク領域であるプライマリーストレージ、これらをセットにしたもので、Clusterと呼ばれます。ClusterをまとめたものをPodと呼びます。そのPodをさらに束ねるのがZoneです。
Podはデータセンターにおけるラックのイメージ、Zoneはデータセンターそのものだと考えるとイメージしやすいでしょう。
セカンダリーストレージは仮想マシンを作るテンプレートや、スナップショットを格納するための領域で、Zoneごとに配置されます。

4.1からは、上記のZoneの上位にRegionという概念が導入されました。これまではZoneしかなかったため、一つのZoneにマネジメントサーバーを置いて管理するイメージでしたが、Regionが導入されたことによって、マネジメントサーバーとクラスターを別の拠点で作ることができるようになり、高可用性を実現しています。
4.1のRegionはGUIで使えませんでしたが、4.2では“領域”という名称で追加されています。

4.2の新機能

4.2では実に80項目以上の新機能が追加されています。これは4.1の時に予定していた新機能が実際のリリース時に減ってしまい、その分が4.2に繰り越されて取り込まれた形となっています。

4.2で追加されたこれだけの新機能を深堀りするのは大変!ということで、現在CloudStackユーザー会では深堀りメンバーを募集しているとのことでした。興味のある方はぜひ参加してみてはいかがでしょうか。CloudStackの知識を深められること間違いなしです。

Dedicate Host、つまり専有ホストを使いたいというユーザーは多いらしく、4.2からは登録が可能になっています。ドメインやアカウントなどに、どのように専有させるかを指定することも可能です。

CloudStack 4.2を使ってみよう

開発やテストに使える仮想アプライアンスのDevCloud2環境で、実際にCloudStack 4.2を使用するデモが紹介されました。おおまかな手順は以下の通りです。

  • DevCloud2のダウンロード
  • VirtualBoxのインストール
  • DevCloud2をVitualBoxにインポート
  • VitualBoxの設定
  • DevCloud2内でCloudStack構築
  • CloudStack設定

実際のデモを含めたセッション内容はSlideshareからも見ることができます。

オープンソースジョブ管理ツール「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/

OSC2013東京/秋 出展ブース紹介

出展ブースを写真で紹介していきます。全ては紹介しきれませんでしたが、当日の様子を体験してください。
(写真をクリックすると拡大表示します)

さくらインターネット株式会社/PostgreSQLエンタープライズ・コンソーシアム

ConoHa(GMOインターネット)/Clonezilla

OSSラボ株式会社/Piwik日本ユーザー会

Project Hatohol(はとほる)/日本MySQLユーザ会(MyNA)

html5jえんぷら部/東京都市大学 小池情報デザイン研究室 マグボット プロジェクト

日本Qtユーザー会/Japanese Raspberry Pi Users Group

Project Vine/Firefox OS コミュニティ

OSGeo財団日本支部/OpenStreetMap Japan

Ubuntu Japanese Team/日本NetBSDユーザーグループ

株式会社Engine Yard/株式会社Joe’sクラウドコンピューティング

特定非営利活動法人コモンズネット/シトリックス・システムズ・ジャパン株式会社

Geeklog Japanese/日本仮想化技術株式会社

日本ヒューレット・パッカード株式会社/フュージョンアイオー株式会社

株式会社アールワークス / Pandora FMS JP/日本CloudStackユーザー会

LibreOffice日本語チーム/FuelPHP ユーザーグループ

Ejectコマンドユーザー会/日本JasperServerユーザ会

東京エリアDebian勉強会/baserCMSユーザ会

CodeIQ(コードアイキュー)/株式会社富士通ソーシアルサイエンスラボラトリ

at+link(エーティーリンク)/特定非営利活動法人日本ADempiereの会

株式会社野村総合研究所(OpenStandia)/株式会社オージス総研

株式会社ブロードバンドタワー/株式会社ハートビーツ

XOOPS Cubeコミュニティ/特定非営利活動法人エルピーアイジャパン

ライトニングトークのドラ娘を努めた、高野麻里佳さん

次回は、11月16日(日)にOSC福岡、11月23日にOSC大分が開催されます。

【関連リンク】

(リンク先最終アクセス:2013.11)

“オープンソース技術の実践活用メディア” をスローガンに、インプレスグループが運営するエンジニアのための技術解説サイト。開発の現場で役立つノウハウ記事を毎日公開しています。

2004年の開設当初からOSS(オープンソースソフトウェア)に着目、近年は特にクラウドを取り巻く技術動向に注力し、ビジネスシーンでOSSを有効活用するための情報発信を続けています。クラウドネイティブ技術に特化したビジネスセミナー「CloudNative Days」や、Think ITと読者、著者の3者をつなぐコミュニティづくりのための勉強会「Think IT+α勉強会」、Web連載記事の書籍化など、Webサイトにとどまらない統合的なメディア展開に挑戦しています。

また、エンジニアの独立・起業、移住など多様化する「働き方」「学び方」「生き方」や「ITで社会課題を解決する」等をテーマに、世の中のさまざまな取り組みにも注目し、解説記事や取材記事も積極的に公開しています。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています