OSSを利用したPaaSサービスを構築
本セッションのテーマは、NTTコミュニケーションズがOSS(オープンソースソフトウェア)を利用してクラウドサービスを作った際の試行錯誤や効果の紹介。最初に川口克則氏が、2012年12月にリリースされたCloudn PaaS開発における技術的な話題やプロセスなどについて話し、続けて野上俊介氏が特徴とロードマップを紹介する、という構成で行われた。
Cloudn PaaSは、OSSであるCloud Foundryを利用して構築された。Cloud FoundryはRuby1.9系で実装されているPaaSで、数多くのランタイム、フレームワークに対応している。またIaaSに依存しないため、Amazon EC2やCloud Stackなどで使え、ローカルの1ホスト上でも動かすことができるのが特徴となっている。
Cloud FoundryはOSSであるため、誰でも、どこにでもPaaSを作ることができる。また、ある一定の条件を満たせばCore Compatibleというバッジを付けることも可能だ。現在、認定されているのはNTTコミュニケーションズを含めた5社で、それぞれでデプロイされたアプリケーションの互換性は高いと考えられる。
Cloudn PaaSは、NTTコミュニケーションズが提供するCloudStackベースのCloudn Compute上で動いている。利用事例としては、スポット情報まとめサービス「pinQA(ピンカ)」、アンケートを作るPHPソフトウェアをサービス化している「LimeSurvey」、業務アプリケーションの「intra-mart」などが挙げられる。2013年3月末からはオンラインサインアップも開始され、無料のサービスも提供予定だ。
Cloudn PaaSの開発が始まったのは2011年冬。川口氏は、2012年12月のリリースまで、どのようなことで悩み、どう解決していったのか、3章構成で紹介した。
第1章の期間は2011年冬から2012年春で、開発チームは5名だった。まず「Cloud Foundryというものがあるらしい。それを動くようにしよう」から始まった。
当時のCloud Foundryは、単一のホストへのデプロイはChefを使ったツールで簡単にできたが、複数ホストへデプロイするには、それぞれ手動で設定を変える必要があった。それでは社内でデモもできない。そこでCapistranoという便利なツールを使い、複数ホストにデプロイするツールを作成した。
開発チームに求められたのは、多いときには1日に10コミットされるほど活発なOSSであるCloud Foundryへの追随だ。そこで『アジャイルサムライ』を読んだり、デブサミで西村直人さんの「今そこにあるScrum」という発表を聞いたり、懇親会で色々な人から教えてもらったりして、知識の蓄積と情報収集を懸命におこなった。
まず、自分たちで作るパッケージデザインとエレベータピッチを作り、アナログタスクボードを用意し、ペアプロなどをやりやすいようにフリーアドレス化した。ミーティング系では、デイリースクラムを朝9時45分から行い、振り返り会を週1回、計画ミーティング系を月初に実施した。
ツールとして、チケット管理にRedmine、CI(継続的インテグレーション)にはJenkins、コミュニケーションはIRC、ソースコード管理はGithubを整備した。道具がほぼ揃ったところで、2012年2月1日からクローズドでβサービスを始め、社内や協力会社に使い始めてもらった。