DevOps とは

完了

"Dev" と "Ops" という短縮形は、サイロ化された開発 (Development) と運用 (Operations) の置き換えを指します。 この考え方から、共有の効率的なプラクティスとツールで連携する、分野横断的なチームが作られます。 DevOps の重要なプラクティスとして、アジャイル計画、継続的インテグレーション、継続的デリバリー、アプリケーションの監視などがあります。 DevOps は絶え間ない体験です。

コラボレーション DevOps サイクル。計画、構築、継続的インテグレーション、デプロイ、運用、および継続的フィードバックからなります。

サイクル時間を理解する

まず、ソフトウェア開発に関する基本的な前提から始めましょう。 OODA (観察、情勢判断、決定、行動) ループで説明します。 もともとは、戦闘機のパイロットが敵機に撃墜されるのを防ぐために設計されましたが、OODA ループは、競合他社に先んじるための優れた考え方です。 まず、ビジネス、市場、ニーズ、現在のユーザーの行動、入手可能なテレメトリ データを観察します。 次に、おそらく実験によって、提供できるオプションの一覧を判断します。 次に、追及すべきものを決定し、実際のユーザーに作業用ソフトウェアを提供することにより行動します。 サイクル時間に発生するすべてを確認できます。

サイクルとしての観察、情勢判断、決定、および行動。

データ インフォームドになる

データを使用して、次のサイクルで行うべきことを通知することをお勧めします。 多くの経験レポートによると、約 1/3 のデプロイは否定的なビジネス結果になります。 約 1/3 は肯定的な結果になり、1/3 は違いをもたらしません。 フェイル ファストには、ビジネスを進めずに、ビジネスをサポートする結果を強化するという効果があります。 場合によっては、このアプローチはピボットまたはパーシビア (persevere) と呼ばれます。

検証による学習に努める

いかに迅速にフェイル ファストまたは強化できるかは、サイクル時間によって決まります。 また、そのループにどれだけの時間がかかるか、またはリーン タームにかかっています。 サイクル時間によって、次のループで何が発生するかを判断するためにフィードバックを収集できる速度が決まります。 各サイクルで収集するフィードバックは、実用的な事実上のデータでなければなりません。 これを検証による学習 (validated learning) と呼びます。

検証による学習に努めます。良い、どちらでもない、悪い。

サイクル時間を短縮する

DevOps プラクティスを採用するとき:

  • より小さなバッチで作業することにより、サイクル時間を短縮します。
  • より多くの自動化の使用。
  • リリース パイプラインのセキュリティ強化。
  • テレメトリの改善。
  • より頻繁なデプロイ。

検証による学習とデプロイの頻度。良い、どちらでもない、悪いサイクル。

検証による学習を最適化する

より頻繁にデプロイするほど、より多くの実験を行うことができます。 ピボットやパーシビアを行う機会が多いほど、各サイクルで検証による学習が得られます。 このような検証による学習の加速は、改善の価値です。 これは、達成した進捗状況と回避した失敗の総和と考えてください。

検証による学習とデプロイの頻度。良い、どちらでもない、悪いサイクル。改善メトリックの値。