DevOpsとはなんなのか

DevOpsというワードが世に普及してから十年あまりが経ちますが
私の周りではまだまだその文化は浸透しておりません。(そもそも言葉を知ってる人がいないのでは?と思うほど)

そんな環境下ではありますが、ついにDevOpsを推進するべくプロジェクトが立ち上がったので(今のところ実働は私一人ですが)
今回はそんなDevOpsについての確認です。



DevOpsとは技術ではなく文化

f:id:fclout:20210107194732p:plain


古来よりシステムやサービスを作り運営していくうえで必要なチームには大きく分けて2つあります。
システムの開発組織(DEV運用組織(OPSです。


開発組織基盤やアプリケーションおよび各種機能を構築・開発することを目的としています
運用組織出来上がったシステムを安定稼働させることを目的としています


これらのシステムの開発組織と運用組織で対立し合うのではなく、
協調(融合)しながら共通のビジネス目的を達成するための考え方や組織的な文化およびその取り組みをDevOpsといいます。



なぜDEVとOPSは対立するのか?

そもそもなぜ開発組織と運用組織は対立するのでしょう?
それはそれぞれの組織に課せられているミッションが違うことが原因の一つだと言えます。


f:id:fclout:20210107195408p:plain


開発組織は、新機能を追加することでビジネス全体の売り上げを伸ばし自社やエンドユーザーの利益拡大に貢献することがミッションですが、
運用組織は、システムやサービスの安定稼働を実現することでビジネス全体の売り上げ損失の機会を減らし利益を守ることで自社やエンドユーザーに貢献することがミッションです。


新機能を追加すれば、
それだけバグや非互換によるシステム障害のリスクは増え
運用組織のミッション実現の難易度は上がります。


裏を返せば安定稼働を最優先にしようとすると、
新機能の追加頻度は必然と少なくなりかつ品質を上げるための試験工数が膨らみ、
開発組織のミッション実現は難しくなります。


このようにお互いの組織のミッションを達成しようとすることで対立が生まれてしまうのが
DevOpsが生まれた背景にある問題でした。



そもそも組織を分ける必要があるのか?協調する道はないのか?

開発組織と運用組織とではミッションが異なりますが、
大前提となる目的は同じで自社やエンドユーザーのビジネスの成功と利益の拡大なのですから、
うまく協調すればいいと思いますがそのためには売り上げの拡大損失機会の減少の両方を実現していく必要があります。


その実現のためにはまず組織としての文化を従来から変える必要があります。
開発運用とでそれぞれの組織があるのではなく、協調(融合)した組織としての文化を作ればよい、という発想です。


f:id:fclout:20210107200219p:plain


この協調した組織としての文化を作るためには、各メンバーそれぞれの意識づけが最も大切になってきますが、
それを支えるのが以下に提唱される6つのテクノロジーです。


f:id:fclout:20210107200314p:plain


これらの6つのテクノロジーを切り口として、
世の中ではどんなDevOpsが実践されているのか、
次回以降の記事で事例を挙げて調査・分析していこうかと思います。