オープンソースで商用クラウドサービスを作るためのチームビルディング。NTTコミュニケーションズ(前編)

2013年2月19日

2月14日、15日に都内で開催されたイベント「Developers Summit 2013」、通称デブサミ。2日目に行われたセッション「OSSで作る!クラウドサービス開発戦記」では、NTTコミュニケーションズの川口克則氏が、オープンソースを基盤としたサービス開発の苦労や解決のための試行錯誤について講演を行いました。

川口氏のセッションは、オープンソースソフトウェアで商用サービスをいかに構築するか、という面だけでなく、すばやい変化に追随できるチームをどうやって構築していくのかという、多くの開発チームに共通する悩みを共有できる点でも意義のあるセッションでした。その内容を紹介しましょう。

OSSで作る!クラウドサービス開発戦記

NTTコミュニケーションズ クラウドサービス部 川口克則氏。

fig

この発表では、オープンソースソフトウェア(OSS)を利用してクラウドサービスを作ってきたこれまでの試行錯誤や効果などをお話したいと思います。

私たちが開発しているのがOSSのCloud Foundryを使ったサービス「Cloudn PaaS」。Cloud FoundryはRuby 1.9系で開発されているPaaSで、IaaSに依存しないので、例えばAmazon EC2とか、あるいはうちの会社のようにCloud Stackとか、ローカルの1ホスト上でも稼働するのが特徴です。

fig

Cloud FoundryはOSSなので、これを使って誰でもPaaSが作れるのですが、ある条件を満たすとCore Compatibleというバッジを付けることができます。Cloud FoundryでCore CompatibleなPaaSはすでに5社くらいあって、NTTコミュニケーションズも先日ここに加わりました。

そうすると、私たちのPaaSでデプロイできたアプリなら、ほかのCloud Foundry Core CompatibleなPaaSでも動くだろう、ということになります。

Cloud Foundryを使ったPaaS、Cloudn PaaSは昨年12月に正式サービスを開始しました。足回りは自社のCloud Stackベースの自社のクラウド、Cloudnを使っています。

来月からはオンラインサインアップができるようになって、無料で利用できる範囲もある予定なので、ご期待ください。

と、ここまでは前置きで、ここから、OSSを使って私たちはどういうところで悩んでいて、どう改善していったか、という話を3章に分けてしたいと思います。

fig

第1章:若いOSSに対応できるチームの立ち上げ

第1章は2011年冬から2012年春。開発チームは5人でした。この頃は、そもそもCloud Foundryがあるらしい、それを動くようにしましょうと。そしてメンバーが集まったのでプロジェクトを立ち上げますと。

fig

当時のCloud Foundryは、単一のホストへのデプロイはChefで簡単にできたのですが、30台くらいの複数ホストへデプロイするのは、各ホストごとに設定を変えなくてはならなかったりと結構大変でした。

それでは社内でデモもできなかったので、複数ホストにデプロイするツールを、Capistranoという便利なツールがあったので、これで3日くらいで作りました。

PaaSの構成情報、どういうコンポーネントやランタイムがいくつあって、という情報を集約できるようになり、手動でデプロイしてミスをする、という悲劇はほぼなくなりました。

それからチームの立ち上げです。どういうチームが求められているかというと、Cloud Foundryは割と活発なOSSで、多いと1日に5コミット10コミットされるような頻繁に変わっていくものに追随できないと、若いOSSに対応できない。そういうのにうまく対応できるチームを作ろうとしました。

fig

アジャイルサムライを読んだり、2年前のデブサミでちょうどその辺に座って西村さんの話を聞いたりしました。懇親会で、いまこれに悩んでてどうすればいいですかねって聞いて、いろんな人にアドバイスをもらったりしてありがたかったです。

それから西村さんに会社まで来ていただいて、「スクラム基本のキ」というのをやってもらったり。

fig

まずは自分たちで作るパッケージデザインとエレベータピッチを作り、ペアプロなどをやりやすいようにフリーアドレスにして、これは自分たちだけですが。

fig

あとはミーティング系ですね。デイリースクラムを朝9時45分からやって、振り返りを週一回やって、計画ミーティング系を月初にします。

やり方は教科書通りで、昨日やったこと今日やること、悩みを共有したり。ペアプロ用にはプラズマディスプレイを、隣のプロジェクトが買ったけど使ってなさそうだったので、もらったりしました。

fig

ツールは、チケット管理にRedmine、継続的インテグレーション(CI)にはJenkins、日々の会話はIRCで、プロジェクトはGithubで管理しています。

道具が揃ったので、2月1日にβサービスをクローズドに始めて、社内だったり協力してくれそうな会社に使い始めてもらいました。当時デザイナーさんもいなかったので、しれっと作ったロゴですが、会社が田町にあるのでよく見ると田町になってるとか、ノリノリな感じが分かっていただけると嬉しいです。

fig

というわけで第1章はうまく始まったのですが、この辺から開発が思うように進まなくなったりしていきます。

≫後編に続きます。

あわせて読みたい

アジャイル開発 クラウド Cloud Foundry オープンソース




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本