PR

 「DevOps」という言葉が、Webアプリケーション開発者のコミュニティーで話題になっている。DevOps とは、開発(Development)と運用(Operations)を合成した言葉。アプリケーション開発者とITインフラストラクチャーの運用担当者との連携を密にすることで、開発者側のITインフラに対する変更要求に対して、運用担当者側が迅速に応えられる体制を作り出すことを指す。

 DevOpsに注目が集まっている背景には、「アジャイル開発」や「リーンスタートアップ」といったアプリケーションを小刻みに改善する開発スタイルが普及したことや、エンドユーザーがセルフサービス方式でITインフラをコントロールできる「クラウド」が登場したことがある。

 アジャイル開発やリーンスタートアップでは、まずアプリケーションを小さく作り上げ、後から何度もアプリケーションを改善する。アプリケーションの修正回数が増えると、ITインフラの変更も増えてくる。

 例えば、アプリケーションのテスト環境を拡張したり、当初予定していた国・地域以外にも本番環境を用意したりする必要が出てくることがある。こうした開発者側からのITインフラ変更要求に応えられる体制が、運用担当者側には求められていた。

 DevOpsを実現する理想的な仕組みは、開発者が運用担当者に依頼しなくても、開発者だけで新しいサーバーやストレージを用意したり、OSやミドルウエアの設定を変更したりできるようにするものだ。従来は難しかったが、クラウドの登場によって実現可能になりつつある。

 「Amazon Web Services」などのパブリッククラウドや、「Cloud-Stack」や「OpenStack」などのクラウドオーケストレーターを使ったプライベートクラウドは、仮想マシンなどをコントロールする管理用API(アプリケーション・プログラミング・インタフェース)を備える。開発者は管理用APIを呼び出すスクリプトを記述することで、運用担当者を介さずに仮想マシンを増やしたりストレージを拡張したりできる。

 クラウドサービス側にあらかじめ用意された管理用APIを使うのではなく、OSやミドルウエアの設定などを開発者が自在にコントロールするためのツールも登場している。米オプスコード(Opscode)が開発するオープンソースソフトウエア(OSS)の「Chef」や、米パペットラブズ(Puppet Labs)が開発するOSSの「Puppet」などである。

 Chefは、リレーショナルデータベースソフトの「MySQL」や分散バッチ処理ソフトの「Hadoop」、Webサーバーの「Apache」などの設定を変更するスクリプトを、プログラミング言語の「Ruby」を使って記述できる。

 従来の運用管理ツールは、運用担当者が利用するものだった。ChefやPuppetは、開発者を含むITインフラのエンドユーザーが、運用管理ツールを利用できるようにした。両社は自社開発したOSSの有償サポートも提供している。

 日本IBMも2012年10月に、開発者をターゲットとした新しい運用管理ツール「IBM Smart Cloud Continuous Delivery」を発売した。こうした“開発者が使う運用管理ツール”のことを、最近は「DevOpsツール」と呼ぶ。今後、クラウドの普及と共にDevOpsツールの利用も急速に広まっていくだろう。