• このエントリーをはてなブックマークに追加

DevOpsを効果的に実践するために必要な知識とツールとは

テクノロジーの急速な発展により、これまで以上に効率の向上によりもたらされる結果の期待値は大きなものとなってきています。特にソフトウェア開発に関しては技術発展の恩恵は大きく、ポテンシャルは日に日に大きなものとなりつつあります。

新しいプロダクトの持つ可能性に対する期待も高まる中、問題としてよく指摘されるのが人間の開発環境が最新のテクノロジーやアイデアにキャッチアップできていないという話題です。特に比較的古くから存在する開発組織では体制の保守化が進み、新しい技術やニーズに適した開発が行えない、あるいは時代に追いつけず、うまく結果が出せずに苦労しているという現象も起こり始めています。

そのような状況で近年注目が集まっているのが「DevOps」の実践です。単純に最新技術を導入するだけでもなければ、新しい専用の人員を雇うわけでもないこの概念は、包括的に業務の開発を促進することを目的として誕生したものです。

今回はそんなDevOpsの概要と、実際の改善策についてご紹介していきます。

  • 開発・運用が一丸となるDevOps
  • DevOpsはツールではなく考え方の一つ
  • そのため導入には組織全体の包括的な取り組みが大切に

DevOpsとは

DevOpsとは開発部門(Development)と運用チーム(Operations)が共同でビジネスに取り組む姿勢を表す概念で、その目的はビジネスそのものの価値を高め、エンドユーザーに素早く、そして確実にプロダクトやサービスを提供することにあります。
つまり、開発チームが文字通り一丸となって全ての開発プロセスに相互的・積極的に干渉していく文化の醸成がDevOpsの大きな意義としてあります。

開発と運用チームが一つになるDevOps

これまでソフトウェア開発の現場で目立っていたのは、開発部門と運用部門が隔てられた環境です。
同じプロダクトのリリースに携わっているとはいえ、それぞれが別々に自らの業務をこなし、微妙に異なる目標を設定していたために、結果的に完成するサービスやソフトは必ずしも最適なユーザビリティが保証されているとは言えないこともしばしばありました。

開発部門が目指すのは、少しでも新しく、面白いサービスの開発です。実際にサービスを作り出すところまでは良いのですが、実装した際の安定性などの使い勝手に関しては運用部門に丸投げということも珍しくありません。

一方の運用部門はサービスを稼働させるための安定性を維持し続けることが主な目的となります。不安定なサービスを安定させることは手間がかかり、かつサービスを安定させ続けることも業務負担としては大きいため、なるべく仕様の変更は少ない方が都合が良いものです。

微妙なミッションの差異を排除

一見するとどちらもユーザー目線に沿った役割を果たしているのですが、問題なのはお互いの役割がビジネス価値の創出になくてはならないはずであるのに、個々に設定した目標のせいである種の対立構造が生まれてしまっているところです。

先進と保守のような対立が生まれてしまいやすいこの組織構造を改革するために、DevOpsという取り組みが誕生しました。
DevOpsによって開発と運用というチーム編成はなくなり、質の高いサービスを提供することを唯一の目標に設定することができるというわけです。

DevOps誕生の背景にあるアジャイル開発

効率的な開発環境をめざすアジャイル開発

DevOpsの概念は、もともとソフトウェアのアジャイル開発の中で考案された考え方です。
アジャイル開発とはソフトウェア開発のスパンを短期間に小分けして設定し、定められた期間内で全ての目標の達成を目指しながら修正箇所や追加部分を加えていき、PDCAを回していくというもので、リスクの小さいサービスの提供ができるということで人気を集めている手法です。

短期スパンで開発プロセスをたどっていくことになると、合理的な判断と迅速な行動が重要になってきます。
そのため業務の優先度は明確され、開発と実装を同時並行的に行なっていく必要があるため少人数でのプロジェクト進行が求められます。
となると開発・運用でのチーム分けはかなり無駄なシステムとなってくるため、必然的に1チーム・1プロジェクトの運営、DevOpsの基本となる包括的なビジネス価値の創出が目標に設定されるようになるのです。

詳細な設計よりもむしろ実践的な開発が肝となるため、ソフトウェア開発の現場をはじめとして今ではスピード感の高さが要求される業界では少しづつ採用が始まってきているのです。

アジャイル開発について詳しくは、「アジャイル開発とは:アプリ製作にも適した開発方法のまとめ」をご覧ください。

DevOpsに合わせたツールやクラウドサービスの登場

DevOpsを実践する企業が増加していく中、DevOpsに適したツールを提供するサービスも見られるようになってきました。例えばクラウドサービス提供事業者の中でも最大手であるAmazonの展開するAWSでは、DevOpsに適したツールであるという紹介が公式サイトで掲載されています。

業務の効率化やスマート化を考える際に、新しいシステムも導入してみるというのはDevOpsを実践していく上でも重要な考え方です。AWSが利用量に応じて料金が決まる従量課金制を導入しているように、クラウドサービスはスマートな業務を支援してくれるプランが盛り込まれていることが多く、アジャイル開発においても活躍が期待できます。

これまでの保守的な体制を維持してきた企業の場合、社員もまた既存のシステムベースに硬直してしまっているケースも考えられるため、単純にDevOpsの採用を宣言するだけでなく、DevOpsを実行に移していくためにもハードやシステム面での大幅な改革を行い、人員を自ら率いていく姿勢を示すことが重要になってくるでしょう。

参考:https://aws.amazon.com/jp/devops/

DevOps実践に向けた改善策

このように、DevOpsは単純に新しいハードウェアやサービスを導入したり、「DevOps人員」を設けることによって解決するものではなく、ハードウェアやシステムから企業文化までの包括的な改革が必要とされる取り組みです。

短期間で実践が可能なDevOps施策

そのため短期間で一気にDevOpsを組織に浸透させることは難しく、場合によっては少しづつ改革を進めていかなければならないケースも存在します。DevOpsは順番に、確実に進めていくマインドが大切になります。

例えば先ほども紹介したようなDevOpsの実践に向けたツールやサービスの導入、組織の再編そのものは、組織の規模にもよりますが比較的素早く行うことができる実践例と言えるでしょう。人を育てるわけではなく、予算の都合をつけて人員配置を見直し、チームの統合などを行えば形作ることができるので、まずはここから初めていくことが大切になります。

逆に組織の制度などの環境が整っていない状態でDevOpsを採用する、ということになっても、現在の業務環境は既存のシステムに最適化されてしまっているため、効率よくDevOpsに取り組むことは難しいものがあります。むしろ、下手にシステムを組み替えてしまうことで効率が低下してしまうことも考えられます。

そのような理由で新しいシステムの導入には新しい環境を提供することがまず重要になるわけですが、次に行わなければいけないのがDevOpsに向けた企業文化の育成です。

企業文化の改革は時間はかかるが重要な施策

DevOpsがうまく実践できない原因として、開発と運用の対立が根深いことが理由の一つに入ることもあります。つまり、環境が変わっても、人間が変わらなければDevOpsはうまくいかないということです。

そのため目標を単に共有するだけでなくお互いを尊重し、誰か一人が責任やリスクを取らされるわけでもない、一つのチームとして機能させる文化を養っていく必要があります。

DevOps導入前の仕組みに馴染んでしまっている人は従来のやり方に固執してしまうこともあるため、新しい人員を雇ってDevOpsの実践に最適な組織作りに努めるというのも可能であれば試してみる価値はあるでしょう。ただしその際に重要なのは「DevOpsを推し進める人」ではなく、「DevOpsの文化に適応できる人」を選出必要があり、DevOpsの導入そのものは組織全体で取り組んでいくことが重要になります。

凝り固まった仕組みに改革を起こすと宣言するのは簡単ですが、実際に行動するのは難しいものです。まずはできるところから着実にDevOpsは実践していく姿勢が大切になるでしょう。

PR:ECサイト構築パッケージ「Orange EC」ではお客様にECサイト開発のノウハウをお伝えしています

関連記事

エスキュービズムニュースレター!
記事に関連するサービス
  • EC Orange
Orange EC 導入事例
Orange ECの「VRコマース機能」
オンライン、オフラインをまたがり、技術を掛け合わせ、新たなマーケティング領域へ
EC用語集
お役立ち資料ダウンロード

アーカイブ

ページ上部へ戻る