【デモ動画あり】実現可能な地に足の着いたDevOpsの第一歩を踏み出そう
今回は、これまでなかなか導入が進まなかったDevOpsの現実解として、リーズナブルにはじめられる開発〜結合テストの短縮化について紹介する。具体的なイメージを確認できるデモ動画も用意しているので、何から手を付けるのが効果的なのかを考える際にぜひ参考にしていただきたい。
企業間の競争が激化しユーザーのニーズも変化し続ける中、企業のIT部門はこれまで以上にスピードを求められているはずだ。その対策として数年前から“DevOps”が提唱されているものの、その本格活用にはまだまだ課題を抱える企業が多いのではないだろうか。なぜ国内でいっこうにDevOpsが浸透しないのか、その課題は大きく2点あると考えている。本稿では、現状を分析するとともに、DevOpsで効果を出すために最適な第一歩を考えていきたい。
なぜDevOpsを自社に持ち込めないのか
今回は、日本ヒューレット・パッカード(以下、日本HPE)ソリューションコンサルタントの三木 啓一氏に国内でのDevOpsの状況について詳しく伺った。多くのユーザーの話を聞いていると課題は以下の2点に尽きるという。
1. 組織を横断した変更や標準化など課題も多く、既存の企業文化の変革に踏み切れない
DevOps、すなわち開発サイドと運用サイドが連携していくためには抜本的な改革が必要となる。社内を横断するような組織を作ってもうまく機能しなかったり、そもそも組織の役割を増やしたり変更してこれまでのやり方を変えることに抵抗する勢力もある。また、安易にツールを導入しても特定のプロジェクトでしか使われないなど、多くの現場で頓挫している。
2. プロセスの標準化・自動化がそもそも物理的に困難であるケースが多い
次に挙げられるのが、そもそも物理的に繋げることが難しい、あるいは不可能という課題だ。例えば、セキュリティ上の制約等で、開発環境と本番・運用環境のネットワークセグメントやロケーションが分断されていると、開発~運用までを一気通貫でつなぎ込むことが困難になる。また、国内ではSIerに開発や保守を委託しているケースが多く、欧米の内製化の文化とは異なりコントロールがしづらい状況にあるというのもよく聞く話だ。
ITがビジネスに大きく貢献するために必要とされているDevOpsだが、こうした多くの課題を抱えている中では一足飛びに実現できないのが現実だろう。そこで日本HPEでは、開発~結合テストの領域に区切って短縮化することで社内の課題を解決し、誰もがDevOpsの第一歩を踏み出せるような“リーズナブルなDevOps”のはじめ方を提唱している。
DevOpsの全体像から考えるDevOpsの現実解
リーズナブルなDevOpsがどういうものか詳しく見て行く前に、いちどDevOpsの全体像をおさらいしておきたい。DevOpsの定義はさまざまだが、一般的には「市場投下までのスピードを短縮してユーザー体験とサービスを改善しビジネス上の成果を出す取り組み」といったものだ。日本HPEの資料をもとに説明すると、「計画」「開発」「テスト」「本番」「ユーザー経験」の5つのフェーズを継続し頻繁に繰り返してユーザーからのフィードバックを改善に繋げていくことが重要になる(図1)。
まずは最初の一歩を
リーズナブルなDevOpsではまず第一歩として、手を着けやすく効果が出やすい「開発」と「テスト」のフェーズ、具体的には「継続的インテグレーションとテスト」および「継続的デリバリとデプロイメント」に注力し、開発から結合テストまでを効率化するアプローチを推奨したい。開発の初期段階に注力することで、組織の文化的な差異や環境までを大掛かりに変革する必要がなく、比較的実現性の高いステップだと言える。
また、結合テスト以降のフェーズとして、適用範囲を本番環境まで広げることでより効果を出すことができることも魅力的である。
一連のフローをデモ動画で確認しよう
今回はこの一連のフローを分かりやすく理解できる特別なデモ動画を用意しているのでぜひご覧いただきたい。テーマは開発やテストだが、現場の技術者のみならず、DevOpsに関わる多くの担当者にとっても必見の内容だ。これを見ればDevOps導入の最初の一歩をかんたんに理解できるようになるはずだ。
開発〜結合テスト DevOpsを実現するソリューションと方法論
続いて、動画でも紹介した開発〜結合テストまでのフローをより詳しく順に説明していこう。開発担当はソースコードを変更したら開発環境としてインフラを構築・設定し、その上に変更後のアプリケーションを配置していく。そしてQA担当がテスト環境で機能テストを実施、最後にステージング環境で結合テストを行うといった具合だ。それぞれの担当部門では、個々のタスクを自動化しているケースもあるかもしれない。しかし、全体のフローを考えると、それぞれの担当者の作業の進捗度合いなどから、ボトルネックが発生する。これでは、DevOpsが目指すスピードアップが実現できない。
そのため、HPEのソリューションではコードの変更から、インフラ環境のプロビジョニング、デプロイメント、更に対応するテストまでも自動実行し、開発〜テストフェーズを横断しながらプロセスを一気通貫で管理しているのだ。
- インフラのプロビジョニング~デプロイメントとテストの統合 (HPE Codar Software)
- テストの自動化(HPE Unified Functional Testing / HPE LoadRunner)
- テスト管理 (HPE Application Lifecycle Management)
一つずつ詳しく見ていこう。
1. インフラのプロビジョニング~デプロイメントとテストの統合(HPE Codar Software)
HPEでは、Runbook Automationの分野を10年以上リードしてきたノウハウを元に、マルチベンダー、ヘテロジニアスなリソースプールより、必要なリソースを切り出して提供するテンプレートを多数提供している。また、ChefやPapet、Ansible等の成果物を取り込み一元的に管理したり、CIツールのJenkinsと統合することで、インフラのプロビジョニング~アプリケーションのデプロイメントまで自動化したりできる。
ここで重要なのが、インフラ環境のプロビジョニングやデプロイメント等、個々のタスクを自動化しているだけでなく、最も時間を要するテストも取り込んで一気通貫で自動化している点だ。HPE Codarは、インフラ構築、デプロイメント、アプリケーションのテスト、リリース判定までを行うコントローラの役目を担っている。 リリースバージョン毎に複数作成されるビルドのバージョンを管理し、それぞれどこまでテストが進捗しているのかを可視化することもできる。
2. テストの自動化(HPE Unified Functional Testing / HPE LoadRunner)
DevOpsを実現するためには機能テストの自動化は必須だと言える。特にリグレッションテストで大部分を自動化しなければならない。HPEでは、UFT(Unified Functional Testing)というツールを用いる。テスト管理で、変更対象の機能に紐づくテストスクリプトをダイレクトに呼び出すことで、ビルドからテスト実行までをシームレスに自動化している。さらに、テスト結果はALM(Application Lifecycle Management)という別のツールにフィードバックすることで、トレーサビリティを管理する。 昨今注目されているモバイルアプリにおけるテストの重要性に関しては以下の記事も参考になるだろう。
モバイルアプリのテスト時における5つの課題とHPEが考えるテスト自動化とその先
3. テスト管理(HPE Application Lifecycle Management)
テストを自動化するにも、実装する機能に対して実施するテストケースがマッチングできなければ、DevOpsのワークフローに取り込むことができない。どの機能を変更したらどのテスト項目を実施すべきなのか、そのテストの結果や検出した不具合を可視化することが重要だからだ。HPE Application Lifecycle Managementでは、こういったトレーサビリティを可視化し、テストケースにマッチする自動化されたUFTなどテストスクリプトを紐付けることができる。 Codarと同様に、既存で使っているOSS等を使っても良い。
DevOpsの第一歩へ向けて
開発〜結合テストの短縮化がもたらすメリットは、スピード向上や工数等の削減、あるいは網羅性の確保による品質向上など、ある程度目に見える形で効果を実感しやすい点だ。また、適用方法を工夫すれば短期間で実現することも可能になる。こうして効果が出やすい部分からスタートすることで、今後本格的にDevOpsを導入する際も社内のマネジメントを説得しやすくなる。これまでなかなか導入が進まなかったDevOpsの第一歩としては最適だ。
最後にデモ動画のリンクを再掲しておくのでぜひご覧いただきたい。これを見ればDevOps導入の最初の一歩をかんたんに理解できるようになるはずだ。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- モバイルアプリのテスト時における5つの課題とHPEが考えるテスト自動化とその先
- アプリケーションライフサイクルの最適化がモバイルアプリの企業価値を高める
- HPが提唱するDevOps実現の確実な切り口はテストツールの革新から
- 日本HP、モバイル対応機能を拡張した自動機能テストツールの新バージョンを発表
- アプリの差別化を図るにはインフラ監視だけでは不十分。UXを担保するAPMの必要性と手法とは
- 日本HP、モバイルアプリケーション開発の効率化を支援するソリューションを拡充
- モバイルアプリの継続的テストフレームワーク、配信後のユーザー体験を測定―Think IT Mobile Developer Seminar 2015レポート
- エンタープライズモバイルに必要なアプリの品質とは?―Think IT Mobile Developer Seminar 2016レポート
- 危険なモバイルアプリで会社を傾ける前に、低価格で簡単に使えるサービスで欠陥を洗い出そう
- DevOpsを始めるときに「何をやるべきか」を理解しよう