中規模チームを支える自動化とノウハウ共有の仕組み/CEDEC2017

935fa3c3cfe0ae00d891c958864e3de1?s=47 Konboi
August 30, 2017

 中規模チームを支える自動化とノウハウ共有の仕組み/CEDEC2017

本セッションでは、約20〜30人規模で面白法人カヤックが運用しているスマホゲームタイトルの開発/運用の現場を支えている開発の仕組み化と自動化の取り組みについて具体的な例を上げながら紹介します。

935fa3c3cfe0ae00d891c958864e3de1?s=128

Konboi

August 30, 2017
Tweet

Transcript

  1. 2.

    Profile • ໼ਧྒྷհ a.k.a ˏKonboi • ໘ന๏ਓΧϠοΫ • ιʔγϟϧήʔϜࣄۀ෦ॴଐ •

    ٕज़෦ όοΫΤϯυΤϯδχΞ݉νʔϑ • Ωϯ೑ϚϯϚοεϧγϣοτͳͲΛ୲౰
  2. 6.

    • ๻ΒͷߕࢠԂϙέοτ • γϦʔζྦྷܭ 600ສDL • ϓϨΠϠʔ͸̍ਓͷߴߍٿࣇ • ϓϨΠϠʔಉ࢜ͰνʔϜΛฤ੒ •

    ߕࢠԂग़৔/༏উΛ໨ࢦ͢ • Ωϯ೑Ϛϯ MUSCLESHOT • DeNA͞Μͱͷڠۀ • ݪ࡞Λ࠶ݱͨ͠ετʔϦʔ • ࠷େ̐ਓͷϦΞϧλΠϜ
 ڠྗότϧ
  3. 8.
  4. 10.

    اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦ ɾϓϩσϡʔαʔ


    ɾσΟϨΫλʔ ɾϓϥϯφʔ ɾϨϕϧσβΠφʔ ɾϓϩδΣΫτϚωʔδϟʔ
  5. 21.
  6. 32.

    Why GSS ? • ϝϦοτ • ෳ਺ਓͰૢ࡞Մೳ • Πϯλʔωοτ͑͋͞Ε͹Ͳ͔͜ΒͰ΋ฤूՄೳ •

    ฤूͷཤྺ͕࢒Γɺ෮ݩ΋Մೳ • JavaScriptͰϓϥάΠϯͷهड़͕Մೳ
  7. 35.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ   ࡞ۀ͕িಥ (ࣄྫ) དྷिग़͢෢ثΛ
 ೖྗ͠·͢
  8. 36.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ   ࡞ۀ͕িಥ (ࣄྫ) ࠶དྷिग़͢෢ثΛ
 ೖྗ͠·͢
  9. 37.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ   ࡞ۀ͕িಥ (ࣄྫ) ࠓೖྗதͳͷͰ গ͠଴ͬͯԼ͍͞
  10. 38.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ    ދప    ଜӍ   ࡞ۀ͕িಥ (ࣄྫ) ։ൃ؀ڥͰ ֬ೝ͠Α͏ͬͱʂ
  11. 39.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ    ދప    ଜӍ   ࡞ۀ͕িಥ (ࣄྫ) ͍͢·ͤΜ
  12. 40.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ    ދప    ଜӍ   ࡞ۀ͕িಥ (ࣄྫ) ࣄલͷ͓஌Βͤͱ ύϥϝʔλ͕ҧ͏ͷͰ मਖ਼͠·͢
  13. 41.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ    ދప    ଜӍ   ࡞ۀ͕িಥ (ࣄྫ) 2"લͷσʔλൈ͍ͯ Լ͍͞
  14. 42.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ    ދప    ଜӍ   ࡞ۀ͕িಥ (ࣄྫ)
  15. 43.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ    ދప    ଜӍ   ࡞ۀ͕িಥ (ࣄྫ) ࡞ۀͰ͖Δͷ͍ͭʹ ͳΔ΍Βʜ
  16. 44.
  17. 47.

    ·Δͬͱෳ੡ *% /BNF "UUBDL )1  ໦౛   

    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BNF "UUBD L )1  ໦౛    ୹݋    ϋϯϚ ʔ    φΠϑ  
  18. 48.

    ·Δͬͱෳ੡ *% /BNF "UUBDL )1  ໦౛   

    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BNF "UUBD L )1  ໦౛    ୹݋    ϋϯϚ ʔ    φΠϑ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BNF "UUBD L )1  ໦౛    ୹݋    ϋϯϚ ʔ    φΠϑ  
  19. 49.

    ·Δͬͱෳ੡ *% /BNF "UUBDL )1  ໦౛   

    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BNF "UUBD )1  ໦౛    ୹݋    ϋϯϚ    φΠϑ    ދప    ଜӍ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BNF "UUBD L )1  ໦౛    ୹݋    ϋϯϚ ʔ    φΠϑ  
  20. 50.

    ·Δͬͱෳ੡ *% /BNF "UUBDL )1  ໦౛   

    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BNF "UUBD )1  ໦౛    ୹݋    ϋϯϚ    φΠϑ    ދప    ଜӍ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BN "UUB )1  ໦౛    ୹݋    ϋϯ    φΠ   *% /BNF "UUBD )1  ໦౛    ୹݋    ϋϯϚ    φΠϑ    άϩʔ    ϝϦέ  
  21. 51.
  22. 58.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   GSS෼ׂ
  23. 59.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1 *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   GSS෼ׂ
  24. 60.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1 *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   GSS෼ׂ *% /BNF "UUBDL )1
  25. 61.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ދప    ଜӍ   *% /BNF "UUBDL )1  άϩʔϒ    ϝϦέϯ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   GSS෼ׂ
  26. 62.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ދప    ଜӍ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ    ދప    ଜӍ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   GSS෼ׂ
  27. 63.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  άϩʔϒ    ϝϦέϯ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ    άϩʔϒ    ϝϦέϯ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   GSS෼ׂ
  28. 64.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   GSS෼ׂ
  29. 65.

    *% /BNF "UUBDL )1  ໦౛    ୹݋

       ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ    ދప    ଜӍ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   *% /BNF "UUBDL )1  ໦౛    ୹݋    ϋϯϚʔ    φΠϑ   GSS෼ׂ *% /BNF "UUBDL )1  ދప    ଜӍ  
  30. 90.

    What's mirage ? • ήʔϜٕݚϝϯόʔ͕։ൃͨ͠ϛυϧ΢ΣΞ • subdomainͱbranch໊ΛηοτͰϦΫΤετ • ίϯςφΛىಈ͠ɺbranch৘ใ͕؀ڥม਺ͱͯ͠౉Δ •

    ίϯςφ಺ʹ౉͞ΕͨbranchͰΞϓϦέʔγϣϯΛىಈ • ࢦఆͨ͠υϝΠϯ໊ͰϦΫΤετ͢Δͱ
 ର৅ͷίϯςφ΁Proxy͢Δ
  31. 112.

    docker × mirage • chat bot ʹ͢Δ͜ͱͰ
 ؀ڥߏங΋ΤϯδχΞ͍Βͣ ※ Software

    Design 2017೥2݄߸ͷಛूͰ
 mirage΍͜ͷลͷ࿩Λॻ͍͍ͯ·͢[એ఻]
  32. 126.
  33. 139.

    ࣗಈԽͷऔΓ૊Έ ·ͱΊ • GSSΛ෼ׂ͢Δ͜ͱͰෳ਺ਓ͕ฒߦͰฤूՄೳʹ • chat botͰ֤ਓ͕ΤϯδχΞͷखΛआΓͣʹ
 & ଴ͪ࣌ؒͳ͘σʔλͷ൓ө͕Մೳʹ •

    docker×mirageΛ࢖༻͢Δ͜ͱͰ֤ਓ͕
 ࣗ༝ʹ։ൃ/֬ೝͰ͖Δ؀ڥΛߏஙՄೳʹ • ϚελʔσʔλΛCI͢Δ͜ͱͰ҆શͳӡ༻ج൫Λߏங
  34. 140.
  35. 156.
  36. 178.

    Q&A

  37. 179.

    ࢀߟURL • ๻ΒͷߕࢠԂϙέοτ ެࣜαΠτ • https://koshien-pocket.kayac.com/ • Ωϯ೑Ϛϯ Ϛοεϧγϣοτ ެࣜαΠτ

    • http://muscleshot.jp/ • ΧϠοΫืू ৬छ • https://www.kayac.com/recruit/career • FINAL FANTASY Record KeeperͷϚελʔσʔλΛࢧ͑Δٕज़ • https://www.slideshare.net/dena_study/final-fantasy-record-keeper • ϞόΠϧήʔϜʹ͓͚ΔϚελʔσʔλӡ༻ࣄྫ • http://labs.gree.jp/blog/2015/12/15368/
  38. 180.

    ࢀߟURL • docker • https://www.docker.com/ • acidlemon/mirage • https://github.com/acidlemon/mirage •

    DockerͰඇΤϯδχΞͰ΋։ൃ؀ڥΛ্͛Լ͛Ͱ͖Δɺmirageͱ͍͏πʔϧΛ࡞Γ·ͨ͠ • http://techblog.kayac.com/mirage • ιϑτ΢ΣΞσβΠϯ 2017೥ 02 ݄߸ • https://www.amazon.co.jp/exec/obidos/ASIN/B01NBDY5L2 • ιʔείʔυҎ֎΋ͱʹ͔͘ςετ͢Δɻ΋͘͠͸ΧόϨοδ͚ͩͰ͸μϝͩͱ͍͏࿩ • http://www.songmu.jp/riji/entry/2014-12-25-test-anything.html • εΩϧϚοϓ࡞੒ͷ͢͢Ί • http://www.ryuzee.com/contents/blog/7065