大規模スマートフォンサービス開発の世界 〜無料通話アプリcommの現場から〜

8,137 views

Published on

Published in: Technology
0 Comments
35 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,137
On SlideShare
0
From Embeds
0
Number of Embeds
1,380
Actions
Shares
0
Downloads
0
Comments
0
Likes
35
Embeds 0
No embeds

No notes for slide

大規模スマートフォンサービス開発の世界 〜無料通話アプリcommの現場から〜

  1. 1. ⼤大規模スマートフォンサービス開発の世界 無料通話アプリcommの現場から February  15,  2013   Ichito  Nagata   DeNA  Co.,  Ltd.   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  2. 2. ⾃自⼰己紹介n  ⻑⾧長⽥田 ⼀一登(28)n  エンジニアn  DeNA新卒2年⽬目n  comm開発責任者 2   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  3. 3. 3  Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  4. 4. commn  無料通話&メッセンジャーアプリn  iOS/Android向けに2012年10⽉月23⽇日リリースn  ⾼高品質な無料通話、実名制などが特徴 4   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  5. 5. commn  リリース初⽇日にAppStoreで無料総合1位を獲得n  次の⽇日にTVCM放映の意思決定n  2週間後に全国オンエア開始 5   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  6. 6. commn  2ヶ⽉月強で500万超の登録ユーザーn  当初想定からの極めて⼤大きな上振れ 500万 100万 2012年10⽉月 11⽉月 12⽉月 6   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  7. 7. ⼤大規模であるということ 7   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  8. 8. ユーザーベースの⼤大規模化n  スマートフォンアプリ市場の成熟 n  AppStore:400億DL n  Google Play:250億DLn  B2C型Webサービスの主戦場のひとつへ 8   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  9. 9. プロダクトの⼤大規模化n  開発⼈人員n  広告宣伝費n  etc 9   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  10. 10. commはどのようにして⼤大規模化できたのかn  開発体制n  インフラn  テストn  QAn  集計/分析 10   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  11. 11. 開発体制 11   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  12. 12. 1 5 15 60 12   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  13. 13. リリース以前の開発体制n  15⼈人で1チームのスクラムn  PO、SMが⼀一⼈人ずつ TEAM SM PO 13   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  14. 14. 問題その1    15⼈人…?   14   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  15. 15. ⼤大所帯すぎn  スクラムは5~6⼈人がベストn  様々なコミュニケーションロスの発⽣生n  しかしリリースまではそれで乗り切るしかなかった 15   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  16. 16.   問題その2  POが瀕死   16   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  17. 17. やること多すぎn  通常のPO業務n  企画・仕様決めn  UI/UXもデザインもディレクションn  法務部やCS部とも各種調整n  しかしリリースまではそれで乗り切るしかなかった 17   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  18. 18.   問題その2  SMも瀕死   18   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  19. 19. やること多すぎn  通常のSM業務n  開発リーダーも兼務n  ⾃自分で実装もn  バグ管理もn  しかしリリースまではそれで乗り切るしかなかった 19   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  20. 20. リリース  そして怒涛の ⼈人員追加   20   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  21. 21.   対応その1  SCRUM  OF  SCRUM の導⼊入   21   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  22. 22. SCRUM  OF  SCRUM  の導⼊入n  ファンクションごとの4つのスクラムに分割 CHIEF SM SM PO PO PO PO PO TEAM TEAM TEAM TEAM 22   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  23. 23.   対応その2  専任スクラムマスター の導⼊入   23   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  24. 24. 専属スクラムマスターの導⼊入n  SM業務のみに専念するSM 2n  開発リーダーは開発リーダー業務に専念 24   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  25. 25. インフラ 25   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  26. 26. サービス規模   ×   複雑性 26   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  27. 27. サービス規模n  企画当初から1千万規模のユーザー想定n  開発当初からその規模を⾒見見越したアーキテクチャ 27   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  28. 28. 複雑性n  TCP常時接続n  ⾮非同期処理n  無料通話n  etcn  ⼀一般的なWebアプリケーションよりも複雑 28   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  29. 29. ScalabilityAvailabilityPerformance 29   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  30. 30. Topic:  Messagingn  疎結合でシンプルなコンポーネントに分割n  基本全てのコンポーネントを多重化 Job   Queue Online   Worker 30   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  31. 31. Topic:  Data  Storen  MySQLを使い倒す n  Master/Slave/Backup構成 n  Shardingが前提 n  箇所箇所でHandlerSocketを利⽤用 n  DNSもMyDNS、Job queueもQ4Mn  ⼀一部のIOが激しい箇所でRedisも導⼊入(作業中) 31   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  32. 32. Topic:  DNSn  名前解決であらゆる向き先を分散 n  DB n  KVS n  メールサーバー n  etcn  MyDNSの負荷が⾺馬⿅鹿鹿にならないn  Consistent hashingでDNSをローカルキャッシュ 32   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  33. 33. Topic:  Voice  Talkn  ⽇日⽶米間だと転送遅延が最低でも150msec程度発⽣生n  海外ユーザーの⾳音声通話にはEC2を使⽤用 n  ユーザーの最近傍のリージョンを⾃自動的に選択 n  作りがシンプルなのでいくらでもスケールアウトで きる 33   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  34. 34. テスト 34   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  35. 35. リリース前後のテスト健康状態 サーバー クライアント 単体テスト 結合テスト 35   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  36. 36. 問題その1    サーバーの結合テストが   書きづらい   36   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  37. 37. サーバーの結合テストが書き⾟辛いn  ⾮非同期テストn  常時接続、ジョブキューの再現n  デーモンに依存する処理n  最近テストライブラリを⽤用意したが リリース前はロクに無かった 37   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  38. 38.   問題その2  クライアントの結合テストが   ⼤大変   38   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  39. 39. クライアントの結合テストが⼤大変n  テスターが頑張って⼿手作業 n  QA⼯工数の圧迫 n  気軽にリグレッションを回せないn  かといって⾃自動化も⼤大変 n  環境構築の時点ですでに⼤大変 n  Test Doubleも全部書かなきゃ 39   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  40. 40. 上がらないカバレッジ    QA⼯工数の継続的増加   40   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  41. 41. リリース後のテスト⽅方針 サーバー クライアント 単体テスト がんばる 結合テスト Integrated  UI  AutomaIon  Test 41   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  42. 42. Integrated  UI  AutomaRon  Testn  Calabash/Cucumberを⽤用いたUI⾃自動化テストn  専⽤用サーバー環境を準備n  サーバーの最新のコードとも繋ぎこんで⼀一緒にテスト 42   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  43. 43. Integrated  UI  AutomaRon  Test 43   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  44. 44. Integrated  UI  AutomaRon  Test 動画 44   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  45. 45. 運⽤用n  Jenkins n  ミッドナイト・ヘッドレステスト n  Failするとメールでお叱りn  専任テストエンジニア n  テストスクリプト作成 n  環境全般のメンテナンスn  現状ではリグレッション⽤用途が主 n  開発中は仕様変わるので⼿手作業で試験 n  今後はなるべく開発中から⾃自動化してゆきたい 45   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  46. 46. 結果n  全体のカバレッジが向上中n  リグレッションQA⼯工数が明らかに減った 46   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  47. 47. 限界n  フレームワークの限界 n  アプリをまたぐ処理 n  IMEまわり n  動きのあるものn  サーバーの完全な結合試験は無理 n  あくまで補完的な役割でしかない n  しかし無いより全然マシn  マニュアルテストやサーバー単独の結合テストも必須 47   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  48. 48. 副産物n  スクリーンショットを網羅的に取れる n  リリース前にデザイナーが⼀一覧してチェックできる n  その他、いろいろ便利 48   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  49. 49. QA 49   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  50. 50. リリース前後のQAn  開発チームとQA部とが明確に分離n  数⽇日単位の⼯工数感でTesterをアサインしてもらう QA部 依頼 TEAM Tester Tester 派遣 Tester 50   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  51. 51. 問題その1    コミュニケーション不全   51   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  52. 52. コミュニケーション不全n  チームとテスターとの認識ずれ n  試験項⽬目 n  優先順位 n  スケジュール感n  ようわからん感 n  いま誰が何を試験しているのか n  全体としてどういう状況なのか n  不安、とにかく不安 52   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  53. 53.   問題その2  やらされてる感   53   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  54. 54. やらされてる感n  テスターのアサインが常に流動的n  愛着や責任感が⽣生まれないn  プロダクトを表⾯面的にしか理解できない n  探索的テスト等では致命的 54   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  55. 55. 問題その3    バグ管理の破綻   55   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  56. 56. バグ管理の破綻n  エンジニアが⾃自主的にバグ管理 n  常にブレ続けた管理⽅方針 n  フランクに放置されるブロッカーn  JIRAが廃墟化 n  そして誰もいなくなった JIRA イメージ図 56   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  57. 57. コミュニケーション不全     やらされてる感     バグ管理の破綻   57   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  58. 58. 対応その1     テスターの  チーム張り付き制の   導⼊入   58   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  59. 59. テスターのチーム張り付き制の導⼊入n  正式にチームにJOINn  エンジニアの隣の席で相談しながら作業 TEAM Engineer Tester Engineer Tester Engineer Tester ⽣生暖かい QA部 マネジメント 59   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  60. 60. 対応その2    専任ゲートキーパーの   参加   60   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  61. 61. 専任ゲートキーパーの参加n  藤⽥田さん n  破綻していたJIRAを完璧にお掃除 n  JIRA管理運⽤用⽅方針をゼロから再構築 n  バグ放置してると毎朝メールが来る 藤⽥田明⼦子 (35) 61   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  62. 62. 結果n  バグ件数の順調な減少n  ⼿手戻りの少ない機能検証n  活気を取り戻したJIRA 62   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  63. 63. 補記:Global  QAの難しさn  電波法の問題 n  海外端末を国内のWifiに繋げない n  DeviceAnywhereでリモートデバッグn  ⾔言語の問題 n  バイリンガルテスターの採⽤用 n  翻訳や現地テスターとのやり取りをお願い 63   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  64. 64. 集計/分析 64   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  65. 65. ネイティブアプリ特有の問題n  クライアントでバグが起きていても気付き⾟辛いn  ユーザーのアクティビティがわからないn  各種性能指標も取れない 65   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  66. 66. 何が起きているのか   わからない   わからない 66   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  67. 67. 対応その1    クライアントログ収集   67   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  68. 68. クライアントログ収集n  クライアント側でログを吐く n  各種性能指標 n  アクティビティn  端末にバッファリングして定期的にサーバーに送信 n  サーバーログと同じ形式でHadoop上に保存n  トークや通話等、個⼈人情報や通信に関わる部分は除外 68   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  69. 69. 対応その2    アクティビティの可視化   69   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  70. 70. アクティビティの可視化n  Interaction Stream(開発中) 70   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  71. 71. アクティビティの可視化n  Interaction Heatmap(開発中) 71   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  72. 72. COMMはどこへ⾏行行くのか 72   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  73. 73. commはどこへ⾏行行くのかn  実名制、リアルアイデンティティを軸とした クローズド・コミュニケーションのプラットフォームへn  春ごろに⼤大きな改修を予定 アイデンティティ 実名 Face book ( ( 限 非 定 限 定 多 ー ー ー れ 数 知 知 対 人 人 ) 象 LINE mixi ) ニックネーム 73   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  74. 74. 他サービスとのシナジーを⽬目指してn  ゲームプラットフォーム事業n  EC事業n  新規事業 n  ⾳音楽サービス「Groovy」 n  etc 74   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  75. 75. ACTION 75   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  76. 76. ⼤大規模たれ 76   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  
  77. 77. ⼤大規模たれn  今後、より⾯面⽩白くなるスマートフォンアプリ市場n  要請される規模感に応じた Architecturen  それが実現できる環境 How  about  DeNA?   How  about  comm  team? Thank  you.     Ichito  Nagata 77   Copyright  (C)  2013  DeNA  Co.,Ltd.  All  Rights  Reserved.  

×