Save 37% off PRO during our Black Friday Sale! »

Gunosyの施策を支える技術

 Gunosyの施策を支える技術

dots summit 2015にて。

05e8adce66be4e80390a29ace0075161?s=128

y_matsuwitter

February 07, 2015
Tweet

Transcript

  1. GunosyͷࢪࡦΛ ࢧ͑Δٕज़ @y_matsuwitter

  2. About @y_matsuwitter » ։ൃຊ෦ࣥߦ໾һ » iOS, Android, Infrastructure, Web »

    Golang!! Docker!! » ਖ਼࠲
  3. Gunosyͱ͸ » χϡʔεΩϡϨʔγϣϯΞϓϦ » ݱࡏ800ສDL » ػցֶश + ΞϓϦ։ൃ +

    ޿ࠂ഑৴ » ΤϯδχΞνʔϜ 25໊
  4. Gunosy։ൃͷ໘ന͞ » ߴ଎APIαʔό ʢPeak࣌ϨΠςΠϯγ 30msʣ » ߴੑೳADαʔό » Ұ೔਺ઍສ݅Λࢧ͑ΔPush഑৴ج൫ »

    ৽ٕज़Λͻͨ͢ΒProduction΁ » ...etc
  5. ࠓ೔ͷ࿩ » GunosyͰͷࡉ͔͍ϦϦʔεΛࢧ͍͑ͯΔऔΓ૊Έʹ͍ͭͯ » େ·͔ͳ࿩͕ଟ͍ͷͰɺࡉ͔͍෦෼͸ޙͰ࣭͝໰Լ͍͞

  6. We have... Too many problems Too too many ideas

  7. Try, try, try... with limited time and resources.

  8. There is no silver bullets!

  9. Grow your app

  10. Grow your app

  11. Grow your app Grow your team!!

  12. Team = Your service » ֤ࣗͷ௅ઓ͕ٕज़ྗͷ੒௕ » ٕज़ྗͷ੒௕͕νʔϜͷ੒௕΁ » νʔϜͷ੒௕͕ΞϓϦͷ௕ظతͳ੒௕΁

  13. Gunosy's rule » ৽ٕज़ͷੵۃ࠾༻ » ਺ࣈ͸ਆΑΓਖ਼͍͠ » 㙽ʹ΋֯ʹ΋ࢪࡦɾϦϦʔε

  14. ૊৫ͷ֦େ͕ݸਓͷ ௅ઓΛ๦͛ͳ͍࢓૊ Έͮ͘Γ

  15. But, How did it?

  16. Microservice Disposability

  17. Microservices = খ͞ͳαʔϏεͷ૊Έ߹ Θͤ

  18. What is microservices? » ద੾ͳن໛ͷϏδωεϩδοΫͷմ͝ͱʹ಺෦αʔϏεΛ෼ׂ » ΞϓϦέʔγϣϯଆ͔Β֤छAPIΛݺͼग़͢ » αʔϏεʹ߹Θٕͤͨज़બఆ

  19. Why microservices? » Ϗδωεʹ߹ΘͤͨνʔϜͷ෼ׂɾฤ੒ » খ͞ͳαʔϏεʹΑΔଐਓੑͷرബԽ » Ϗδωεཁٻʹର͢ΔॊೈͳରԠ ϞϊϦγοΫͳγεςϜͰ͸ɺϏδωε͕੒௕͢Δʹै͍վमίετ͕૿ Ճ͍ͯ͘͠

  20. Disposability = ࣺͯ΍͢͞

  21. What is disposability? » γεςϜؒͷ݁߹౓Λখ͘͞อͪɺഇغΛ༰қʹ͢Δ » ϦϑΝΫλϦϯάͰ͸ͳ͘γεςϜͷஔ͖׵͑ʹΑΔରॲ » ֤αʔϏε΁ͷґଘ౓ͷ௿͍ΞϓϦέʔγϣϯ

  22. Why disposability? » ͦͷ࣌ͷ৽ٕज़ͷ࠾༻ʹΑΔஔ׵͑Λ༰қʹ͢Δ » ෛ࠴ͱͳͬͨ࣌ʹʮࣺͯΔʯͱ͍͏൑அΛऔΕΔ༨஍ » খ͞ͳνʔϜͰଟ͘ͷ࣮ݧ ݁Ռͱͯ͠ଟ͘ͷࢼߦɾ৽ٕज़ͷTry͕ੜ·ΕΔ

  23. But... How?

  24. Golang, ABTesting Opsworks, Docker

  25. Golang » ΞϓϦέʔγϣϯͷ഑ஔ͕༰қ » ฒྻॲཧͷهड़͕༰қ » APIͷຆͲ͕Golang੡ » ࠃ಺࠷େͷGolang։ൃνʔϜʢࣗশʣ

  26. Golang ӡ༻ϧʔϧ » ֤αʔϏεͰ࢖ΘΕΔڞ௨Ϟδϡʔ ϧΛࣾ಺ύοέʔδͱͯ͠ఏڙ » ΤϯυϙΠϯτ΍ύεϕʔεͰසൟ ʹReplace

  27. Golang ։ൃ࣌ͷߏ੒ » WebϑϨʔϜϫʔΫ: guregu/kami » ͦͷଞ΄΅಺੡ύοέʔδͷΈͰӡ༻ » CircleCIʹΑΔCI

  28. ABTesting » ଟ͘ͷࢪࡦΛABςετʹͯޮՌܭଌ » σβΠφͱͯ͠ͷ௅ઓΛࡉ͔͘൓ө͢Δ࢓૊Έ

  29. ABTesting ࣮ࡍͷӡ༻ » APIΑΓͲͷUIΛग़੍͔͢ޚʢը໘ભҠɾϨΠΞ΢τͳͲʣ » RedshiftɾBigQueryͰ੒Ռूܭ » KPI౳͸શͯμογϡϘʔυʹΑΓ֬ೝ

  30. ABTesting ࡞͍ͬͯΔ΋ͷ » ஈ૊΍৭ͳͲશͯͷଐੑΛϦϞʔτ੍ޚՄೳͳςΩετඳըΤϯδϯ

  31. ABTesting ࡞͍ͬͯΔ΋ͷ » JSONϕʔεͷHTML likeͳಠࣗఆ ٛϏϡʔ

  32. Opsworks » ͩΕͰ΋ඞཁͳΠϯϑϥΛGUIͷΈͰߏங » ॊೈͳεέʔϦϯάରԠ

  33. Opsworks ϥʔϝϯτοϐϯάΠϯϑϥ » ը໘Λϙνϙν͍͚ͯͩ͘͠ͰඞཁͳΫϥελ͕࡞੒Մೳ

  34. Docker » ϓϩηε࣮ߦ؀ڥΛ࣮ࡍͷαʔό͔Β෼཭ » શͯͷγεςϜʹϙʔλϏϦςΟ

  35. Docker Ұྫ: ෼ࢄόονॲཧ

  36. ·ͱΊ » MicroservicesͱDisposability » ௅ઓΛ๦͛ͳ͍։ൃମ੍Λ࡞Γଓ͚Δ » ΞϓϦͷ੒௕͸ͦ͜ʹ͍ͭͯ͘Δʂ

  37. There is no silver bullets!

  38. We're hiring!! ੒௕͢Δ؀ڥͰ࠷ߴͷ։ൃΛ

  39. ࣭໰౳͸ @y_matsuwitter ·Ͱ