(Photo by:Stefan Goethals)
はじめに
DevOps(デブオプス)という言葉を聞いたことがありますか?バズワードにもなっているので、知っている方も多いでしょう。
しかし、DevOpsの意味を本当に理解している方はそれほど多くはないのではないでしょうか?DevOpsは、2009年にFlickrエンジニア(John Allspaw & PaulHammond)のプレゼンで登場してからというもの、世界中に広まりつつあります。日本でも、フリマアプリのメルカリが導入して成功を収めています。いったい、DevOpsは開発現場になにをもたらしてくれるのでしょうか?
この記事では、開発プロセス全体を改善して、開発現場をよりよいものにしたい方のために、DevOpsの概要や生まれた背景、導入によって得られるものなどをお伝えしていきます。日本での本格的な普及はまだこれからといったところです。ぜひご一読して、導入の際の参考にしてください。
DevOpsってなに?
DevOpsは、「開発チーム(Dev)と運用チーム(Ops)が協力することで、スピーディーによりよいシステムをつくり上げるためのプラクティスの集合体」を意味しています。特定の技術や開発ツールを指しているわけではなく、概念的なものなのです。そのため、はっきりとした定義が存在せず、しばしば「DevOpsモドキ」を行ってしまう開発現場も見受けられます。
たしかに、AnsibleやChef、DockerなどDevOpsと一緒に用いられるツールはありますが、「これさえ使っていればDevOpsだ!」というものではありません。DevOpsの範囲は開発にとどまらず、組織面の文化にまで踏み込んでいます。なぜ、そこまで広い範囲を含んでいるのでしょうか?それは、DevOpsが生まれた背景に理由があります。
DevOpsが生まれた背景
開発チームVS運用チーム
DevOpsが生まれる以前の伝統的な開発スタイルでは、開発チームと運用チームに分けられていることがほとんどでした。どちらも「よいシステムを提供することにより価値を生み出す」という点では同じですが、その方法は異なっています。
開発チームの仕事は、「新機能や機能の改善をする」ことです。一方、運用チームの仕事は、「システムを安定的に稼働させる」ことです。ご存知のように、システムに修正を加えると、しばしば安定を損なうことがあります。このため、利害関係が衝突しやすく、良好な関係を保てない現場も少なくありません。
また、開発チームは一般的にひとつのプロダクトを担当していますが、運用チームは複数のプロダクトを受け持っています。そのため、開発チームからの依頼に即座に対応できず、関係悪化の原因になってしまうこともあります。これでは、とてもスピーディーな開発は期待できません。
開発チーム+運用チーム
そうした両者の問題を解決するために、DevOpsが提案されました。DevOpsでは、インフラの構築やビルド、デプロイなどを「自動化」することにより運用チームの負担を減らします。また、システムのログやパフォーマンス情報を開発チームと「共有」することで、運用チームに依頼する必要をなくします。
そして、最も重要なことが「開発チームと運用チームのコミュニケーション」です。BTS(バグトラッキングシステム)やチャットなどを活用してお互いにコミュニケーションを図ります。開発チームと運用チームが分断されたままでは、「DevOpsモドキ」に成り下がってしまいます。DevとOpsが一体となることがDevOpsの本質なのです。
DevOpsがもたらすもの
リリースが高速化され、ユーザーに早く価値を提供できる
DevOpsでよく使われる、AnsibleやJenkins、Dockerなどのツールにより、デリバリープロセス全体が高速化されます。また、運用チームの作業も少なくなります。これにより、時間がかかっていたリリース作業が短縮され、1日に何度もリリースできるようになります。初めてDevOpsという言葉を使ったプレゼンのタイトルが「10+ Deploys Per Day(1日10回以上のデプロイ)」だったことからも、主要な目的だということがおわかりでしょう。
バグや障害が少なくなり、システムが安定する
リリースが高速化されると、バグや障害が少なくなる傾向にあります。なぜなら、一度に大きな変更をリリースすると、変更に対する影響範囲が大きくなり、不具合が発生する確率が高まるからです。puppet labsが2015年に行った調査によると、DevOpsの導入によって、リードタイム(開発を始めてから提供されるまでの時間)が1/200に、エラー数も1/60になったという結果が出ています。
生産性が向上し、同じ規模のチームでも作業量が増える
各種自動化や開発チームと運用チームのコラボレーションにより、手間の削減と士気の向上が実現します。また、リリースの高速化により、ユーザーからのフィードバックもすぐに得ることができるようになります。つまり、バグや仕様の誤りを早期に発見することができ、修正にかかる時間やムダな開発工数を削減できます。
まとめ
DevOpsがどんなものかおわかりになりましたか?日本でのDevOpsの普及があまり進まない原因は、なかなか組織的な取り組みとして実行できない点にあると思われます。組織全体に浸透させ、全体的な取り組みとして正しく実行することがDevOpsの成功のカギになります。あなたの組織にも正しいDevOpsを広めてみましょう!
本ブログは、Git / Subversionのクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
エンタープライズ向け Git / Subversion 導入や DevOps による開発の効率化を検討している法人様必見!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments