少ない予算で、より速くアプリ開発と提供のサイクルを回す――。モバイル端末やソーシャル・ネットワークの普及でB2C、B2Bのインタラクションが増す中、特に決済系などEコマースで利用されているメインフレームを含む基幹システムのアプリ開発のスピードアップが急務となっている。現在、6〜12カ月かかっている開発サイクルを数週間、あるいは数日へと加速することは可能だろうか?
2013年4月21日から3日間、CA Technologies主催で米ラスベガスで開催された年次プライベートイベント、CA Worldでは「モバイル」「DevOps」「クラウド」「SaaS」をキーワードに新たに買収もしくは投入されたソリューションの紹介が行われたが、ここでは主にDevOps関連に焦点を当ててレポートをする。
CA Worldの2日目は、上級副社長でテクノロジー担当のピーター・グリフィス氏の基調講演で始まった。開発サイクルの加速は、グリフィス氏が話した中でも大きなテーマの1つ。「少ない予算でより速く」という圧力がCIOに対して高まっているとして、今回のイベントでも目玉となる、2つの発表を交えて全体像を描き出した。DevOpsに関する2つの発表とは、継続的なアプリケーション・デリバリのソリューションで知られる「Nolio」の買収と、アプリケーション・デリバリ・スイートの最新版「CA LISA 7.0」の発表だ。
Nolioが提供するのはアプリケーションのリリースやデプロイ、ロールバックの自動化などの機能だ。テスト環境やプロダクション環境の設定、変更、ロールバックなどを設定ファイルベースで自動化する。Nolioの機能はCA LISAに取り込まれ、CA LISAが大幅にバージョンアップした形だ。
CA LISAは「サービス仮想化」を行うことでアプリケーションの開発プロセスが各所で「空転」する時間を短縮する。ここでいう「サービス」とは、アプリケーションの各モジュールが提供する機能や、API経由で利用する外部サービスなどだ。
例えば、あるアプリケーションのモジュールが外部のPayPalと連携している場合、このモジュールのテストではPayPalのAPIを実際に叩く必要があるが、CA LISAはこうした通信をキャプチャしてシミュレートできる。本物のPayPalではなく、CA LISAがシミュレートしたPayPalのAPIを使ってモジュールのテストを行うことができる。外部APIだけでなく、各種モジュールについて動作をシミュレートすることで、モジュール開発の独立性が高まる。モジュールの開発に先立って、各モジュールをモデル化をしてシミュレートすることも可能だ。
サービス仮想化を担当するジェネラル・マネージャのシッダール・ミッタル氏は会見で、CA LISAの提供するこうした機能を飛行機設計における「風洞実験」に例えた。現在、特にメインフレーム向け開発では、往々にして完成してから「飛ばしてみる」というプロセスを踏むことがある。本番環境で問題が発生し、失敗があったら、再び作り直すという、まるで揺籃期の飛行機開発に近いという。
実際、多くの大規模システムでは、アプリケーション開発の8割から9割の時間は「待ち」状態となっているという。価値を生み出している開発作業に当たる「タッチタイム」は、わずか1割から2割に過ぎない。逆に典型的なスタートアップではタッチタイムは8割から9割になるという。
これにはさまざまな理由がある。
例えば、アジャイル開発を取り入れたとしても、大規模システムでは結局のところアジャイルチームが世界各地の開発拠点に散らばっていて、開発順序に依存性がある場合に「待ち」が発生してしまう。「過去数年内にスタートした小さな会社なら、スピードを保って品質の高いソフトウェアを作ることもできるかもしれない。小さなチーム、同じ場所にいるなら複雑性が小さい。しかしエンタープライズでは北京、インド、ブラジルに開発拠点が散らばっていて、複雑性が高い」(グリフィス氏)
「開発者たちは、いくらでも開発やテストが遅れた言い訳をする。CFOがPayPalで実際にお金を使った決済を許可してくれなかったとか、あのモジュールがまだキチンと動いていないとか、テスト環境のデータが違っているとかといった理由で時間を無駄にして待ち状態になるのです。テストができない理由など100個もあるのです」
メインフレームの場合、本番環境を止めることができないため、テストに使えるリソースが10%程度に留まり、しかもそれを10〜20のチームで分割するなど独特の制約があるため、テストサイクルがどうしても遅くなる。逆にテスト用にハードウェアを購入するとなると一気に予算が膨らむ。サービス仮想化は、こうした課題を解決する。
Nolio買収でCA LISAに取り込まれたアプリケーションデプロイ作業の自動化ツール「CA LISA Release Automation」も、開発サイクルを加速する上で重要だ。手動や、それに準じるプロセスでアプリケーションのリリースを行っている場合、環境設定の間違いなどから4割程度の問題はデプロイ時に起こっているという。例えば、テスト環境と本番環境でミドルウェアが通信するポート番号が違うなどの理由で動くはずのものが動かない、といったことだ。こうした課題を解決するのがCA LISA Release Automationで、物理、仮想、クラウドを問わずにデプロイを自動化することで、開発、テスト、本番環境のそれぞれでコードの移動を効率化できる。CA LISAには、仮想・物理のインフラにわたってプロビジョニングと環境設定を自動化するCA LISA DevCloud Managerも含まれる。
オープンソースの世界では、スタブやモック、ブラウザドライバなど多くのテスト自動化のフレームワークが登場している。デプロイの自動化ツールや継続的テストも非常に急速に進化を遂げている。こうしたツール群とCA LISAの違いは何だろうか。
「スタブはスタブでいいが、あまりに素朴だ」というグリフィス氏によれば、こうしたツール群とCA LISAの違いは3つある。1つは、メインフレームまで含めたクロスプラットフォームであること、もう1つは高度なキャプチャー機能によりテスト環境の構築が容易なこと、そして3つ目はシミュレートするのが単なる挙動だけでなく、パフォーマンスも含めた本物により近いものであることだ。シミュレーションであるため本番環境でのテストよりも良い面もあるという。各サービスのパフォーマンスを変更して高いトラフィックで負荷テストをしたり、異なるデータセットを試したりといったことが容易だからだ。1週間の連続運用を短時間でシミュレートするようなこともできる。
アジャイルな開発は、単純に方法論やツールを取り入れるだけでは達成できない。大規模なエンタープライズシステムではなおさらだ。グリフィス氏は、例えばどのモジュールが依存性があって、どのチームが独立した開発チームとして動けるのかを見極めるのはCIOの仕事だと話した。
Copyright © ITmedia, Inc. All Rights Reserved.