DevOps とは
"Dev" と "Ops" の縮小とは、サイロ化された開発と運用を置き換えることを指します。 アイデアは、共有され効率的なプラクティスとツールと連携する、学際的なチームを作成することです。 DevOps の基本的なプラクティスには、アジャイル計画、継続的インテグレーション、継続的デリバリー、アプリケーションの監視が含まれます。 DevOps は絶え間ない体験です。
サイクル時間を理解する
ソフトウェア開発に関する基本的な前提から始めましょう。 OODA (監視、向き、決定、行動) ループで説明します。 元々は戦闘機のパイロットを空で撃墜されないようにするために作成されたOODAループは、競合他社に先んじるための優れた考え方です。 まず、ビジネス、市場、ニーズ、現在のユーザーの行動、利用可能なテレメトリ データを観察します。 次に、おそらく実験によって、提供できるオプションの一覧を判断します。 次に、何を追求するかを決定し、実際のユーザーに作業ソフトウェアを提供することで行動します。 あるサイクル時間内で発生しているすべての事象を確認できます。
データに関する情報を取得する
データを使用して、次のサイクルで何を行うかを通知することをお勧めします。 多くのエクスペリエンス レポートでは、デプロイの約 3 分の 1 がビジネス上の悪影響を及ぼすと報告されています。 約 3 分の 1 は肯定的な結果になり、3 分の 1 は何の違いもありません。 ビジネスに貢献しない効果には早めに見切りをつけ、ビジネスを支援する成果に対しては強化するように努めてください。 場合によっては、このアプローチはピボットまたはパーシビア (persevere) と呼ばれます。
検証済みの学習に努める
迅速に失敗または二重ダウンできる速度は、サイクル時間によって決まります。 また、そのループにどれだけの時間がかかるか、またはリーン期間にかかっています。 サイクル時間によって、フィードバックを収集して次のループで何が起こるかを判断できる速度が決まります。 各サイクルで収集するフィードバックは、事実に基づいた、実行可能なデータである必要があります。 検証済みの学習と呼びます。
サイクル時間の短縮
DevOps プラクティスを採用する場合:
- より小さなバッチで作業することで、サイクル時間を短縮できます。
- より多くの自動化を使用する。
- リリース パイプラインの強化。
- テレメトリの改善。
- より頻繁にデプロイする。
検証済みの学習を最適化する
デプロイの頻度が高いほど、より多くの実験を行うことができます。 ピボットやパーシビアを行う機会が多いほど、各サイクルで検証による学習が得られます。 検証済みの学習におけるこの高速化は、改善の価値です。 あなたが達成した進歩と避けた失敗の合計と考えてみてください。