5分で分かる!DevOps
近年、さまざまなイベントや記事などでDevOps(デブ・オプス)という単語を見かけることが多くなりました。
チームが一丸となってビジネスに取り組む、理想の体制として語られるDevOpsですが、いまひとつその概要が理解できないという方は多いのではないでしょうか。
ここでは、DevOpsという概念、DevとOpsの対立が生まれる理由、そして、実現していくために必要な姿勢・心構えなどを紹介していきます。
合わせて読みたい記事
DevOpsとは
DevOpsとは、開発(Development)と運用(Operations)を組みあわせた造語です。これは、開発部門と運用部門が協力し合いながら、システムを作りあげていく体制のことを指しています。
※ただし、組織の体制等により多少の解釈の違いが生じます。
DevOpsの概念は、継続的インテグレーション(CI)の知識なしには語ることができないため、まずはこれがどのようなものか、解説していきましょう。
継続的インテグレーションの概要
継続的インテグレーションとは、ソフトウェア開発においてビルドやテストを自動的に繰り返し行う手法です。これは、Jenkins(ジェンキンス)のような継続的インテグレーションのためのツールに、なんらかの手順を登録しておき、それを定期的に実行することで実現されます。
この手法を採用することによって、
・ソースコード変更後にすぐデプロイとテストをし、問題を早い段階で発見できる
・作業がすべて自動化されているため、開発が効率化、省力化できる
などのメリットがあるのです。
継続的インテグレーションからDevOpsへ
継続的インテグレーションを採用する企業が増えてくると「これを効果的に実現するためには、開発部門と運用部門がきちんと連携をとらないとダメだな」ということが、だんだん解明されてきました。
なぜなら、頻繁にデプロイをするためには、運用部門もアプリケーションの仕様を正しく理解し自動化の仕組みを作る必要があります。それに、開発環境とテスト環境そして本番環境では、サーバのスペックや各種設定なども異なっているため、そうした知識や作業の段取りなどをメンバー間に何らかの方法で共有する必要があるためです。
その発想がだんだんと進化し、「DevOps」という概念につながっていきます。
DevとOpsが衝突する、その原因と具体例
前項目の説明だけを聞くと、DevOpsという体制は素晴らしいものであるように見えます。しかし、それを実現するためには乗りこえなければいけない壁があります。
それは「DevとOpsの衝突」。伝統的な組織では、開発部門と運用部門の意見は対立していることが多いのです。その対立はなぜ起こってしまうのか、それぞれの立場に立って考えていきましょう。
開発部門(Dev)の立場
開発部門の考え方は「新しい機能をどんどん作ってリリースしていきたい」というものです。サービスをよりよいものにしていくためには、新機能の追加や既存機能のアップデートが必要ですし、それが無ければユーザーに飽きられてしまうからです。
運用部門(Ops)側の立場
一方、運用部門の考え方は「サービスを安定稼働させることが重要」というものです。ユーザーがいつでも安心してサービスを利用できるようにするには、システムにトラブルが発生することをなるべく避けたい。そのため「安定して稼働しているものは、なるべくそのままの状態にしておく」という方針をとっています。
ここで、両者の考え方には矛盾があることがわかります。開発部門は「どんどん機能を追加していきたい。」対して運用部門は「安定したシステムに手を加えたくない」という矛盾です。
開発の現場でおこるトラブルの例
両者のそうした考え方の違いから、たとえば開発の現場では次のようなことが起こります。
トラブル事例
開発部門が「新機能をすぐにリリースしたい」と考え、修正した箇所の情報をきちんと共有しないまま、運用部門に作業を依頼してしまいます。
情報共有がうまくされていないと、新機能が原因でトラブルが発生した際、どう対応したらいいのか運用部門が判断できません。また、サービスのリリースは夜間におこなわれることも多いため、そのタイミングでは開発部門と連絡がとれないことが多いです。
このような事態を経験すると、運用部門は「なるべくリリースをしたくない」という心理的抵抗が生まれてしまいます。同時に、開発部門は「なぜ運用部門はリリースにそれほど抵抗するのだろう」という不信感が生まれてしまい、部門間の対立が進んでしまいます。
こうした事情があり、「開発部門と運用部門の考え方は衝突するもの」と言われてきました。
DevOpsを実現するために
両者がきちんとコラボレーションできなければ、変化が激しい現代のビジネス潮流に乗ることはできません。こうしている間にも競合他社はサービスを進化させていますし、利用者の心は気まぐれです。事業部門が「こうしたい」と考えたことをすぐさま実行にうつせなければ、「環境の変化に適応できなかったサービス」として衰退してしまう運命にあるのです。
DevOpsを実現するためには、もちろん、「Chef(シェフ)」や「Puppet(パペット)」などの構成管理ツールを使ったり、継続的インテグレーションを実施したりすることで、開発・運用効率化のための環境整備に取りくむことは重要です。
しかし、本質はそこではありません。
最も重要なのは、開発部門、運用部門ともに「自分たちは、ビジネスを実現するために働いているのだ」という意識を持つことです。
DevOpsとはシステム等の開発や導入を行うために、開発チームと運営チームが協力し連携をすることです。すばらしい機能の数々も、安定して稼働するシステムも、実際にユーザーに使ってもらい満足してもらえなければガラクタと同じです。
常に、「私たちはなんのためにサービスを運用しているのだろうか」という目的を考え、それを踏まえたチーム作りをしていくこと。それが正しい意味でのDevOpsを実現するカギになってくるのです。
ITフリーランスをご検討中の方はギークスジョブへご相談ください
ギークスジョブはITフリーランス専門エージェントとして20年以上にわたり、ITフリーランスのご支援を行っています。
フリーランスを初めて検討される方はもちろん、現在フリーランスとしての今後に不安を感じている方、今よりもっと充実したフリーランス生活を楽しみたい方は、ぜひお気軽に相談ください。ITフリーランス専任のキャリアアドバイザーがマンツーマンでサポートいたします。
▽ 無料登録(エントリー)はこちら
https://geechs-job.com/entry
まだフリーランスになることに迷いがある方へは、独立のご相談から承ります。これまでのご経歴やキャリアの目標をお伺いしながら、お一人おひとりに寄り添ったキャリアプランのご提案をいたします。
▽ 独立相談会への無料エントリーはこちら
東京:https://geechs-job.com/event/details/1
大阪:https://geechs-job.com/event/details/2
福岡:https://geechs-job.com/event/details/3
名古屋:https://geechs-job.com/event/details/189
その他のおすすめ記事
いまさら聞けない「スクラム開発」ってどんなもの?|ITフリーランスをサポートするギークスジョブ
ITフリーランスの方のための『お役立ち情報』をご紹介しています。この情報のテーマはいまさら聞けない「スクラム開発」ってどんなもの?です。geechs job(ギークスジョブ)では、「フリーに生きる」ためのノウハウをご紹介し、ご希望のキャリアやライフプランを実現できるように、サポート致します!
ITフリーランスの案件探しならgeechs job
IT業界・企業情報の専門知識を持ったコーディネーターが、あなたに合う案件をご紹介。
ITエンジニアとしてのキャリアに弾みを付けませんか?
- ・独立して新しいキャリアを築きたい
- ・スキルを磨いて、更なる高みを目指したい
- ・今よりも高い報酬を
ITフリーランスエージェントのgeechs jobが、あなたの未来に向けて伴走します。