ページの先頭です
2012年7月24日
IIJが開発した機器集中管理システム「SACM(Service Adapter Control Manager)」。前回の記事の内容は主に「STiNC」と電力監視システムについての説明でしたが、今回はSTiNCの集中管理を支えているそのアプリケーションについてご紹介します。
何百台、何千台もの機器を「管理」する。これを日々行っていくことは容易いことではありません。管理コストを抑えるために専用の管理の仕組みを作るにしても、それ自体にもやはりコストが掛かってしまいます。
一口に「管理」と言っても、それを構成するものは多岐に渡ります。例えば、以下のようなものが挙げられます。
これらはすべて、機器を「管理」するために必要な要素です。そして、これらの要素を統合的に実現するためのフレームワークが「SMF」です(SMFそのものの解説については、最新の技術動向「サービスアダプタ統合管理システム『SMF(SEIL Management Framework)』」や、SMFポータルサイト「SMF.jp」をご覧ください)。
SACMは、このような機器を「管理」する人をラクにするための機器集中管理Webサービスで、SMFの仕組みが取り入れられています。SMF接続用のライブラリ「libarms」を組み込んだ機器であれば、どのような機器でも管理することが可能です(前回ご紹介した「STiNC」にも、このlibarmsが組み込まれています)。
ここで、機器の設定作成作業について着目してみます。
数台程度の機器の設定作成であれば、機器ごとに個別に設定を作成していくことはそれほど難しいことではありません。しかし、数百台規模での設定の作成を行う必要がある場合、個別に設定を作成していく方法では限界があります。
全体の半分まで設定を作り上げた段階でパラメータに変更が生じ、また初めから修正していくことになってしまったり、設定変更時に機器同士の依存関係を持つ箇所の変更が洩れてしまったりと、管理する機器の数が多くなればなるほど、このようなリスクは高まります。
SACMが持つ特徴的な機能の1つとして「テンプレートセット」があります。これは複数台の機器の設定を、すべての機器で内容が共通の「テンプレートコンフィグ」と、個々の機器で値が異なる「テンプレート変数」の2つの要素に分離したものです。これらを作成した後に設定の生成操作を行うことで、自動的に機器の設定が一括生成されるという仕組みです。
テンプレートコンフィグには、機器の設定内容に加えて条件式やループ処理などを記述することができるので、特定の機器のみ例外的な設定を入れる必要がある場合や、台数によって設定内容に動的な変化が生じるような場合にも、柔軟に対応することができます。
実はこのテンプレートセット機能については、IIJの既存サービスから得たノウハウを活かしています。従来からの機能を取り入れつつ更に発展させることで、数百台規模の機器すべての設定を一括管理できる強力な機能となりました。
また設定を作成した後の機器の設置作業は、SMFの特色の1つである「オートコンフィグレーション」により、誰かがLANケーブルを繋いで機器の電源を入れるだけで完了します。そして、テンプレートセットと併せることで、機器の設定作成から実際に機器を設置するまでを非常に短い期間で行えます。
サービスが提供する機能として直接表には見えませんが、SACMはそのアプリケーション構成にも特徴があります。その最大の特徴とは、ビューを扱う「WebUI」と、ロジックを扱う「API」にコンポーネントが完全に分離していることです。
WebUIは各パーツに「Ajax」要素を盛り込み、APIを非同期にコールしてデータのやり取りを行うことで軽快な操作感を実現しています。一方、APIは「RESTful API」形式を取り入れ、そのURLとHTTPメソッドから直観的にAPIを利用できるように設計しています。
さて、このようにビューとロジックを分離したのにはもちろん理由があります。
1つはサービスのOEM提供を視野に入れたものです。もっと手軽に、もっと多くのユーザにSMFのメリットを提供したいという思いから、SACMではOEM提供を手軽に行うための新しいスキームを確立しました。ビューを独立させることでWebUIの配色やロゴなどの個々のカスタマイズにも柔軟に対応でき、迅速にOEM提供を行うことが可能となりました。
もう1つの理由はAPIによるアプリケーション間の連携です。IIJ以外の人にも使っていただくという観点から、APIは直観的に使えるものでなければならないと考えました。これはサービス開発当初から構想があり、つい先日「SACM API」として公開しました。SACMというサービス単体の枠に捉われず、SACMと他の要素を組み合わせて何を実現するか、という考えに基づいて、他のアプリケーションと積極的に連携させることによる相乗効果を狙っています。
機器を「管理」することをラクにし、さらに管理する「人」をラクにしたい。SACM、及びSMFの開発当初より我々のマインドは一貫しています。今後も機器の設定の視覚化やSACM APIの応用など、さらに使いやすい魅力あるサービスとなるように機能をブラッシュアップしていく予定です。
執筆者プロフィール
熊谷 清孝(くまがい きよたか)
IIJ プロダクト本部 アプリケーション開発部 応用開発課
SMFの仕組みとその考え方に感銘を受け、IIJに2006年に新卒入社。入社後一貫してSMFサービスの開発に携わる。現在は主にSACMの開発業務に従事。「開発」という枠に捉われず、評価、運用、なんでも動けるエンジニアを目指して日々活動している。
関連リンク
ページの終わりです