DevOpsとは、システムにおける開発者と運用担当者が連携して協力し合う考え方のことです。この考え方が必要とされた背景には、開発者と運用担当者は双方の役割によってリリースサイクルが異なるため、ビジネスの要求に合わせた仕様変更にシステムが対応しきれないという問題がありました。それを解決するアプローチが必要になったことが挙げられます。
以前は(今でも多いですが)、システム開発といえば重厚長大なウォーターフォールによるビッグバンリリース形態が主流で、システムを構築すること自体が目的になり、要求変更に弱いシステムになりがちでした。
それを打破し、ユーザーが求める迅速なシステム構築を行うためのアプローチとして、定期的なリリースを繰り返し、柔軟なシステム開発を実現する「アジャイル開発手法」が生まれ、システムを利用するユーザー側と開発者側の意識改革を促しました。
しかし、この意識改革(アジャイル開発)にはシステムを運用するという観点が抜けていました。運用担当者は変わらず安定運用に注力し、双方のリリースサイクル速度に違いが生まれる結果になりました。
その後、クラウドテクノロジーの普及によって、SaaS(Software as a Service)を中心にユーザー主導で導入するシステムが増え、運用部門が関わらないケースができるなど、この流れはさらに加速していきます。新たなビジネスを迅速に展開したいというユーザー側の思いに、システムが応えられていないことが原因といえるでしょう。
こうした背景から重要になってきたのがDevOpsという考え方です。冒頭で説明したように、DevOpsでは、開発者と運用担当者がお互い協力し合うことで、業務全体のアジリティ(俊敏性)を高めることが狙いです。
運用側にとっては、これまで開発の流れに置いていかれてしまっていたため、従来通りのプロセスでは対応することが難しく、また品質の担保も難しいのです。そこで「Chef」や「Puppet」といったITインフラの運用を自動化するプログラマブルなツールまたは、「Force.com」や「Heroku」といったクラウドベンダーが提供するPaaS(Platform as a Service)を中心としたサービスの活用が注目されています。これらのツールを使うことで、ユーザーに対して、オンデマンドなシステム提供ができるようになります。
気を付けなければならないこととして、ユーザーの業務には変化を求める領域と、そうでない領域があるということです。ウォーターフォール型の開発手法が全く不要になるわけではありません。システムに応じて使い分けていくことが重要です。変化が求められるビジネス領域では、ユーザーは新たなビジネスを迅速に立ち上げたいと考えますから、システムもそのスピードについていくことが求められるというわけです。
PaaSなど、クラウドプラットフォームを中心にセールスエンジニアを支援するアーキテクト。アーキテクトとして、オンプレミスからクラウドまで、さまざまな種類・規模のシステム開発で、インフラからアプリケーションアーキテクチャ、開発プロセスを手掛ける。
超リッチなイーロン・マスク氏の「言論の自由」は、あなたのそれと同じなのか?
Twitter買収の大義名分とされる「言論の自由」。しかし、同じことを語っているつもりでも...
新卒の営業職が仕事をやりたくない時期、最多は「5月」 ―― RevComm調査
新卒営業社員は5月に最初の「壁」を感じるようです。
「メタバース」でどうやってもうけるの? Meta(旧Facebook)が考える収益化への道
Metaの中核をなすメタバースプラットフォームのマネタイズ計画が明確になりつつある。高...