知っておくべきDevOpsの「4つの原則」

2022年11月9日(水)
シャロン・ゴーディン(Sharon Gaudin)大瀬 雅之 (翻訳者)
DevOpsにおいては、最も大切にすべき「4つの原則」があります。具体的に言うと「ソフトウェアライフサイクルの自動化」「コラボレーションとコミュニケーション」「継続的な改善と無駄の最小化」「短いフィードバックループでユーザーのニーズに集中する」です。

はじめに

DevOpsが普及してきたことで、セキュリティ(DevSecOps)やビジネス(BizDevOps)の要素を含むものも出てくるようになり、初心者にとっては混乱してしまうかもしれません。そこでDevOpsにおいて最も重要になるのが、組織のソフトウェア開発実践の改善につながる「4つの原則」です。

  1. ソフトウェア開発ライフサイクルの自動化
  2. コラボレーションとコミュニケーション
  3. 継続的な改善と無駄の最小化
  4. 短いフィードバックループでユーザーのニーズに集中

DevOpsの4つ原則について
検討を始めよう

今から15年ほど前に「開発と運用をシームレスに統合する」というアイデアが生まれました。「DevOps」という用語は2009年にPatrick Deboisという人が作りました。彼はDevOps方法論の第一人者のなかの1人です。DevOpsにはアジャイルソフトウェア開発の多くの原則が含まれており、なかでも開発と運用のサイロ化を打破することに重点が置かれています。発表以来、DevOpsの人気は高まり続けており、その範囲は中小企業からレガシーシステムを使用する企業まで、ほぼ全ての規模の企業にまで及びます。

他の開発手法と同様に、DevOpsは組織固有のニーズと環境に適応し、ビジネスにとって最重要なことに適応することを念頭に置いています。DevOpsの中核には、次の4つの原則があります。

1. ソフトウェア開発ライフサイクルの自動化

あらゆるDevOpsチームの理想(目指すもの)は「自動化」です。DevOps以前のソフトウェア開発はプロセスのすべての段階で人間の関与(および物理的なハンドオフ)を必要とする非常に面倒な手作業でした。人的関与があるため、企業が新しいコードを更新またはリリースできるのが年に1度、多くの企業のリリースサイクルは18~24か月でした。

今では優秀なDevOpsチームであれば1日に何度もコードをリリースしています。それを可能としているのが自動化です。

DevOpsにおける自動化の重要性を理解するために、ソフトウェアテストについて考えてみましょう。このステップはリリースの遅延を引き起こす原因としていつも見過ごされ、評価されていない工程です。もちろんソフトウェアのテストは重要です。テストを実施しなければ、企業は壊れたコードや安全でないコードをリリースするリスクがあります。

恐らく、テストはDevOpsの中で最も実践的です。テストケースを作成し、無数のテストを実行し、結果を分析し、修正があれば開発者に戻す必要があります。コードが予定どおりにリリースできない原因をいち早く見つけるのがテストなのです。

開発プロセスに自動化とコードを書いているときに、基本的なソフトウェアテストの実行を採り入れるようにしてください。テストの自動化によりプロセス全体が劇的にスピードアップし、テスターはより損害を与える可能性のあるコード品質の問題を見つけ出すことに専念できます。

テストはDevOpsの自動化において重要な工程の1つですが、重要なのはテストだけではありません、継続的インテグレーションは新しいコードを既存のコードに移動するプロセスを自動化し、継続的デプロイはリリースの自動化に役立ちます。また、IaC(Infrastructure as Code)により、開発環境のプロビジョニングプロセスを簡単に自動化できます。

2. コラボレーションとコミュニケーション

優れたDevOpsチームには自動化があり、一流のDevOpsチームになると「コラボレーション」と「コミュニケーション」も加わります。開発者と運用者(および、セキュリティ、テスト、利害関係者など)をまとめるという基本的な考え方はチームで協力できるかにかかっています。そして明確で定期的なコミュニケーションが必要です。

これはとてもシンプルな原則ですが、油断や漏れは細部に存在します。開発者はコードを書き、それを世界に広めたいと考えています。運用担当者はツール、コンプライアンス、およびクラウドに重点を置いています。そして、セキュリティチームはコードが安全であることを確認したいと考えています。

開発、運用、セキュリティはどれも異なる優先順位を持ち、同じ「言語」を話さない可能性があり、異なる視点で問題にアプローチしようとします。コミュニケーションとコラボレーションのギャップが依然として大きいため、開発、運用とセキュリティとの連携は多くの組織では上手く行っていません。

チームをまとめるには努力が必要で、多くの場合、既成概念にとらわれない考え方が必要です。優先順位に悩むような状況では、チームはDevOpsを成功させるためにコミュニケーションを取る必要があります。2021年の「Global DevSecOps Survey」の調査結果によると、DevOps自体がより良いコミュニケーションと開発者を成功に導く、と示唆しています。

3.継続的な改善と無駄の最小化

DevOpsは、リーンやアジャイルなどのソフトウェア開発方法論に大きく依存しており、無駄の削減と継続的な改善にも重点を置いています。時間を無駄にしないようにテストなどの反復タスクを自動化する場合でも、新しいコードをリリースするために必要なステップ数を減らす場合でも、うまく機能しているDevOpsチームは継続的にパフォーマンスメトリクスを測定し、改善が必要な領域を特定します。他の多くの指標に加えて、リリース時間の改善、平均復旧時間の短縮、発見されたバグの数の削減を、継続的に改善することを目指してください。

4. 短いフィードバックループで
ユーザーのニーズに集中

4つの原則の最後は、実際のユーザーをプロセスの全ステップに参加させることの重要性です。自動化、コミュニケーションとコラボレーションの改善、継続的な改善を通じて、DevOpsチームは実際のユーザーが本当に求めているものと、それをユーザーに提供する方法により、多くの時間を短縮できます。ユーザーに感動してもらえる方法を見つけることは簡単ではないのは確かです。チームはユーザーのモチベーションをつかむためのプロセスを実装するところで試行錯誤することでしょう。

もう1つの課題は、収集したユーザーフィードバックを迅速に提供して、時間を無駄にしないようにすることです。だからこそ、フィードバックループを短くすることが重要であり、時間をかけて、よりフィードバックループを短くしていく必要があります。

DevOpsモデルとプラクティスの利点、
そしてDevOpsの未来はどうなるか

チームがDevOpsを正しく実践すると、どのようなことが起きるでしょうか。先述の調査によると、開発者の60%が「少なくとも2倍の速さでコードをリリースしている」と回答しました。他にもコード品質の向上、市場投入までの時間の短縮、計画の改善などがあります。

追加として、回答者は「DevOpsプラクティスで成功すると開発者の満足度も高くなり、開発者の満足度が高いほど生産性も高くなることを示す科学的データがある」と語っています。

DevOpsの採用と成功は、世界的なパンデミックを契機に大きく「ジャンプスタート」しました。私たちの調査結果を見ると、開発チームは「どうやって一緒に仕事をするか」という文化的な課題に直面し、乗り越えていきました。さらに「適切なテクノロジーをどのように採用するか」という課題へと成熟したことが分かります。

Kubernetes、DevOpsプラットフォーム、人工知能(AI)/械学習(ML)などの先進的テクノロジーの採用は、DevOpsの将来がどのように発展するかのヒントを提供してくれています。今後は自動化が進み、AI/ML活用でよりスマートな意思決定が進むことは間違いないでしょう。

著者
シャロン・ゴーディン(Sharon Gaudin)
GitLab Senior Content Marketing Manager
「Computerworld」「Network World」「InformationWeek」などのテクノロジー系メディアの記者として、アプリケーション開発、セキュリティ、AI、ロボット、量子コンピュータなどについて記事を執筆。その後、ウスター・ポリテクニック・インスティチュート(WPI)のコミュニケーション学部でリサーチ・ライターを務め、現在に至る。
著者
大瀬 雅之 (翻訳者)
GitLab合同会社 戦略アカウントマネージャー

連載バックナンバー

システム開発技術解説
第10回

ソフトウェア開発の生成AI導入による生産性向上を阻む「3つ」の課題

2024/10/3
今回は、2024年にGitLabが発表した「グローバルDevSecOps調査レポート」をもとに、ソフトウェア開発の生成AI導入による生産性向上を阻む課題点を考えていきます。
システム開発技術解説
第9回

【事例】DevOps環境で使うツールを統一することで生産性向上や高速化を実現

2024/2/5
今回も、実例を通じてアジャイル開発やCI/CDなど、モダンな開発環境と運用をどのように実現していくのかを紹介していきます。
システム開発技術解説
第8回

【事例】すべての機能を利用可能なDevSecOpsプラットフォームで生産性向上

2023/10/24
今回も、実例を通じてアジャイル開発やCI/CDなど、モダンな開発環境と運用をどのように実現していくのかを紹介していきます。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています