
DevOps は、ソフトウェア開発と情報技術運用の統合と自動化です。[ a ] DevOps はソフトウェア開発に必要なタスクを網羅しており、開発時間の短縮と開発ライフサイクルの改善の両方につながります。[ 1 ]アメリカのソフトウェアアーキテクトである Neal Ford 氏によると、DevOps は、特に継続的デリバリーを通じて、「痛みを前倒しする」原則を採用し、困難なタスクに早期に取り組み、自動化を促進し、迅速な問題検出を可能にします。[ 2 ]
議論の余地はあるものの、[ b ] [ c ] [ d ] [ e ] DevOps は一般的に、共有所有権、ワークフローの自動化、迅速なフィードバックという 3 つの主要原則によって特徴付けられます。学術的な観点からは、CSIROとソフトウェア エンジニアリング 研究所の 3 人のコンピュータ サイエンス研究者であるLen Bass 、Ingo Weber、Liming Zhu は、DevOps を「システムへの変更のコミットから変更が通常の運用に導入されるまでの時間を短縮し、同時に高い品質を確保することを目的とした一連のプラクティス」と定義しました。[ 6 ] ただし、この用語はさまざまな文脈で使用されています。最も成功している DevOps は、特定のプラクティス、文化の変化、およびツールの組み合わせです。[ 7 ]
ソフトウェア開発手法と展開および運用概念を組み合わせる提案は、80年代後半から90年代初頭に初めて現れた。[ 8 ]
2009年、ベルギーのヘントで最初のDevOps Daysカンファレンスが開催されました。このカンファレンスは、ベルギーのITコンサルタント兼実務家であるパトリック・デボワによって創設されました。[ 9 ] [ 10 ]このカンファレンスは現在、他の国にも広がっています。[ 11 ]
2012年に、 Puppet LabsのAlanna Brownによって最初の「State of DevOps」レポートが発表されました。[ 12 ] [ 13 ]
2016 年、スループット (デプロイ頻度、変更のリードタイム) と安定性 (平均復旧時間、変更失敗率) のDORAメトリクスが、その年の State of DevOps レポートで公開されました。 [ 12 ]しかし、調査方法とメトリクスは一部の専門家から批判されました。[ 14 ] [ 15 ] [ 16 ]これらの批判に対応して、2023 年の State of DevOps レポート[ 17 ]では、以前のメトリクスが引き起こした混乱を認め、安定性メトリクス「平均復旧時間」を「デプロイ失敗時の復旧時間」に更新する変更が公表されました。[ 18 ]
2024年のレポートでは、失敗したデプロイメントの復旧時間を安定性からスループットに移動させ、ユーザーに見える問題を修正するために行われた計画外のデプロイメントの割合を測定する新しい「再作業率」メトリックを導入することで、メトリクスのフレームワークを再構築しました。[ 19 ] 2025年には、DORAはチームをパフォーマンス階層に分類することをやめ、代わりに、デリバリーメトリクスと燃え尽き症候群、摩擦、知覚価値などの人的要因を組み合わせた7つのチームアーキタイプを導入しました。[ 20 ]
DevOps Research and Assessment (DORA) は、ソフトウェア開発の効率と信頼性を測定することを目的とした一連の指標を開発しました。これらの指標には以下が含まれます。[ 21 ] [ 22 ]
DevOps の基本的な考え方の多くは、リーンやデミングのPLAN DO CHECACTサイクル、トヨタウェイ、コンポーネントやバッチサイズを分割するアジャイルアプローチなど、他のよく知られたプラクティスと類似しています。 [ 23 ] 1990 年代のITILの「トップダウン」の規範的なアプローチと厳格なフレームワークとは対照的に、DevOps は「ボトムアップ」で柔軟性があり、ソフトウェア エンジニアが自分たちのニーズに合わせて作成したものです。[ 24 ]
現代の DevOps や、自動ビルドとテスト、継続的インテグレーション、継続的デリバリーなどの標準的な DevOps プラクティスの動機は、非公式には 1990 年代、正式には 2001 年に遡るアジャイルの世界に由来します。エクストリーム プログラミングなどの手法を使用するアジャイル開発チームは、アプリケーションの運用とインフラストラクチャに責任を持ち、その作業の多くを自動化しない限り、「価値のあるソフトウェアを早期かつ継続的に提供することで顧客を満足させる」ことはできませんでした[ 25 ] 。2000 年代初頭にScrum が支配的なアジャイル フレームワークとして登場し、多くのアジャイル チームの一部であったエンジニアリング プラクティスを省略したため、運用とインフラストラクチャ機能を自動化する動きはアジャイルから分裂し、現代の DevOps へと拡大しました。今日、DevOps は、方法論に依存しない開発済みソフトウェアのデプロイに重点を置いています。
ArchOpsは、DevOpsとは異なり、運用展開のためのソースコードではなく、ソフトウェアアーキテクチャの成果物から出発します。 [ 26 ] ArchOpsは、アーキテクチャモデルがソフトウェア開発、展開、運用において第一級のエンティティであると主張します。
CI/CD は、自動化と同様に DevOps の成功に不可欠です。[ 27 ]さらに、チーム間およびチーム内のコラボレーションとコミュニケーションの改善は、リスクを軽減しながら市場投入までの時間を短縮するのに役立ちます。[ 28 ]
データベース DevOps は、DevOps とCI/CD の原則をデータベースの開発と運用に直接適用します。スキーマの変更、マイグレーション、参照データ、その他のデータ層の更新を、アプリケーション コードに使用されるバージョン管理された自動化されたパイプラインに統合することで、より信頼性の高いデプロイメントが可能になります。このアプローチにより、アプリケーションとデータの変更間の連携も改善されます。[ 29 ] [ 30 ]
一般的なデータベース DevOps プラクティスには、データベース スキーマ定義をバージョン管理下に置くこと、データベースの変更に対して自動テスト (単体テストや移行検証など) を適用すること、CI/CD パイプラインを通じてこれらの変更をデプロイすることが含まれます。これらのプラクティスにより、開発システムと本番システム間の「スキーマ ドリフト」と呼ばれるものが減少し、デプロイの失敗のリスクが低減されます。[ 31 ] [ 32 ]
モバイル DevOps は、DevOps の原則をモバイル アプリケーションの開発に適用する手法です。従来の DevOps は一般的なソフトウェア開発プロセスの効率化に重点を置いていますが、モバイル開発には独自の課題があり、それに合わせたアプローチが必要です。[ 33 ]モバイル DevOps は、モバイル アプリ開発に特化した DevOps の単なる一分野ではなく、モバイル特有の要件に合わせて DevOps の哲学を拡張し、再解釈したものです。
2003年、Googleはサイト信頼性エンジニアリング(SRE)を開発しました。これは、エンドユーザーのエクスペリエンスの質を維持しながら、大規模で高可用性のシステムに新機能を継続的にリリースするためのアプローチです。[ 34 ] SREはDevOpsの開発よりも前に登場しましたが、両者は一般的に関連していると考えられています。この分野の創始者の中には、SREをDevOpsの実装とみなす人もいます。[ 35 ]
トヨタ生産方式(TPS)は、継続的改善、カイゼン、フロー、小ロット生産に重点を置くことで、リーン思考に影響を与えました。迅速なフィードバック、群集行動、問題解決を生み出すアンドンコードの原則は、 TPSに由来しています。[ 36 ] [ 37 ]
その名の通り、DevSecOpsはDevOpsをセキュリティプラクティスに統合したものです。従来の中央集権型のセキュリティチームモデルとは異なり、各デリバリーチームは適切なセキュリティ制御をソフトウェアデリバリーに組み込む権限を与えられています。チームは開発ライフサイクルの早い段階でテストを実施し、セキュリティプラクティスを実装します。これが「シフトレフト」と呼ばれる所以です。セキュリティは、静的、ソフトウェア構成、動的という3つの主要な領域でテストされます。
静的アプリケーションセキュリティテスト(SAST)によるソフトウェアの静的チェックは、セキュリティに特化したホワイトボックステストです。このような静的コード解析を行うには、プログラミング言語に応じて異なるツールが必要です。ソフトウェアの構成、特にライブラリが分析され、各コンポーネントのバージョンがCERTやその他の専門家グループが公開している脆弱性リストと照合されます。クライアントにソフトウェアを提供する際には、ライブラリのライセンスと配布するソフトウェアのライセンスとの整合性、特にコピーレフトライセンスが重要視されます。
動的テスト(ブラックボックステストとも呼ばれる)では、ソフトウェアの内部機能を知らない状態でテストが行われます。DevSecOpsにおいては、この手法は動的アプリケーションセキュリティテスト(DAST)または侵入テストと呼ばれることがあります。その目的は、クロスサイトスクリプティングやSQLインジェクションの脆弱性など、欠陥を早期に検出することです。
静的テストと動的テストで検出された欠陥は、多くの場合、Mitre Corporationが管理するCommon Weakness Enumeration (CWE)などの分類体系に基づいてトリアージされ、分類されます。これにより、セキュリティバグ修正の優先順位付けが容易になり、頻繁に発生する脆弱性を推奨される緩和策で修正できるようになります。2025 年現在、CWE は、頻繁に発生する脆弱性のリストである CWE Top 25 を維持しています。[ 38 ]さらに、Open Worldwide Application Security Project (OWASP)などの組織は、業界全体で頻繁に発生するソフトウェアの脆弱性のリストを維持しています。[ 39 ]
DevSecOpsは、セキュリティ教育、設計段階からのセキュリティ、セキュリティ自動化を統合することで、安全なソフトウェアを生産するための包括的なアプローチを含む文化的な変化としても説明されています。[ 40 ]
DevOps イニシアチブは、開発およびデリバリー プロセス中に企業の運用、開発者、およびテスターがどのように協力するかを変えることができます。 [ 41 ] [ 42 ]
DevOps は、組織内の一貫性、信頼性、効率性をサポートしようとします。これは通常、共有コードリポジトリまたはバージョン管理によって実現されます。[ 43 ]多くの組織は、仮想マシン、コンテナ化(またはOS レベルの仮想化)、CI/CDなどの DevOps 自動化技術を促進するためにバージョン管理を使用しており、[ 44 ] Gitバージョン管理システムとGitHubプラットフォームが例として挙げられています。
GitOpsはDevOpsから発展したものです。その名前は、広く普及しているバージョン管理システムGitに由来しており、デプロイメント構成の具体的な状態もバージョン管理されています。構成変更はコードレビューの手法を用いて管理でき、バージョン管理を用いてロールバックできます。基本的に、コードへのすべての変更は追跡され、ブックマークされ、履歴の更新が容易になります。Red Hatの説明によると、「変更の可視性とは、問題を迅速に追跡および再現できる能力を意味し、全体的なセキュリティが向上します。」[ 45 ]
DataOpsは、データに対する統合的かつプロセス指向の視点と、アジャイルソフトウェアエンジニアリングの自動化および手法を組み合わせた一連のプラクティス、プロセス、およびテクノロジーであり、データ分析の分野で品質、スピード、コラボレーションを向上させ、継続的な改善の文化を促進します。[ 46 ] DataOpsはベストプラクティスの集合として始まりましたが、現在ではデータ分析に対する新しい独立したアプローチとして成熟しています。[ 47 ] DataOpsは、データ準備からレポート作成まで、データライフサイクル全体に適用され[ 48 ]、データ分析チームと情報技術運用の相互接続性を認識しています。[ 49 ]
DataOpsは、ビジネス目標に沿って分析開発のサイクルタイムを短縮するためにアジャイル手法を取り入れています。 [ 48 ]
DevOpsは、オンデマンドのITリソースを活用し、ソフトウェアのテストとデプロイメントを自動化することで、継続的なデリバリーに重点を置いています。ソフトウェア開発とIT運用のこの融合により、ソフトウェアエンジニアリングとデプロイメントの速度、品質、予測可能性、および規模が向上しました。DataOpsは、DevOpsの手法を取り入れ、データ分析に同様の改善をもたらそうとしています。[ 49 ]
DataOpsは、統計的プロセス管理(SPC)を利用してデータ分析パイプラインを監視および制御します。SPCを導入することで、運用システムを通過するデータは常に監視および検証されます。異常が発生した場合は、データ分析チームに自動アラートで通知されます。[ 50 ]
DataOpsは、特定のテクノロジー、アーキテクチャ、ツール、言語、フレームワークに縛られるものではありません。最高のDataOpsツールは、コラボレーション、オーケストレーション、品質、セキュリティ、アクセス、使いやすさを促進します。[ 51 ]
DataOps は、InformationWeek の寄稿編集者である Lenny Liebmann が、2014 年 6 月 19 日にIBM Big Data & Analytics Hub のブログ記事「ビッグデータの成功に DataOps が不可欠な 3 つの理由」で初めて紹介しました。 [ 52 ] DataOps という用語は、後に Tamr の Andy Palmer と Steph Locke によって普及しました。[ 53 ] [ 49 ] DataOps は「データオペレーション」の愛称です。[ 48 ] 2017 年は DataOps にとって重要な年であり、エコシステムの大幅な発展、アナリストによる報道、キーワード検索の増加、調査、出版物、オープンソース プロジェクトなどがありました。[ 54 ] Gartner は、 2018 年にDataOps をデータ管理のハイプ サイクルに位置付けました。[ 55 ]

世界のデータ総量は、2025 年までに 32% CAGR で 180 ゼタバイトに増加すると予測されています (出典: IDC)。[ 51 ] DataOps は、この大幅なデータ増加に対応するためのツール、プロセス、組織構造を提供することを目指しています。[ 51 ]自動化により、データの事前準備、取り込み、大規模な統合データベースの管理が効率化され、データ チームはより効率的かつ効果的な方法で新しい分析を開発できるようになります。[ 56 ] [ 49 ] DataOps は、データ分析の速度、信頼性、品質の向上を目指しています。[ 57 ]データ サイエンティスト、アナリスト、データ / ETL (抽出、変換、ロード) エンジニア、情報技術 (IT) 、品質保証 / ガバナンス間のコミュニケーション、コラボレーション、統合、自動化、測定、協力を重視しています。
{{cite book}}: CS1メンテナンス: 場所の発行元が見つかりません (リンク)