$30 off During Our Annual Pro Sale. View Details »

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

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

DevSumi2013 15-B-4 #devsumiB
http://event.shoeisha.jp/detail/1/session/46/
2012年12月にリリースしたCloudn PaaSは、Rubyで実装されたOSSのPaaS、Cloud Foundryを利用することで、ベンダーによるロックインのないPaaSを実現しています。
本セッションでは、Cloudn PaaS開発チームの、開発プロセスの試行錯誤、OSS導入のトラブルや対策、ユーザとの交渉やカスタマイズ、OSSへのコントリビュートといったこれまでの挑戦を通じた、クラウドサービスの立ち上げについてお話します。

Katsunori Kawaguchi

February 15, 2013
Tweet

More Decks by Katsunori Kawaguchi

Other Decks in Technology

Transcript

  1. Summit
    Developers
    Developers Summit 2013 Action !
    OSSで作る!
    クラウドサービス開発戦記
    ~Cloudn PaaSの挑戦~
    15-B-4
    #devsumiB
    Katsunori Kawaguchi
    @hamakn
    2013-02-15

    View Slide

  2. この発表では、
    OSSを利用して、
    クラウドサービスを作った際の、
    試行錯誤とその効果
    の話をします。

    View Slide

  3. We are
    DevSumi 2013
    Platinum
    Sponsor!!

    View Slide

  4. View Slide

  5. About me
    • Katsunori Kawaguchi
    • @hamakn on
    Twitter and Github
    • Works at
    NTT Communications
    • Yokohama.rb
    • Cloud Foundry
    Contributor(一応…)

    View Slide

  6. よろしく
    おねがいします!

    View Slide

  7. (再)
    この発表では、
    OSSを利用して、
    クラウドサービスを作った際の、
    試行錯誤とその効果
    の話をします。

    View Slide

  8. Cloud Foundry
    • OSSなPaaS
    • VMwareが開発の中心
    • Rubyで実装
    • Multi
    – Runtimes
    – Frameworks
    – IaaS

    View Slide

  9. PaaS (Platform as a Service)
    • アプリケーションさえ作れば、
    あとはよろしくしてくれるサービス
    – データベースや
    アプリケーションサーバはお任せ
    • サービス開発者の理想郷
    …になるはず

    View Slide

  10. Cloud Foundry on Github
    https://github.com/cloudfoundry/

    View Slide

  11. Cloud Foundry WebSite
    http://www.cloudfoundry.com/

    View Slide

  12. Cloud Foundry Core
    http://core.cloudfoundry.org/listings/

    View Slide

  13. Cloudn PaaS
    • Cloud Foundry Core Compatible
    なPaaS
    – Cloudn PaaSで動くアプリケーションは
    他のCF Providerでも動く
    • 2012-12-03 正式サービス開始
    • IaaSは自社のCloudn (CloudStackベース)

    View Slide

  14. Cloudn PaaS

    利用事例

    View Slide

  15. PinQA
    http://pinqa.com/

    View Slide

  16. LimeSurvey
    http://www.d-ip.jp/limesurvey/

    View Slide

  17. Accel Mart
    http://www.intra-mart.jp/products/iap/

    View Slide

  18. Cloudn PaaS UI

    View Slide

  19. 2013年03月
    オンラインサインアップ
    開始予定

    View Slide

  20. ここまで前置き

    View Slide

  21. 今日はこれから、約1年間の、
    Cloudn PaaSの開発戦記を
    3章構成でお話しします。
    2012
    2013
    ch.1 ch.2 ch.3

    View Slide

  22. Chapter-1
    PaaSはじめます!
    2011年冬~2012年春
    開発チーム:5人

    View Slide

  23. この時期にやったこと
    • Cloud Foundryの構築
    • 開発チームの立ち上げ
    • Closed β

    View Slide

  24. まずは動かすところから
    • 2011年末当時のCloud Foundry
    – 単一ホストでの構築:ほぼ自動(chef_solo)
    – 複数ホストでの構築:だいぶ手動

    View Slide

  25. cf_deploy

    View Slide

  26. デプロイツール
    • capistranoベース
    • 構成情報を集約し、バージョン管理
    • 手動によるミスは(ほぼ)なくなった

    View Slide

  27. チームの立ち上げ
    • 高頻度なupstreamの更新に対応できる
    チームを作る!
    • 参考にしたもの

    View Slide

  28. @nawotoさん降臨
    マスター@nawotoに学ぶ
    「スクラム基本のキ」
    2011-12-14 goo tech talk

    View Slide

  29. パッケージデザイン

    エレベーターピッチ

    View Slide

  30. アナログタスクボード

    View Slide

  31. アナログタスクボード
    フリーアドレス
    (デスクトップPC廃止)

    View Slide

  32. Daily Scrum (09:45~10:00)
    振り返り会(週1回)
    計画ミーティング(月初)

    View Slide

  33. ペアプロ用
    ディスプレイ

    View Slide

  34. Tools
    • Redmine
    • Jenkins
    • IRC
    • Github
    – upstreamがGithubなことや、
    効率を説いたら割と簡単にOKが出た
    – Bussiness PlanのGold (100$/month)

    View Slide

  35. We’re all ready!!
    • βサービス開始 2012-02-01

    View Slide

  36. Chapter-2
    開発と導入サポートです!
    2012年春~2012年秋
    開発チーム:9人

    View Slide

  37. この時期にやったこと
    • upstreamへの追随
    • 顧客のPaaS導入サポート
    • Bugfix、機能追加、パッチの送付
    • 開発のやり方の検査と見直し

    View Slide

  38. upstreamへの追随
    • 定期的にPaaSのコードを最新化する
    • cloudfoundry.comは
    1週間に2度程度更新している(らしい)

    View Slide

  39. トラブル
    • upstreamを取り込んだら、
    mysqlのインスタンスが、
    作成から数時間後に消えるように…

    View Slide

  40. View Slide

  41. 対策
    • Staging環境でしばらく様子を見る
    • ちゃんとupstreamのコードを読む
    • 問題が起きたらテストを追加する

    View Slide

  42. 顧客へのPaaS導入サポート
    • そのままではPaaSで動かないこともある
    • 選択
    – Platformで対策する?
    • OSS化する?
    – アプリ側で対策する?

    View Slide

  43. 例1
    • memcachedサポート
    • 公開
    https://github.com/cloudfoundry/vcap-services/pull/15

    View Slide

  44. 例2
    • Resinサポート
    • 現状、非公開
    – 需要???
    – 英語力が、、

    View Slide

  45. その他の開発リスト
    • Web Console
    – Rails3
    • ログ集約・検索
    – Fluentd, 他
    • 監視
    – Monit, Munin,
    Jenkins
    • (一部)Javaの
    Session Replication
    • Runtime追加
    – Ruby1.9.3
    – Sun Java6, Oracle Java7
    • Service追加
    – MySQL 5.5
    – Postgresql 9.1
    • クライアント(vmc)
    – オプション追加
    • Rails3.2, 4対応

    View Slide

  46. 開発がわかってきた
    • Core Compatibleでありつつ、
    顧客の個別の要望にも応えられることを、
    我々の価値とする
    • OSS化はやる気次第でできる
    (もっとしたい)

    View Slide

  47. 問題もわかってきた
    • テストが増えたのは良いが
    時間がかかる (slow test)
    • 属人化してきた
    – ○○さんじゃないとわからない
    – 暗黙のコミット
    • マンネリ化してきた
    – 振り返り
    – 繰り返す日々に

    View Slide

  48. 物量作戦
    • JenkinsのSlaveを使って
    テストを並列実行
    • 自社でIaaSを持つメリットを
    最大限に利用する
    – CloudStackなので
    fogやknife-cloudstackで
    操作可能

    View Slide

  49. ペアプロ作業の時間
    • 週に2時間、必ずペアで作業する
    • やった内容を1チーム5分でLTする

    View Slide

  50. Code Review強化
    • Githubのpull requestを使う体制に移行
    (2012年09月)
    – 今日までに551 pull requests
    • 必ずauthor以外がmergeする
    – 少なくとも2人は内容がわかってる
    • CI結果をpullreqに表示する
    (JenkinsのPlugin)

    View Slide

  51. View Slide

  52. IRC強化
    • Jenkins連動
    • Minechan
    • Joke

    View Slide

  53. 振り返りに刺激を
    • KPT以外の方法を試す
    – 555, DoDやWorking Agreementの見直し
    • ファシリテータを変える
    • 開催時間を変える
    – 月曜から金曜夜へ
    (定時退社日を上手く使う)
    (揃って終わって、やった感を出して来週へ)

    View Slide

  54. 計画の達成!
    • 商用サービス開始 2012-12-03

    View Slide

  55. Chapter-3
    組織に広げます!
    2012年冬~

    View Slide

  56. 今やっていること
    • 隣のプロジェクトと連携する
    • 隣の人に火を点ける

    View Slide

  57. 実はあまり上手くいっていない…

    View Slide

  58. わたしたちの組織
    PMO
    マーケティング
    認証・課金
    運用・問い合わせサポート
    開発運用
    (IaaS)
    開発運用
    (PaaS)
    開発運用
    (DBaaS)
    ・・・

    View Slide

  59. 上手くいかない理由?
    • 前提がたくさん違う
    – 作り方が違う(発注・委託)
    – 目標が違う
    – フロアが違う
    – ツールが違う
    – 管理職とは何だったのか

    View Slide

  60. でもやるんだよ!

    View Slide

  61. なぜ?
    • 会社に開発の文化を根付かせたい
    – 生き残るため
    – 仕事を楽しくするため
    – 通信のおまけ、から脱して、
    世界に価値を届けるため
    http://www.flickr.com/photos/ugod/4579369662/

    View Slide

  62. View Slide

  63. View Slide

  64. View Slide

  65. 隣のチームと
    ランチミーティング

    View Slide

  66. IRCチャンネルを増やす

    View Slide

  67. 焦らず急いで!

    View Slide

  68. Final Chapter
    まとめ

    View Slide

  69. この発表では、
    OSSを利用して、
    クラウドサービスを作った際の、
    試行錯誤とその効果
    の話をしました。

    View Slide

  70. コミュニティや本、資料で
    おすすめのやり方を
    まずやってみることで
    ここまで来れました。

    View Slide

  71. Action:
    いいな!と思ったら
    ぜひやってみてください!
    もっと良い方法があれば教えて
    ください!

    View Slide

  72. Thank you!!

    View Slide