私は現在約5年間、さまざまなクライアントとコンサルタントとしてDevOpsを実践し、アドバイスを行っています。現在の職務に就く前は、ソフトウェア開発、Web運用、およびシステム管理の役割を担っていました。私の個人的な経験では、DevOpsには多くのフレーバーがあります。
組織パターン
DevOpsアンチパターン:
NoOpsとNoDevs-厳密な意味でのDevOpsではありませんが、これらのチームは開発と運用を分けることなくソフトウェアを構築および運用します。これらのチームの課題は成熟度にかかっており、開発チームはソフトウェア開発のエキスパートであるかもしれませんが、初心者のオペレーターやその逆の場合もあります。
DevOpsブリッジ -これは、1つ以上のチームが開発チームから作業を引き受け、それを「実稼働化」して運用可能にする責任を与えられる場所です。これまでの課題は、開発→DevOpsとDevOps→運用という2つのハンドオフがあります。
DevOpsチーム -これは、おそらく、チームがDevOps対応オペレーティングモデルをサポートするツールを構築する責任がある場合に機能しますが、おそらく「ツールチーム」または「プラットフォームチーム」と呼ばれるべきです。
DevOpsパターン:
組み込みDevOps-より一般的にプラットフォームエンジニアリングと呼ばれ、チーム内に責任はあるが、ソリューションのプロビジョニングと展開のための自動化、ツール、インフラストラクチャの提供を担当する人がいます。 、実際にはDevOpsを代表するのは後者です。
制度化されたDevOps-プロジェクトチームが共同で所有権と正のフィードバックループを構築するソフトウェアパッケージの開発と運用の両方を担当します。
慣行
DevOpsの実際のプラクティスは、他のいくつかのプラクティスの上に構築されています:
上記の各プラクティスは他のプラクティスに基づいて構築されているため、プラクティスに従わないこともありますが、重要なフィードバックサイクルが欠落していることを意味します。他のプラクティスに従うこととDevOpsを行うことの主な差別化要因は、実稼働環境でのソフトウェアの運用です。
3つの方法
ではフェニックスプロジェクトジーン・キムと彼の共著者説明DevOpsチームの3つの方法:
システム思考
最初の方法では、特定のサイロの作業や部門のパフォーマンスとは対照的に、システム全体のパフォーマンスを重視します。これは、部門(開発やIT運用など)の規模の大きさや個人の貢献者(たとえば、開発者、システム管理者)。
私の経験では、開発者が運用上の懸念を考慮し始め、非機能要件がこの目標を達成します。これは、DevOpsの文化的側面の大部分です。
フィードバックループの増幅
2番目の方法は、右から左へのフィードバックループを作成することです。ほとんどすべてのプロセス改善イニシアチブの目標は、フィードバックループを短縮および増幅して、必要な修正を継続的に行えるようにすることです。
私は通常、継続的インテグレーション/配信/展開および共有モニタリングとアラートによってこれを達成します。したがって、DevOpsのツールコンポーネントに非常に適合します。
継続的な実験と学習の文化
第三の方法は、2つのことを促進する文化を創造することです。継続的な実験、リスクを取ること、失敗から学ぶこと。そして、繰り返しと実践が習得の前提条件であることを理解します。
これは、文化を成長させるためのツールとプロセスに大きく依存しますが、文化空間に非常に適合しています。