日本はなぜ米国に比べてDevOpsの導入が遅れているのか
「日本でも世界最先端のDevOpsチームに追いつき、追い越したい!」。そんな熱い思いがこもった牛尾氏のセッションは、冒頭で会場との3度にわたるDevOpsコールから始まった。
牛尾氏が「世界最先端のDevOpsチームを作り上げた人」と称するマイクロソフトのサム・グッケンハイマー氏。牛尾氏は彼に対して「日本は米国と比べて、DevOpsに関してどのくらい遅れているか」と質問をしたところ「5年は遅れている」と言われたのだという。
なぜ米国は進んでいるのかを明かす前に、まずはDevOpsとは何かのおさらいから。DevOpsとは人・プロセス・プロダクトの集合体で、継続的にエンドユーザーに価値を提供することである。そしてこれを実現すれば、「1日に10デプロイを可能にするリードタイムの短縮」と牛尾氏は語る。米Puppet Labsの「2015 State of DevOps Report」によると、DevOpsのメリットは、コードのデプロイ速度が30倍向上、リードタイムは200分の1に削減、エラーも60分の1に削減、エラーからの復旧は168倍速くなるという。また同社からはすでに2016年版も登場しており、それを見るとリードタイムは「2555倍になると言われている」と牛尾氏は語る。
これまでソフトウェアの開発においては、本番環境で不具合が起こらないように、時間をかけて入念な準備をしていた。しかしせっかく時間をかけて用意しても、その間にソフトウェアのユーザを取り巻く環境が変わり、使ってくれないこともあっただろう。そこでできるだけ早くデリバリーをするのである。つまりDevOpsで重要な観点はリードタイムが短縮できること、本番環境/ユーザからのフィードバックをもらうこと、そして継続的な実験と学びがあることである。「DevOpsでは本番環境は聖域ではない」と牛尾氏は力強く語る。
またプラクティスも必要になる。DevOpsに必要となるプラクティスは図の通りである。「これらを用意しているチームとしていないチームでは、戦闘機と竹やりぐらいの戦闘力の違いがあるが、最もDevOpsで重要になるのはチーム構成だ」と牛尾氏は説明する。
マイクロソフトで世界最先端のDevOpsチームが生まれたのは、チーム構成を変更したことから始まった。当初マイクロソフトでもウォーターフォール型の開発を行っていたという。品質管理(QA)、開発(Dev)、Ops(運用)、ビジネス企画がバラバラのチームで構成されていた。それをグッケンハイマー氏がDevとQAを1チームにまとめて、エンジニアリングチームとOpsとビジネス企画の3チーム構成にしたのである。その後さらに、エンジニアリングチームとOpsとビジネス企画をすべて一つにしてサービスチーム(Feature team)としたのである。サービスチームでは顧客と直接のコラボレーションを行えるようになっている。「開発の優先順位やロードマップなどについてもサービスチームで決められるよう、権限が与えられている」と牛尾氏は語る。こうすることで、最先端のDevOpsチームができあがったのだ。