BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ アーティクル 【QCon Tokyo 2014 講演レポート】“DevOpsな開発テスト” を実現する「サービス仮想化」とは?

【QCon Tokyo 2014 講演レポート】“DevOpsな開発テスト” を実現する「サービス仮想化」とは?

開発途上のアプリケーションの欠陥が尾を引いて、運用チームがその対応に膨大な労力を費やす問題においては、開発工程の極力早い段階で欠陥を検出できるかが鍵となる。日本CAのセッションに登壇した同社 LISA事業部 プリンシパルコンサルタントの西野寛史氏は、DevOps(運用と開発の一体化)の観点から問題解決を図るためのアプローチとして、「サービスの仮想化」技術を採用したアプリケーションテストを紹介し、その効能を説いた。


機運が高まるDevOpsの本質は何か


セッションの冒頭、西野氏は、DevOpsの導入機運の高まりについて言及。背景には、開発チームと運用チームの間に存在する“壁”と、その壁で両者が隔てられることに起因する種々の問題があるとして次のように指摘した。「開発チームはビジネスのスピードに追従すべく、より迅速な開発を目指している。アジャイル開発の普及はその現れだ。だが一方で、運用チームは安定稼働や高い信頼性を目指している。すなわち、企業としてのゴールは同じなのに相反する欲求が引き起こされている」  

この相反を解消し、運用/開発のコミュニケーションやコラボレーションを統合し、一体となってビジネスのゴールに向かうための方法論がDevOpsということになる。西野氏は、「People:組織論、文化論」「Process:プロセス論」「Product:技術論」の“3つのP”が、方法論としてのDevOpsを検討する際の基軸になるが、方法論はあくまで手段に過ぎず、本質である目的を明確にする必要があると述べ、その目的を開発と運用の組織横断的な改善活動だと位置づけた。
 

DevOpsにおけるアプリケーションテスト革新の重要性


本題に入り、DevOpsの技術論が語られた。CAでは、「アプリケーションテストの革新」「リリース作業の自動化」「アプリケーション性能監視」の3つの領域それぞれで製品を提供しているが、なかでも最近重きを置くのがアプリケーションテストの革新で、リリース作業の自動化ばかりが語られがちなDevOpsにおいての、同社の戦略的な特徴でもある。

西野氏は、ソフトウェアの欠陥修正にかかるコストの経験則である「1:10:100の法則」を挙げて、「欠陥を検出するタイミングが開発工程の後ろになるほど、運用側での修正に要する労力やコストが膨れ上がり、疲弊してしまう」と指摘。そこで開発側が主体となって、アプリケーションテストの革新のためのアクションをとることで、品質向上と共に運用側の負荷を軽減できるようになると説いた。  

具体的なアクションとしてCAは、「リリース前でのアプリケーションの品質向上」「テストのスピードアップ」「異常時のアプリのふるまいを運用側と事前共有」の3点を挙げている。その説明に際し、西野氏は日本の家具メーカーにおける品質管理活動を紹介した。その家具メーカーでは、「治具」を各プロセスに組み入れて、パーツの切削や塗装の不良などをもれなく検出する仕組みを構築したことで、最終検品工程を廃しながらも、高品質の維持に成功しているという。  


コンポーネント指向テストを変革する「サービス仮想化」

 

  西野氏によれば、家具メーカーが用いた治具は、システム開発ライフサイクルで言うところの単体テスト(UT)フェーズで先取り的に実施するコンポーネント指向テストに相当するとし、治具と同様の発想でコンポーネント指向テストに特化したシミュレーションを実行可能な“サービス仮想化ツール”のアプローチを紹介した。

サービス仮想化ツールは海外ですでに2007年から「CA LISA Service Virtualization」の製品名で販売されている(日本国内でも2012年より同社から販売開始)。西野氏によれば、アプリケーションレベルで、コンポーネント周囲のアプリケーションの“振る舞い”をシミュレート可能にする製品で、「UTのためのスタブやドライバを高機能にした汎用ツールであり、あらゆるコンポーネントの粒度に対応し、UIレイヤからバックエンドレイヤにわたってシミュレートを行える」(同氏)という。

「テスト作業で複雑なところは基本、サービス仮想化ツールに任せてしまい、開発者はプログラムロジックを頭の中に描いた段階からどんどんテストを行い、修正する。また、さまざまな挙動もシミュレーションを行う。これらを実践することで、異常時のアプリのふるまいを運用側と事前共有しながら、リリース前アプリの品質向上やテスト作業のスピードアップにつながっていく」(西野氏)  

セッションの最後には、北米の大手銀行がCA LISAの導入で得られた効果がグラフで紹介された。それによると同行では、アプリケーションの品質や可用性の向上に加えて、システム障害による稼働停止回数と復旧にかかる時間も大幅に削減されている。「稼働停止回数と障害復旧時間の削減まで図られた理由は、開発側が早期から運用側に情報を提供できたからで、両者のコミュニケーション/コラボレーションの統合がまさに図られた好例である」と西野氏は強調した。

 

この記事に星をつける

おすすめ度
スタイル

BT