1回で分かる:DevOpsとアジャイル開発の関係:IT部長さんのための技術トレンド【第2回】
最近よく耳にする「DevOps」という言葉。抽象的な表現故に、調べれば調べるほど混乱するという声も多く聞く。本稿ではそんなDevOpsについて、求められる背景、そしてアジャイルとの関係を整理しながら解説する。
DevOpsとは?
DevOpsとは、システムにおける開発者と運用担当者が連携して協力し合う考え方のことです。この考え方が必要とされた背景には、開発者と運用担当者は双方の役割によってリリースサイクルが異なるため、ビジネスの要求に合わせた仕様変更にシステムが対応しきれないという問題がありました。それを解決するアプローチが必要になったことが挙げられます。
アジャイル開発が生まれた背景
以前は(今でも多いですが)、システム開発といえば重厚長大なウォーターフォールによるビッグバンリリース形態が主流で、システムを構築すること自体が目的になり、要求変更に弱いシステムになりがちでした。
それを打破し、ユーザーが求める迅速なシステム構築を行うためのアプローチとして、定期的なリリースを繰り返し、柔軟なシステム開発を実現する「アジャイル開発手法」が生まれ、システムを利用するユーザー側と開発者側の意識改革を促しました。
関連記事
- Facebookのカリスマエンジニアに聞くDevOps事例
- Amebaの人気も支えている「DevOps」とは何か?
- 知らないでは済まなくなってきた「DevOps」、その真意は
- 結局、DevOpsとは何か? 〜その真の姿とサイバーエージェントに聞く実践の勘所〜
アジャイル開発では変えられなかった運用の問題
しかし、この意識改革(アジャイル開発)にはシステムを運用するという観点が抜けていました。運用担当者は変わらず安定運用に注力し、双方のリリースサイクル速度に違いが生まれる結果になりました。
その後、クラウドテクノロジーの普及によって、SaaS(Software as a Service)を中心にユーザー主導で導入するシステムが増え、運用部門が関わらないケースができるなど、この流れはさらに加速していきます。新たなビジネスを迅速に展開したいというユーザー側の思いに、システムが応えられていないことが原因といえるでしょう。
DevOpsが変える、システムの運用自動化
こうした背景から重要になってきたのがDevOpsという考え方です。冒頭で説明したように、DevOpsでは、開発者と運用担当者がお互い協力し合うことで、業務全体のアジリティ(俊敏性)を高めることが狙いです。
運用側にとっては、これまで開発の流れに置いていかれてしまっていたため、従来通りのプロセスでは対応することが難しく、また品質の担保も難しいのです。そこで「Chef」や「Puppet」といったITインフラの運用を自動化するプログラマブルなツールまたは、「Force.com」や「Heroku」といったクラウドベンダーが提供するPaaS(Platform as a Service)を中心としたサービスの活用が注目されています。これらのツールを使うことで、ユーザーに対して、オンデマンドなシステム提供ができるようになります。
気を付けなければならないこととして、ユーザーの業務には変化を求める領域と、そうでない領域があるということです。ウォーターフォール型の開発手法が全く不要になるわけではありません。システムに応じて使い分けていくことが重要です。変化が求められるビジネス領域では、ユーザーは新たなビジネスを迅速に立ち上げたいと考えますから、システムもそのスピードについていくことが求められるというわけです。
林田宏介(はやしだ こうすけ)
セールフォース・ドットコム セールスエンジニアリング本部 リードソリューションエンジニア
PaaSなど、クラウドプラットフォームを中心にセールスエンジニアを支援するアーキテクト。アーキテクトとして、オンプレミスからクラウドまで、さまざまな種類・規模のシステム開発で、インフラからアプリケーションアーキテクチャ、開発プロセスを手掛ける。
Copyright © ITmedia, Inc. All Rights Reserved.