最近よく耳にする「DevOps」という言葉。抽象的な表現故に、調べれば調べるほど混乱するという声も多く聞く。本稿ではそんなDevOpsについて、求められる背景、そしてアジャイルとの関係を整理しながら解説する。
DevOpsとは、システムにおける開発者と運用担当者が連携して協力し合う考え方のことです。この考え方が必要とされた背景には、開発者と運用担当者は双方の役割によってリリースサイクルが異なるため、ビジネスの要求に合わせた仕様変更にシステムが対応しきれないという問題がありました。それを解決するアプローチが必要になったことが挙げられます。
以前は(今でも多いですが)、システム開発といえば重厚長大なウォーターフォールによるビッグバンリリース形態が主流で、システムを構築すること自体が目的になり、要求変更に弱いシステムになりがちでした。
それを打破し、ユーザーが求める迅速なシステム構築を行うためのアプローチとして、定期的なリリースを繰り返し、柔軟なシステム開発を実現する「アジャイル開発手法」が生まれ、システムを利用するユーザー側と開発者側の意識改革を促しました。
しかし、この意識改革(アジャイル開発)にはシステムを運用するという観点が抜けていました。運用担当者は変わらず安定運用に注力し、双方のリリースサイクル速度に違いが生まれる結果になりました。
その後、クラウドテクノロジーの普及によって、SaaS(Software as a Service)を中心にユーザー主導で導入するシステムが増え、運用部門が関わらないケースができるなど、この流れはさらに加速していきます。新たなビジネスを迅速に展開したいというユーザー側の思いに、システムが応えられていないことが原因といえるでしょう。
こうした背景から重要になってきたのがDevOpsという考え方です。冒頭で説明したように、DevOpsでは、開発者と運用担当者がお互い協力し合うことで、業務全体のアジリティ(俊敏性)を高めることが狙いです。
運用側にとっては、これまで開発の流れに置いていかれてしまっていたため、従来通りのプロセスでは対応することが難しく、また品質の担保も難しいのです。そこで「Chef」や「Puppet」といったITインフラの運用を自動化するプログラマブルなツールまたは、「Force.com」や「Heroku」といったクラウドベンダーが提供するPaaS(Platform as a Service)を中心としたサービスの活用が注目されています。これらのツールを使うことで、ユーザーに対して、オンデマンドなシステム提供ができるようになります。
気を付けなければならないこととして、ユーザーの業務には変化を求める領域と、そうでない領域があるということです。ウォーターフォール型の開発手法が全く不要になるわけではありません。システムに応じて使い分けていくことが重要です。変化が求められるビジネス領域では、ユーザーは新たなビジネスを迅速に立ち上げたいと考えますから、システムもそのスピードについていくことが求められるというわけです。
PaaSなど、クラウドプラットフォームを中心にセールスエンジニアを支援するアーキテクト。アーキテクトとして、オンプレミスからクラウドまで、さまざまな種類・規模のシステム開発で、インフラからアプリケーションアーキテクチャ、開発プロセスを手掛ける。
Copyright © ITmedia, Inc. All Rights Reserved.
お知らせ
米国TechTarget Inc.とInforma Techデジタル事業が業務提携したことが発表されました。TechTargetジャパンは従来どおり、アイティメディア(株)が運営を継続します。これからも日本企業のIT選定に役立つ情報を提供してまいります。
生成AIへの期待値の変化 DeepSeek台頭がマーケターに突きつける課題とは?
AI 生成の広告に対する反発が続いた1年を経て、マーケターはパフォーマンス結果重視で非...
2024年に視聴者が検索したテレビCM 2位は中国のあのEVメーカー、1位は?
2024年にテレビCMを通して視聴者が気になりWeb検索したものは何だったのか。ノバセルが発...
Googleの広告収益成長が鈍化、中国のアレが原因?
YouTubeなどのプラットフォームの成長率は、米国の選挙関連支出の急増にもかかわらず低迷...