ソフトウェア開発における新常識「DevOps」
近年よく聞くようになった言葉「DevOps」はソフトウェア開発手法の一つで、従来の開発において別々に行われていた「開発(Development)」と「運用 (Operations)」のチームが協業して1つになることにより、リリース時のトラブルを最小限に抑えつつ、リリーススピードを高めるためのものです。元は「Velocity 2009」というイベントにおいてJohn Allspaw氏とPaul Hammond氏によって発表された「10+ Deploys Per Day」 という資料が元となっており、今でもこのコンセプトはDevOpsにおける教科書的存在として今でも多くのソフトウェア開発・運用チームで参考にされています。両氏はその中でDevOpsを実現するためのツールとして、以下が必要であると説いています。
![DevOpsに必要なツール](http://cz-cdn.shoeisha.jp/static/images/article/10191/10191_01_s.gif)
もちろん10+ Deploys Per Dayにおいて定義されるDevOpsでは、開発・運用チームのカルチャーについても触れており、ツールだけでは全てを解決できないということにも示されています。その点には注意を払いつつも、やはり開発時と運用時の環境の違いを吸収し、可能な限りインフラ及びデプロイを自動化をすることがDevOps実現において非常に重要であることが分かります。DevOpsのより詳しい解説は以下など参考にするとよいでしょう。
HerokuのコンセプトとDevOps
Herokuは「ソフトウェア開発者の生産性を最大化させる」ことを理念として掲げるPaaS(Platform as a Service)で、素早く動作させられるランタイム環境と、DevOpsを実現するための優れたツール群に定評があります。
Herokuの元となっているコンセプトは、Heroku創業者の1人であり初代CTOでもあるAdam Wegginsによって書かれた「The Twelve-Factor app」 にまとめられています。この「The Twelve-Factor app」はWebアプリケーションを構築する際の課題と有効な手法をまとめたもので、Herokuはそのコンセプトをより高いレベルで実現するために今も進化を続けています。
![The Twelve-Factor App](http://cz-cdn.shoeisha.jp/static/images/article/10191/10191_02_s.gif)
ここでDevOpsのツールのプラクティスとTwelve-Factor Appのファクターを比べてみると、2つは違った視点でまとめられたものではありますが、そのアプローチには多くの共通点があることが分かります。詳細は本記事の後半で紹介しますが、インフラストラクチャやビルドプロセスの自動化、コードのバージョン管理と共有、デプロイなどのアクティビティログの扱いなどが共通しています。
つまりTwelve-Factor Appを実現しているHerokuを利用すれば、DevOpsを実現するために必要なツールとしても利用できることを意味します。この点がHerokuがDevOpsを実現する上で優れていると言われる理由となっています。
またHerokuには無料枠がある上に簡単に利用できるので、開発環境ではHerokuを利用し本番環境では別のIaaSなどへデプロイするといった話を度々聞きますが、それではHerokuが持っている機能を十分に活かしきれないばかりか、DevOpsという観点から見ても決して好ましい構成とは言えません。Herokuを利用する場合には、本番環境も含めてHerokuで構成することをお勧めします。
Herokuの始め方と学習リソース
それではHerokuを使い始めるにはどうすれば良いでしょうか? Herokuはメールアドレスだけで誰でも登録でき、すぐに無料で始めることができます。
HerokuのWebサイトからサインアップすれば、すぐにアカウントが発行され、プログラミング言語ごとに用意されたGetting Startedページを見ながらアプリケーションのデプロイまでをステップバイステップで学べます(サインアップ方法の日本語での解説はこちらをご覧ください。またNode.js、Ruby、Java、PHP、PythonのGetting Started日本語版をPDFにてこちらからダウンロードいただけます)。
またHeroku Dev CenterにはHerokuを使う上で参考になるドキュメントやさまざまなTipsが数多く用意されていますので、Herokuについて分からないことがあれば、まずはDev Centerを検索してみると良いでしょう。
そして残念ながら現在Dev Centerのコンテンツは全て英語のみとなっていますが、日本語での情報が欲しい場合には、セールスフォース・ドットコムの開発者向けサイトであるSalesforce Developersに各種初心者向けのWebセミナー録画やGetting Started(始めてみよう)の日本語翻訳版のPDFなども提供されています。
まずは「日本語で情報が読みたい」という方はぜひSalesforce Developersのサイトをご覧下さい。
サードパーティではありますが、他にもドットインストールなどにはHerokuの入門コンテンツが日本語で用意されていますので、こちらも参考になるでしょう。
ひとたびHerokuにサインアップさえすれば、Herokuが提供する豊富な機能群に無料でアクセスして試すことが可能です。今すぐ使い始めましょう。