ギークスジョブでは、新型コロナウイルス感染症の影響を鑑み、現在実施している【個別説明会】【各種イベント・セミナー】【顧客企業様との商談打ち合わせ】について、一部を除き、オンライン対応を推奨させていただきます。
ユーザーの皆様、顧客企業様、当社社員の安全確保と、安定したサービスを継続的に提供させていただきたく、ご不便をおかけいたしますが、ご容赦くださいますよう、お願い申し上げます。

5分で分かる!DevOps

2020/09/24 (木) TECH

5分で分かる!DevOps

近年、さまざまなイベントや記事などでDevOps(デブ・オプス)という単語を見かけることが多くなりました。
チームが一丸となってビジネスに取り組む、理想の体制として語られるDevOpsですが、いまひとつその概要が理解できないという方は多いのではないでしょうか。
ここでは、DevOpsという概念、DevとOpsの対立が生まれる理由、そして、実現していくために必要な姿勢・心構えなどを紹介していきます。

DevOpsとは

DevOpsとはの画像

DevOpsとは、開発(Development)と運用(Operations)を組みあわせた造語です。これは、開発部門と運用部門が協力し合いながら、システムを作りあげていく体制のことを指しています。
※ただし、組織の体制等により多少の解釈の違いが生じます。

DevOpsの概念は、継続的インテグレーション(CI)の知識なしには語ることができないため、まずはこれがどのようなものか、解説していきましょう。

継続的インテグレーションの概要

継続的インテグレーションとは、ソフトウェア開発においてビルドやテストを自動的に繰り返し行う手法です。これは、Jenkins(ジェンキンス)のような継続的インテグレーションのためのツールに、なんらかの手順を登録しておき、それを定期的に実行することで実現されます。


この手法を採用することによって、

・ソースコード変更後にすぐデプロイとテストをし、問題を早い段階で発見できる
・作業がすべて自動化されているため、開発が効率化、省力化できる

などのメリットがあるのです。

継続的インテグレーション から DevOpsへ

継続的インテグレーションを採用する企業が増えてくると「これを効果的に実現するためには、開発部門と運用部門がきちんと連携をとらないとダメだな」ということが、だんだん解明されてきました。

なぜなら、頻繁にデプロイをするためには、運用部門もアプリケーションの仕様を正しく理解し自動化の仕組みを作る必要があります。それに、開発環境とテスト環境そして本番環境では、サーバのスペックや各種設定なども異なっているため、そうした知識や作業の段取りなどをメンバー間に何らかの方法で共有する必要があるためです。


その発想がだんだんと進化し、「DevOps」という概念につながっていきます。

DevとOpsが衝突する、その原因と具体例

前項目の説明だけを聞くと、DevOpsという体制は素晴らしいものであるように見えます。しかし、それを実現するためには乗りこえなければいけない壁があります。
それは「DevとOpsの衝突」。伝統的な組織では、開発部門と運用部門の意見は対立していることが多いのです。その対立はなぜ起こってしまうのか、それぞれの立場に立って考えていきましょう。

DevとOpsが衝突する、その原因と具体例の画像

開発部門(Dev)の立場

開発部門の考え方は「新しい機能をどんどん作ってリリースしていきたい」というものです。サービスをよりよいものにしていくためには、新機能の追加や既存機能のアップデートが必要ですし、それが無ければユーザーに飽きられてしまうからです。

DevとOpsが衝突する、その原因と具体例の画像

運用部門(Ops)側の立場

一方、運用部門の考え方は「サービスを安定稼働させることが重要」というものです。ユーザーがいつでも安心してサービスを利用できるようにするには、システムにトラブルが発生することをなるべく避けたい。そのため「安定して稼働しているものは、なるべくそのままの状態にしておく」という方針をとっています。

ここで、両者の考え方には矛盾があることがわかります。開発部門は「どんどん機能を追加していきたい。」対して運用部門は「安定したシステムに手を加えたくない」という矛盾です。

開発の現場でおこるトラブルの例

両者のそうした考え方の違いから、たとえば、開発の現場では次のようなことが起こります。

開発の現場でおこるトラブルの例の画像

トラブル事例

開発部門が「新機能をすぐにリリースしたい」と考え、修正した箇所の情報をきちんと共有しないまま、運用部門に作業を依頼してしまいます。

開発の現場でおこるトラブルの例の画像

情報共有がうまくされていないと、新機能が原因でトラブルが発生した際、どう対応したらいいのか運用部門が判断できません。また、サービスのリリースは夜間におこなわれることも多いため、そのタイミングでは開発部門と連絡がとれないことが多いです。

開発の現場でおこるトラブルの例の画像

このような事態を経験すると、運用部門は「なるべくリリースをしたくない」という心理的抵抗が生まれてしまいます。同時に、開発部門は「なぜ運用部門はリリースにそれほど抵抗するのだろう」という不信感が生まれてしまい、部門間の対立が進んでしまいます。

こうした事情があり、「開発部門と運用部門の考え方は衝突するもの」と言われてきました。

DevOpsを実現するために

両者がきちんとコラボレーションできなければ、変化が激しい現代のビジネス潮流に乗ることはできません。こうしている間にも競合他社はサービスを進化させていますし、利用者の心は気まぐれです。事業部門が「こうしたい」と考えたことをすぐさま実行にうつせなければ、「環境の変化に適応できなかったサービス」として衰退してしまう運命にあるのです。

DevOpsを実現するためには、もちろん、「Chef(シェフ)」や「Puppet(パペット)」などの構成管理ツールを使ったり、継続的インテグレーションを実施したりすることで、開発・運用効率化のための環境整備に取りくむことは重要です。

しかし、本質はそこではありません。
最も重要なのは、開発部門、運用部門ともに「自分たちは、ビジネスを実現するために働いているのだ」という意識を持つことです。

DevOpsとはシステム等の開発や導入を行うために、開発チームと運営チームが協力し連携をすることです。すばらしい機能の数々も、安定して稼働するシステムも、実際にユーザーに使ってもらい満足してもらえなければガラクタと同じです。
常に、「私たちはなんのためにサービスを運用しているのだろうか」という目的を考え、それを踏まえたチーム作りをしていくこと。それが正しい意味でのDevOpsを実現するカギになってくるのです。

シェア

スキルを収入上昇につなげよう

日本最大級のITフリーランス専門エージェント ギークスジョブ

無料登録はこちら
日本最大級のITフリーランス専門エージェント
平均年収

840万円以上

日本最大級のITフリーランス専門エージェント
年間契約数

※2019年4月から
2020年3月の実績

11,606件

いきなりフリーランスとして活動するのは不安...という方へ

業界・専門知識の豊富なコーディネーターが、関東、関西、福岡で無料セミナーを実施しています

こんなお悩みはありませんか?

  • 自分のスキルでフリーランスになれるか不安
  • 安定した収入を得られるのか不安
  • 税金や保険などの手続きがどうなるのか知りたい

まずは、ギークスジョブの無料イベントに参加してみませんか?
まだ本格的に活動する予定がない方も、情報収集の手段として活用されています。
不安や小さな不明点を解消する場として、是非ご利用くださいませ。

イベント一覧を見る
上に戻る
geechs job

このブラウザは未対応です

当サービスは以下のブラウザでご覧いただくことを推奨しております。
また、より安全で快適にご利用いただくために
最新のバージョンでご覧いただくことを推奨いたします。
推奨ブラウザ:Google Chrome、Mozilla Firefox、Microsoft Edge、safari

Google Chrome で閲覧する