1. HOME
  2. IM-Press
  3. お役立ち情報
  4. DevOpsとは?~アジャイル開発との違いから導入ポイントまで開発~

DevOpsとは?~アジャイル開発との違いから導入ポイントまで開発~

DevOps(デブオプス)とは、「開発(Development)」と「運用(Operations)」を掛け合わせた造語で、ソフトウェア開発手法の一つです。開発担当者と運用担当者の間の障壁をなくすために生まれました。

立場の異なる開発担当者と運用担当者が協力して開発を進めることで、スピーディかつ柔軟にソフトウェア開発が行えるというメリットがあります。

本コラムでは、DevOpsに関する基本的な情報をまとめてご紹介いたします。

 

DevOpsとは

DevOpsとは、「開発(Development)」と「運用(Operations)」を掛け合わせた造語で、「デブオプス」と発音します。開発担当者と運用担当者が協力して開発を進めることで、スピーディかつ柔軟に開発を進められるというソフトウェア開発手法の一つです。ただ、DevOpsの定義は一定ではなく、人や機関によってさまざまに定義されています。

DevOpsの基本知識

DevOpsが生まれた背景には、開発チームの中で立場の異なる開発担当者と運用担当者が対立するために、開発がスムーズに進まないという課題がありました。開発担当者は「新しい機能を実装したい」という希望を、運用担当者は「システムを安定稼働させるために現状を維持したい」という希望を、それぞれ持つためです。もしくは、開発担当者が「ソフトウェアを素早く完成させてデプロイしたい」と希望しても、運用担当者は「セキュリティや安定性を担保するためにテストに十分な時間をかけたい」と希望するといった具合です。

しかし、本来、両者には「有用なソフトウェアをユーザーに提供する」という共通の目的があるはずです。そこで、開発チーム内での無用な対立を避け、連携して開発を進められるように、DevOpsの概念が生まれました。

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

ソフトウェア開発は従来、大規模な開発プロジェクトを想定したウォーターフォール開発が主流でした。ウォーターフォール開発には、初期段階から開発の全体像を見渡すことができ、納期を重視して調整が効くというメリットがあります。一方、リリースまでの期間が数ヵ月と長く、柔軟性が低いというデメリットも抱えていました。

こうしたウォーターフォール開発のデメリットを解消すべく、アジャイル開発が生まれました。アジャイル開発とは、迅速性や柔軟性を重視したソフトウェア開発手法の総称で、開発対象を機能単位に分解した上で、それぞれ「計画→設計→実装→テスト」のサイクルを細かく回しながら開発を進めていくという特徴があります。アジャイル開発によって、リリースのサイクルは1~2週間まで短縮されました。

DevOpsは、このアジャイル開発から生まれたものです。

DevOpsが重要な理由

DevOpsがなぜ重要なのかといえば、DevOpsが生まれた背景にある、開発チーム内で起こりがちな対立を解決することができる開発手法であるためです。

開発担当者と運用担当者の最終的なゴールが、有用なソフトウェアをユーザーに提供するであることを再確認して、協力し合い、高品質なソフトウェア開発をスピーディに提供するために、DevOpsは重要なのです。

DevOpsを導入するメリット

DevOpsを導入してソフトウェア開発を行うことで、次の3点のメリットを享受できるでしょう。

開発期間の短縮

「DevOpsとアジャイル開発の違い」でお伝えしたように、DevOpsはアジャイル開発から生まれた開発手法であり、アジャイルの考え方が色濃く反映されています。
また、開発担当者と運用担当者が協力することでスムーズに開発を進められるようになるでしょう。
こうした点から、DevOpsによる開発では、従来のウォーターフォール開発などに比べると、開発期間の短縮が期待できます。
開発期間を短縮できるということは、その分、開発コストの圧縮にもつながります。

開発生産性の向上

DevOpsを導入して、開発期間を短縮しながらユーザーの声を取り入れ、開発担当者と運用担当者が協力し合ってユーザーにとって最良のソフトウェアを目指して開発を行うことで、業務効率化と品質の向上が両立され、開発生産性の向上が見込めます。

競争力の向上

上記2つのメリットから、ビジネス上の競争力向上も期待できます。
ビジネス環境の変化は年々、目まぐるしく激しいものとなっています。ソフトウェア開発においても、スマートフォンの普及やコロナ禍による巣ごもり需要などの影響を受けて、アプリケーション市場が伸びており、今後も拡大していくと見られます。

新規参入も予想される中、DevOpsを導入して高品質でユーザーに寄り添ったソフトウェアを素早く開発できれば、競合他社に差をつけることができるでしょう。

DevOpsの6つの原則

DevOpsとアジャイルのスキル開発を目的として立ち上げられたグローバルコミュニティ「DASA(DevOps Agile Skills Association)」では、以下の6つをDevOpsの原則として掲げています。

1.顧客中心の活動

行動する勇気と革新。

2.目標を意識した創造

製品とサービスの考え方。エンジニアリング・マインドセット。コラボレーション。

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

あなたの責任を果たし、重大な成果を生むコンセプト。パフォーマンスのサポート。

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

T字型のプロファイル。補完スキル。

5.継続的改善

痛いなら、もっとやってみる。フェイルファスト(早く失敗する)。

6.自動化できるものはすべて自動化

品質を高め、フローを最大化する。

DASA JapanのWebサイトより)

これらの原則を守ることで、ハイパフォーマンスなIT組織を構築することができるといいます。

DevOpsのステップとツール

DevOpsによる開発は、ウォーターフォール開発の流れや、このサイクルを短期間で高速に回すアジャイル開発の流れと大きく変わることはなく、次の5ステップで進みます。
DevOpsを導入する際に各ステップで利用したいツールについても、併せてご紹介いたします。

計画

システム企画、要件定義、設計(基本設計・詳細設計)といった計画のフェーズです。
この段階で、運用開始後の構成管理の方法についても計画しておきます。

計画で利用したいツール

計画フェーズでは、ビジネスチャットなどのコミュニケーションツールや、社内Wikiのようなナレッジ共有ツール、コミュニケーションを取りながら進捗管理が可能なプロジェクト管理ツールなどを活用すると良いでしょう。

構築

計画フェーズで決めた内容に基づいて実際にコーディングを行うフェーズです。

構築で利用したいツール

希望の開発環境を簡単に構築できるDockerや、コンテナ管理を効率化してくれるKubernetesのようなプラットフォームを活用しましょう。

テスト

構築したシステムをテスト(単体テスト、結合テスト、統合テスト、エンド・ツー・エンド(E2E)テスト)するフェーズです。

テストで利用したいツール

開発中のソフトウェアの品質向上につながるテスト業務は大事な工程です。このテスト業務を効率化してくれるテスト自動化ツールを活用しましょう。

リリース

テストで問題がないことを確認できたら、ユーザーが実際にソフトウェアを利用できるようにリリースします。

リリースで利用したいツール

デプロイを自動化してくれる統合開発ツールや、リリースに関連する情報をまとめて表示してくれるリリースダッシュボードなどを活用しましょう。

監視

リリース後も、ユーザーにソフトウェアを安定的に提供できるよう、異常を検知するための監視が必要になります。
ただ、DevOpsでは、運用フェーズだけではなく、計画フェーズから構築を経て、運用までのすべての開発プロセスを監視する必要があります。

監視で利用したいツール

開発プロセス全体を監視するためには、さまざまなツールやプラットフォームと連携できる統合的な監視ツールが必要です。

ただ、DevOpsの概念を独学で身に付け、自組織に浸透させた上で、上記のようにステップごとにツールを導入して効果を得るのは、なかなか難しいものです。そこで、DevOpsプラットフォームを導入・活用する方法もおすすめです。

DevOpsの導入ポイント

DevOpsを導入して成果を出すために押さえておきたいポイントは、次の2点です。

開発チーム内にDevOpsの考え方を浸透させる

DevOpsの導入によって成果を出すためには、単にDevOpsのツールや手法を導入するのではなく、組織文化から変革させる必要があります。「DevOpsの基本知識」や「DevOpsが重要な理由」でお伝えしたような、DevOpsが生まれた背景や取り組む意義を、チームメンバー一人ひとりが理解し、サイロ化していたチームを一体化させようという気運の醸成が求められます。

経営層にも必要性を理解してもらい、開発チームだけでなく全社的をオープンな雰囲気に変えられるよう、コミュニケーションを活性化する施策なども並走すると良いでしょう。

指標(KGI ・KPI)を設定して取り組む

成果を出すことにフォーカスするなら、具体的な指標を掲げることが重要です。
DevOpsのKPIとして、よく用いられるものは、次のような項目です。

  • リリース頻度
  • 平均リードタイム(MLT)
  • 平均検出時間(MTTD)
  • 平均修復時間(MTTR)
  • 稼働時間
  • 変更失敗率
  • 不具合の見逃し率

まとめ

DevOpsは、開発チーム内の開発担当者と運用担当者の意見の対立を防ぎ、協力し合うことでスムーズな開発と高品質なソフトウェアをユーザーに提供することを目指したところから生まれた開発手法です。

DevOpsを導入して成果を出すには、開発チームメンバーそれぞれがDevOpsの必要性を理解した上でオープンな雰囲気の中で開発を進める必要があります。
DevOpsを効率的に進めるためのプラットフォームも提供されているので、利用するのも一手でしょう。

開発担当者と運用担当者の対立で開発業務が滞るという課題を抱えているところは、導入を検討してみてください。

Concept Book

ローコード開発・業務プロセスのデジタル化で豊富な実績を持つintra-martが、お客様のビジネスにどのような効果をもたらすのか、特長や導入効果など製品コンセプトを詳しくご紹介しています。

Concept Book

お困りごとがありましたら、お気軽にご相談頂ければと思います。

お役立ち資料ダウンロード

8分でわかるイントラマート

intra-martのローコード開発

お役立ち資料