DevOpsとは?基礎知識からメリット、導入方法や進め方のポイントまでわかりやすく解説

DevOpsとは?基礎知識からメリット、導入方法や進め方のポイントまでわかりやすく解説

DevOpsは、開発プロセスや組織文化に変革を起こし、価値の高いソフトウェアを確実かつスピーディーに届けることを実現する考え方です。ソフトウェア開発の各段階を可能な限り自動化し、テストにより品質を保証して提供するので、競争優位性を高められます。DevOpsの意味やメリット、アジャイル開発との違い、手法やステップ、ツールや導入のポイントについて紹介します。

➡︎【資料ダウンロード】業界ごとのDX推進ケースをまとめた“DX事例集”

DevOpsとは

DevOpsは、開発(Development)と運用(Operations)を組み合わせた言葉です。顧客のニーズに応え続けるために、開発や運用といった部門を超えて連携・協力し、価値の高いソフトウェアを確実かつスピーディーに届けることを実現する組織変革の考え方をいいます。

DevOpsでは、ソフトウェア開発の各段階を可能な限り自動化します。そのため、ビルドやテスト、リリース、デプロイや監視といった作業を迅速に、かつ品質を保証しながら行えるようになるので、競争優位性を高められるのです。

★DevOpsは、価値の高いソフトウェアを確実かつスピーディーに届けることを実現する組織変革の考え方
・DevOpsは開発(Development)と運用 (Operations)を組み合わせた言葉
・DevOpsではソフトウェア開発の各段階を可能な限り自動化する
・迅速かつ品質を保証しながら行うので、競争優位性を高められる

DevOpsの基礎知識

DevOpsの起源については、2008年にITコンサルタントのPatrick Debois氏が行ったプレゼンテーション「Agile Infrastructure & Operations」が元になっていると言われます。

2009年には「Velocity 2009」というイベントにおいて、エンジニアのJohn Allspaw氏とPaul Hammond氏が「10+ Deploys Per Day: Dev and Ops Cooperation at Flickr」というプレゼンを発表し、DevOpsという言葉が使われるようになっていきました。

従来からの組織は、開発部門と運用部門が別組織となっている場合があります。開発部門の目的は、「システムへの新しい機能追加」であり、運用部門の目的は「システムの安定稼働」と、目的の相違により対立しがちな構造となっていたのです。

しかし、両部門の目的の先には、「顧客中心のシステムやソフトウェア開発でビジネスの価値を高め、それをより迅速にエンドユーザーに届け続ける」という共通のミッションが存在しています。

ミッションの実現のためには、開発プロセスや組織文化そのものに変革を起こしていく必要があり、この活動をDevOpsと呼ぶようになりました。

DevOpsが重要な理由

デジタル化が急速に進むグローバル社会において、顧客が求める価値は短い期間で変化するようになりました。その変化に対応した価値を提供するために求められるのはアジリティ(俊敏さ)です。顧客の求める価値を、俊敏に市場へ投入していける組織づくりや能力が重要になります。

日本では、開発や運用といった経営機能ごとに編成された組織形態である、縦割り構造のサイロ化組織となっている企業が多くあります。このサイロ化形態では、部門ごとの考え方も異なり、部門間をまたいだ開発プロセスの実現が難しかったのです。
そこで、DevOpsの考えを導入し、開発プロセスや組織文化そのものに変革を起こしていくことが重要視されているのです。

これは、経済産業省の『DXレポート2(中間取りまとめ)』の、「ITシステムのみならず企業文化(固定観念)を変革する」というDX(デジタルトランスフォーメーション)の本質と同様の考え方になります。

➡︎【資料ダウンロード】業界ごとのDX推進ケースをまとめた“DX事例集”

DevOpsを導入するメリット

DevOpsを導入するメリットには、ソフトウェアの迅速なリリースと配信、高い信頼性とセキュリティの実現といったことが挙げられます。

迅速なリリースと配信

開発と運用が連携できると、情報共有や決定のスピードが上がり、ソフトウェアの新しい機能リリースやバグ修正を迅速に行えるようになります。

開発者は、IaC(Infrastructure as Code)といった手法を使い、本番レベルの環境を用意することにより、テストや開発が容易になり、より迅速な展開やバージョンアップデートが可能です。より素早く顧客のニーズに応えられるようになるので、競争優位性を高めることにつながります。

高い信頼性

継続的インテグレーションと継続的デリバリー(CI/CD)といった手法を使い、ビルドやリリースといった工程をできる限りツールで自動化します。アプリケーションの更新やインフラストラクチャの変更が機能的に安全であると、品質を保証しながら配信を行うため、高い信頼性を保てるのです。

セキュリティ

脆弱性の評価と修正を、CI/CDシステムに統合することで、品質保証(QA)においても他のテストと並行してコンテナなどでセキュリティテストを実行できます。さらにビルド変更や脆弱性の発見のたびにセキュリティテストを行うことで、高レベルのセキュリティの保証となるでしょう。

➡︎【資料ダウンロード】業界ごとのDX推進ケースをまとめた“DX事例集”

アジャイル開発との違い

アジャイル開発の意味や、アジャイル開発とDevOpsの違いはどのような点か、確認していきましょう。

アジャイル開発とは

アジャイル(agile)とは「素早い」「機敏な」「頭の回転が速い」という意味です。

アジャイル開発は、計画・設計・実装・テストの開発工程を、機能単位の小さいサイクルで迅速に繰り返すシステムやソフトウェアの開発手法です。

従来のウォーターフォール開発とは異なり、優先度の高い重要な機能から着手します。素早くリリースしつつブラッシュアップしていくことを念頭に置いているため、仕様変更に強いことが特徴です。

アジャイル開発とDevOpsの違い

アジャイルは、開発工程を機能単位の小さいサイクルで繰り返す開発手法です。これは対象を「システムやソフトウェアの開発」とした、ビジネスの価値を高める開発アプローチです。

DevOpsも、同じくビジネスの価値を高めるシステムやソフトウェア開発が目的であり、確実にエンドユーザーに届けるところまでをミッションとしています。

つまりDevOpsは、「システムやソフトウェアの展開」まで、アジャイルの考えを拡張した開発アプローチといえるでしょう。

➡︎【資料ダウンロード】業界ごとのDX推進ケースをまとめた“DX事例集”

DevOpsの手法

DevOpsの手法として、DevOpsのフレームワークを議論するコミュニティDASA(DevOps Agile Skills Association)が提唱する、6つの原則(ベストプラクティス)を紹介します。

1. 顧客中心の行動

IT製品やサービスを構築する活動のすべては、顧客を中心に短いフィードバックサイクルで行われることが重要です。DevOpsを行う組織は、顧客の要求に応えるために、継続的にイノベーションを起こしていく必要があります。

製品やサービスの顧客満足を最大にするために、絶えず投資し行動し、個々の戦略がうまくいかないときは方向転換しましょう。

2. 提供する価値を念頭において創造する

組織は、ウォーターフォールやプロセス指向のモデルに代表される、各部門や個人が特定の役割のみに従事することから脱却する必要があります。全体像を共有しコラボレーションして、全従業員が顧客に提供する価値を念頭において行動します。

3. エンドツーエンドの責任

ITサービス開発後、サービスの展開と保守を運用部門に任せるのではなく、DevOps環境では、製品のライフサイクルすべてに責任を負うよう、垂直統合で組織化します。

組織化されたチームは提供するITサービスに対し、製品寿命が尽きるまで責任を持ちサポートと製品の品質を保証します。

4. 機能横断型自律チーム

機能横断型自律チームとして、メンバーにはバランスの取れたスキルが必要です。テストや分析、コーディングなどの知識やスキルだけを持つ旧来のITスペシャリストではなく、オールラウンドなチームメンバーが必要です。このようなチームは、個人の成長と発達の場となります。

5. 継続的改善

エンドツーエンドの責任のために、組織は顧客のニーズ、法律の変更、新しい技術の利用可能性といった状況の変化に照らして継続的に適応する必要があります。

DevOps文化では、無駄を最小限に抑え、スピード、コスト、提供のしやすさを最適化し、提供する製品やサービスを継続的に改善することに強く焦点を置きます。失敗から学ぶ文化を定着させることが不可欠です。

6. できることはすべて自動化

速いサイクルで継続的に改善する文化を採用し、エンドユーザーや顧客から即座にフィードバックを得られる組織とする必要があります。

CI/CDを含むソフトウェア開発プロセスだけでなく、IaCによるインフラ全体の自動化を考えましょう。

➡︎【資料ダウンロード】業界ごとのDX推進ケースをまとめた“DX事例集”

DevOpsの成熟度

DevOps成熟度調査として、DASAのアンケート形式の「DASA DevOps Competence Quickscan」があります。4つのスキルエリアと8つの知識(ナレッジ)エリアについて、それぞれ2つずつ、合計24の質問で、入門(L1)からマスター(L5)のどのレベルにいるかを確認できるものです。各エリアの項目と意味の例は、それぞれ次の通りです。

スキルエリア

  1. 1. 勇気
     コーチング、自信、積極性、内省、信頼、オープンな議論、実験、失敗、変化への勇気
  2. 2. チームビルディング
     相手の立場を理解する、コラボレーション、相互説明責任、共通の目的、サービスや製品を統合的にサポートする能力
  3. 3. リーダーシップ
     ハイパフォーマンスへのチームの促進、謙虚さ、透明性、ライフサイクルマインドセット、ステークホルダーマネジメント
  4. 4. 継続的改善
     カイゼンマインドセット、知識共有、適応能力

ナレッジエリア

  1. 1. ビジネス価値最適化
    ITサービスの実際の利用、ユーザーコメントのチームへのフィードバックループ、サービスレベル管理、完了の定義、ビジネス活動・パフォーマンスのモニタリング、ビジネスケース管理など
  2. 2. ビジネス分析
     機能要件、非機能要件、ビジネスプロセスの長期的な開発、データ分析
  3. 3. アーキテクチャと設計
     提供サービスに対する改善のテクノロジー視点での影響評価、全体的なサービスデザイン
  4. 4. プログラミング
     ソフトウェア・エンジニアリングの習得、Everything as Code(EaC)、データ管理
  5. 5. 継続的デリバリー
     テスト自動化、デプロイとリリース管理、構成管理、バージョン管理、クラウド、コンテナ化、機能中心のデリバリー
  6. 6. テスト仕様作成
     テストケースの設計、テストコンセプト
  7. 7. インフラストラクチャ・エンジニアリング
     パフォーマンス管理(ロードバランシングなど)、キャパシティ管理、クラウド、コンテナ化
  8. 8. セキュリティ、リスク、コンプライアンス
     セキュリティ、サービス継続性計画

自社のDevOpsはどのような状態であるか把握を行い、レベルを上げるにはどのようにする必要があるのか、参考にしてみましょう。

➡︎【資料ダウンロード】業界ごとのDX推進ケースをまとめた“DX事例集”

DevOpsの段階とツール

DevOpsの各段階で行うことや、利用するツールにはどのようなものがあるかを確認していきましょう。

計画

計画段階では、ビジネスの価値(バリュー)や要件定義を行います。この段階で使うツールは、ナレッジベースのための社内Wikiやタスクやプロジェクト管理機能といったものです。プロジェクト管理ツールとしてJIRAやAzure DevOpsがよく知られています。

コーディングおよびビルド

ソフトウェアの設計や実装において、過去バージョンの情報をすぐに確認できるバージョン管理システムやビルド自動化ツールを用います。プログラムテスト自動化を可能にするジョブ実行機能があるGitHubやGitLab、Bitbucketといったツールを活用します。

テスト

継続的なテストを実施し、コードの品質を確保します。有名なツールとして、Java言語の単体テストツールのJUnitやTestNG、Webアプリケーション自動テストツールのSelenium、Webアプリケーションの負荷テストプラットフォームのBlazeMeterがあります。

プロビジョニングおよびデプロイ

開発したソフトウェアのパッケージ化、本番環境の管理および配置を行います。ツールとしては、複数のサーバーに対してアプリケーションのデプロイや、管理をする構成管理ツールAnsibleやPuppet、コンテナのアプリケーション実行環境を管理するDockerやKubernetesが挙げられます。

監視

本番ソフトウェア環境をモニタリングし、インシデントや異常の検出を行います。使用するのは監視ツールやインシデント管理ツールと呼ばれるものです。ツールの例として、インフラやアプリのパフォーマンス監視、ログ管理の統合および自動化を行うNew RelicやDatadog、さまざまなDBのログをリアルタイムに可視化するダッシュボードツールGrafana、ネットワーク上のデータから内容を解析表示するネットワークアナライザのWiresharkがあります。

➡︎【資料ダウンロード】業界ごとのDX推進ケースをまとめた“DX事例集”

DevOpsの導入ポイント

DevOps導入のポイントを確認していきましょう。

組織にカルチャー(文化)を浸透させる

DevOpsは、組織文化そのものに変革を起こしてミッション実現をする活動です。文化を変容させていくには、考え方を変化させ、部門を隔てているサイロの解消をしましょう。

ソフトウェアの開発と運用のスピードと品質目標を明確にし、責任を共有し、各自のやるべきことを明確にします。

さらに、頻繁にコミュニケーションを取り、強い信頼関係と情報の流れを重視し、コラボレーションを促進する教育の機会を設けましょう。

KPIを設定する

組織にとって最も重要で最も価値のあるものは何かによって、計測する指標であるKPIは異なります。

その中でも、DevOpsの研究者Nicole Forsgren氏はDevOpsの効果を測定するには「リードタイム」、「リリース頻度」、「平均修復時間」(MTTR)、「変更失敗率」の4つが適切であると述べています。

リードタイム:ソースコードのコミットからデプロイまでの所要時間
リリース頻度:ソフトウェアの本番環境へのデプロイの頻度
平均修復時間(MTTR):サービスダウンが発生してから復旧するまでの時間
変更失敗率:本番環境へリリースした時のサービスダウン発生率

これらはチーム全体の目標を反映し、組織のパフォーマンス向上を示します。そのため、すべての状況を監視することが重要です。

➡︎【資料ダウンロード】業界ごとのDX推進ケースをまとめた“DX事例集”

まとめ:DevOpsは顧客中心の迅速な開発プロセスを実現する組織変革

DevOpsは、ビジネスの価値を高めるシステムやソフトウェアを、より迅速にエンドユーザーに届け続ける開発プロセスを実現する組織変革です。DASAのフレームワークを参考に、自社の状況を把握し、強みや特徴を磨き、企業の競争優位性を高めていきましょう。

デジタルトランスフォーメーションを検討している企業ご担当者様へ

モンスターラボは、2200件以上のサービス・プロダクト開発の実績から得られたデジタル領域の知見を活かし、企業のDX推進戦略をあらゆる面からサポートいたします。

ご提案・お見積もりの段階から、デジタル領域の知見を持つコンサルタントをアサイン。新規事業の立ち上げ・既存事業の変革などのビジネス戦略を上流工程からサポートいたします。

開発プロジェクトでは、UXリサーチ・設計、UIデザイン、ブランド開発、デジタルプロダクト開発、グロースハックまでの全行程をワンストップで提供。

モンスターラボが提供するサポートの詳しい概要は、下記のボタンから資料をダウンロードしてください。

DX支援サービス紹介資料ダウンロード

関連記事

直近のイベント

記事の作成者・監修者

モンスターラボ DXブログ編集部

モンスターラボ DXブログ編集部