言語+フレームワークで選ぶ
何が言語選択の決め手になるのか
開発言語の選択によって、開発プロジェクトは安定した航海にも、荒波にもまれた死屍(しし)累々の航海にもなりえます。今回は、伊藤忠テクノソリューションズ(以下、CTC)が運用管理ツール「eTreasure」の開発にRuby on Railsを採用するまでに検討した項目とその内容、ほかに候補にあがった言語との比較について、具体的に紹介していきましょう。
図1をみてください。これは、ずばり今回実際に採用を検討した言語と比較した内容の評価結果(◎:大変よい、○:よい、△:普通、-:なし)です。どうしてこうした評価に至ったのか、またどうして最終的に、一部の項目では△の評価もあるRuby on Railsを採用したのか、選択の決め手を解説します。本記事を読みながら、自分のプロジェクトではどう評価するか、何を決め手とするか一緒に考えてみてください。
eTreasureとは?
ここで、具体的な言語選択の検討に入る前に、その開発対象となった「eTreasure」がどんなシステム要件で、どの程度の性能を求められていたのかを紹介しましょう。言語を選択するにあたって、開発対象システムの規模や要件、性能などによって、条件はさまざまに変わりますので、ぜひ参考にしてみてください。
「eTreasure」は、ITサービス運用の業界標準となりつつあるノウハウ集のITILを参考に実装してます。CTCテクノロジー株式会社(以下、CTCT)のシステム・マネージメント・サービス部門が標準的に使用する運用管理ツールとして、設計されました。機器、インシデント、問題、変更の各データをひも付けて、機器およびサービスに障害が起きた場合に、いち早いインシデント解決に結びつけるシステムとして構築されています。
eTreasureは、運用フローおよび人員の標準化を行い、CTCTが扱っているインフラ機器の効率的な運用管理をすることが目的です。簡単にeTreasureの主な機能を紹介しましょう。
1つ目が「インシデント管理」機能です。顧客が抱える課題、質問、要望を管理すると共に解決策や時間を計測し、いち早いインシデントの解決を目指すための改善個所を探す指標となります。それに必要な項目を管理できます。
2つ目が「問題管理」機能です。インシデントと関係を持たせ、1つの問題に対して、複数のインシデントをリンクさせることにより、根本原因を明確にして、インシデントの発生件数の減少と再発防止に役立てる機能です。
3つ目が「機器構成管理」機能です。インシデント管理、問題管理で管理されるIT資産の構成を管理できます。
4つ目が「変更管理」機能です。IT資産に対して、インシデント解決や問題の再発防止のために、行われる変更作業の予定から完了までを管理できます。
5つ目が「カレンダー形式のイベント管理」機能です。インシデントの発生や変更予定、完了などのイベントをカレンダー形式で表示できます。
6つ目が「レポート出力」機能です。検索結果から発生インシデント一覧をExcel形式で出力できます。
eTreasureの業務想定量は、以下の通りです。
・画面総数:250画面
・インシデント登録件数:80,000件以上
・インフラ機器登録件数:30,000件以上
案件により、インシデント管理項目に差があり、アプリケーション自身に項目を増減させる管理機能が必要でした。それ自身が持つカスタマイズ機能のみでなく、顧客ニーズによって、柔軟迅速に変化要求に耐えられるシステムを模索していました。
続いて、候補としてあがった言語について具体的に紹介します。