通常、DevOpsプラクティスの実践を考える時、インフラのデプロイを自動化することを思い浮かべるのが一般的だ。しかし、Puppetの新調査によると、DevOpsの導入に成功する組織は、その時点に到達するまでに、いくつもの具体的な手順を踏んでいるという。
「DevOpsには、成功する方法はいくつもあるが、失敗に至る道筋の方が多い」と、Puppetの製品マーケティング担当ディレクターであるAlanna Brown氏は、米ZDNetに述べた。あらゆる業種の組織が、「DevOpsを導入しようとする際に、似たような課題に直面する。必要なサポートが欠如したり組織がDevOpsの重要性を認識していなかったりなど・・・こうした問題全てが出鼻をくじく原因となり、DevOpsに対して懐疑的になりかねない」と語る。
Puppetは、2018年で第7回目を迎える年次報告書「State of DevOps」を、公開に先立って米ZDNetと共有し、社内全体で大規模なDevOps導入に苦労している組織のために、規範的な手順を示してくれた。
本報告書(米国時間9月12日に既に公開されている)は、世界で約3000人の技術専門家を対象に、DevOpsを導入する際に実施した、具体的なプラクティスについて調査した。その結果、DevOpsの導入とスケールアップには5つのステージがあることが判明した。Puppetは、それら5つのステージを成功につなげ、次のステージに上がるために重要な2つのビジネスプラクティスをそれぞれ定義するための分析を行った。その結果、10件の重要なプラクティスといくつかの補完的なプラクティスがあることが明らかになった。
これらのステージと対応するプラクティスは、DevOpsを大規模導入するための直線的な道筋を提供する。ステージ2とステージ3は選択的に、あるいは同時に起こるかもしれないが、インフラ配信の自動化を行うステージ4に進むために必要である。
Brown氏は、「大切なのは成功への道筋があることだ」と述べている。
5つのステージと各ステージを成功に導くプラクティスは、以下の通りである。
ステージ1:技術スタックの整理
「企業は本質的に複雑なので、これは非常に重要だ」とBrown氏は述べる。過去5年間における技術の爆発的な進歩と新しいツールの登場により、開発の環境や手法が数多く整備された結果、システムが乱立するという問題を作り出してしまったという。このステージでは、チームはバージョン管理システムを利用し、オペレーティングシステム(OS)の種類を絞り込んでデプロイしている。
ステージ2:標準化とばらつきの低減
チームはステージ1を基に、通常このステージで取り組むOSをさらに絞って単一、あるいは単一のOSファミリにするなど、技術スタックを標準化し、データベース、キーバリューストア(KVS)、メッセージキューなど、標準の技術セット上にシステムを構築する。
ステージ3:DevOpsプラクティスの拡大
このステージでは、「DevOpsのプラクティスが開発チームと運用チームを超えて、他の機能組織へと広がり始める。各自が、チームの部外者から許可を得ることなく作業できるようになり、デプロイのパターンが再利用される」(Brown氏)
外部の承認なしに作業できるのは効率的だが、それは「一定レベルの信頼関係が構築されてからでないと実現しない」と、Brown氏はつけ加える。「アプリケーションを10回、問題なく導入するなど、成功を重ねることで信頼が生まれる」
ステージ4:インフラ構築の自動化
多くの組織が通常、DevOpsの取り組みの出発点だと考えがちなこの重要なステージで、チームは自部門だけでなく、より広範な用途のためにリソースを自動化し始める。2018年の調査を後援したSplunkのチーフ技術アドボケイトであるAndi Mann氏は、複数チームにまたがってリソースのプロビジョニングと自動化を行うこのステージで「社内幹部の支持を得る必要性が浮き彫りになる」と述べた。
このステージで重要なプラクティスは、システム構成の自動化とプロビジョニングの自動化である。
ステージ5:セルフサービス機能の提供
セルフサービスが定着するのは、組織がほかの4ステージで下地を作り、社内で高度な信頼関係を築いてからになる。このステージで重要なプラクティスは、インシデント対応の自動化と、セルフサービスを通じたリソースの提供である。
インシデント対応の自動化まで到達するには、「マニュアルで行われているいくつかのボトルネックに対処せねばならない。インシデント解決を担当するチームは、必要なデータにアクセスできないことが多く、承認を得なければならない。そこまで自動化するには、複数チームによる緊密に協業が必要だ」とBrown氏は語る。
Brown氏によると、その協業が行えるかどうかが、DevOpsで求められる信頼関係を組織が育んだことを実証できる、「組織文化の重要な指標」になるという。

基礎的プラクティス
Puppetは、各ステージの詳細とそのプラクティスのほか、データを使い、DevOpsを実現するための全5ステージに最も大きな影響を及ぼす、5つの基礎的プラクティスを特定した。
そうしたプラクティスとして、アプリケーションやサービスの開発時におけるデプロイのパターンの再利用(ステージ3でも取り上げた)と、テストパターンの再利用がある。さらに、構成管理ツールの利用、ツールの改善に他のチームも関われるようにすることが挙げられる。そして最後に、成功する組織は一般的に、サービスを運用するチームが監視とアラートを設定できるようにしている。
調査でこれらを「基礎的」プラクティスと呼んでいるのは、DevOpsの大規模な導入に成功した調査回答者の大多数が、これらのプラクティスをDevOps取り組みの初期段階から採用していたからである。
Mann氏によると、基礎的プラクティスはすべて、DevOpsの本質的価値をいくらか反映している。例えば、「サービスを運用するチームが、監視とアラートを設定可能にするのは、エンパワーメント(権限付与)モデルだ。システム内における自身の役割を理解できるようにし、組織のために良い成果を挙げられるように権限を付与することは、DevOpsの中核を成す要素であることを意味している」と、同氏は述べた。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。