マイクロチームでの高速な新規開発を支える開発・分析基盤

 マイクロチームでの高速な新規開発を支える開発・分析基盤

マイクロチームでの高速な新規開発を支える開発・分析基盤 by @__timakin__
Builderscon2017でのプレゼン内容です。

5bfed9aa3a9ebccb0c0f0cb65ee9e012?s=128

Seiji Takahashi

August 04, 2017
Tweet

Transcript

  1. ϚΠΫϩνʔϜͰͷ ߴ଎ͳ৽ن։ൃΛࢧ͑Δ ։ൃɾ෼ੳج൫ @__timakin__ builderscon 2017

  2. ࣗݾ঺հ • timakinʢಡΈ: ͪ·͖Μʣ • https://github.com/timakin • https://twitter.com/__timakin__ • Gunosy৽نࣄۀ։ൃࣨ

    • Contributor of Golang <- New! • Go/SwiftΛϝΠϯʹॻ͍͍ͯ·͢ɻ
  3. Copyright© Gunosy Inc. All Rights Reserved 3 Go / Python

    ΤϯδχΞืूத ▶https://gunosy.co.jp/recruit/ Gunosy͸ɺ౦ژେֶʹ௨͏3ਓͷֶੜͷ
 ʮ৘ใΛੈքதͷਓʹ࠷దʹಧ͚͍ͨʯͱ͍͏૝͍͔Β࢝·Γ·ͨ͠ɻ ౦ূϚβʔζ্৔ɺ࿡ຊ໦ώϧζ΁ͷΦϑΟεҠసΛܦͯɺ
 େ͖͘੒௕͍ͯ͠ΔձࣾͰ׆༂͍ͨ͠ϝϯόʔΛืू͍ͯ͠·͢ɻ
  4. ࠓ೔࿩͢͜ͱ • ʮLUCRAʯॳظϦϦʔε·ͰͷಓͷΓͱ੍໿৚݅ • ୹͍։ൃظؒͰ΍ͬͨ͜ͱɺ΍Βͳ͔ͬͨ͜ͱ • ։ൃج൫ͷ঺հ • ॊೈͳԾઆݕূ͕Մೳͳ؀ڥͮ͘Γ

  5. ݶΒΕͨϦιʔεԼͰͷ
 ߴ଎ͳ։ൃख๏ খ͍͞νʔϜͰ΋PDCAΛ
 ճͤΔ෼ੳج൫

  6. ݶΒΕͨϦιʔεԼͰͷ
 ߴ଎ͳ։ൃख๏

  7. ࣮ྫɿʮLUCRAʯ

  8. None
  9. ʮLUCRAʯॳظϦϦʔε·Ͱͷ ಓͷΓͱ੍໿৚݅

  10. εέδϡʔϧͱ੍໿৚݅ • εέδϡʔϧ • ໿3ϲ݄ؒ (3݄~5݄຤) • ։ൃνʔϜͷن໛ • ৽نϓϩδΣΫτ͸ۃྗগ਺Ͱʂ

    • ࢓ࣄͰGoͷAPIɺSwiftͰͷiOSΞϓϦ։ൃܦݧͳ͠
  11. εέδϡʔϧͱ੍໿৚݅ • ։ൃཁ݅ • iOSΫϥΠΞϯτ

  12. εέδϡʔϧͱ੍໿৚݅ • ։ൃཁ݅ • iOSΫϥΠΞϯτ • هࣄɺάϧʔϐϯά৘ใɺϢʔβʔೝূଞϦιʔεશମʹؔΘ ΔAPI

  13. εέδϡʔϧͱ੍໿৚݅ • ։ൃཁ݅ • iOSΫϥΠΞϯτ • هࣄɺάϧʔϐϯά৘ใɺϢʔβʔೝূଞϦιʔεશମʹؔΘ ΔAPI • هࣄੜ੒ɺػցֶशج൫

    • Ϋϩʔϥʔ / ίϯςϯπ෼ྨ / هࣄςϯϓϨੜ੒API
  14. εέδϡʔϧͱ੍໿৚݅ • ։ൃཁ݅ • iOSΫϥΠΞϯτ • هࣄɺάϧʔϐϯά৘ใɺϢʔβʔೝূଞϦιʔεશମʹؔΘ ΔAPI • هࣄੜ੒ɺػցֶशج൫

    • Ϋϩʔϥʔ / ίϯςϯπ෼ྨ / هࣄςϯϓϨੜ੒API • पล؀ڥ • Ωϟογϡػߏ / Τϥʔ, syslog؂ࢹ / ؅ཧπʔϧ • Pushج൫ / ϩά෼ੳج൫ / ABςετج൫
  15. εέδϡʔϧͱ੍໿৚݅ • ϙΠϯτ 1. νʔϜͷਓ਺͸ۃྗ཈͑Δɻ 2. ߏங͢Δج൫ʹରͯ͠։ൃظ͕ؒ୹͍ɻ 3. ෼ੳ͕Ͱ͖Δ؀ڥΛ࠷ॳ͔Βߏங͢Δɻ

  16. ࣮ࡍʹԿΛ΍͔ͬͨʁ

  17. ࣮ࡍͷεέδϡʔϧ ݄ • API • ϞοΫ੔උʢεϐʔυײʹ߹Θͣ1೔͘Β͍͔͠໾ʹཱͨ ͣʣ • هࣄɺάϧʔϐϯά৘ใAPIͷ࡞੒ +

    stg؀ڥߏங • ΫϥΠΞϯτ • UtilɺAPIClientɺLoggingɺϧʔςΟϯάपΓͷ੔උ • ػցֶशɺهࣄੜ੒ج൫ • Ϋϩʔϥʔ࡞੒ + stgʹॾʑͷΠϯϑϥߏங ԼճΓͷ੔උͱϓϩτλΠϓ࡞੒
  18. ࣮ࡍͷεέδϡʔϧ ݄ • API • ϢʔβʔೝূAPIͷ࡞੒ • ΫϥΠΞϯτͭͳ͗͜Έ • push,

    ABج൫, Ωϟογϡؔ࿈ͷௐ੔, ϩάج൫ͷ࡞੒ • ΫϥΠΞϯτ • هࣄҰཡɺৄࡉը໘σβΠϯ౰ͯࠐΈ • ೝূɺpushɺར༻ن໿ɾFAQ౳֤छઃఆɺڧ੍Ξοϓσʔτ౳ • ػցֶशɺهࣄੜ੒ج൫ • هࣄ෼ྨɺΫϩʔϥʔɺؔ࿈هࣄੜ੒౳ͷ࡞੒ɺstg؀ڥߏங ࣮૷٧Ί + σβΠϯ౰ͯࠐΈ
  19. ࣮ࡍͷεέδϡʔϧ ݄ • API • ϩάج൫ɺϛυϧ΢ΣΞ(Τϥʔ, syslog؂ࢹɺmemd౳)ͷ setup • ֤छهࣄࣗಈੜ੒ج൫ɺϩάج൫ͱͷͭͳ͗͜Έ

    • ຊ൪؀ڥߏங • ΫϥΠΞϯτ • σβΠϯϒϥογϡΞοϓɺจݴɾಈ࡞मਖ਼ɺਃ੥࡞ۀ • ػցֶशɺهࣄੜ੒ج൫ • ෼ྨɺείΞ෇͚ϩδοΫͷमਖ਼ɺଞAPIͷमਖ਼ɺ֤छຊ൪؀ ڥߏங ϛυϧ΢ΣΞ௥Ճɺ֤APIͭͳ͗͜Έɺຊ൪؀ڥߏங
  20. ॕʂϦϦʔεʂ

  21. ͜ͷظؒͷ։ൃνʔϜͷঢ়گ

  22. աࠅͳεέδϡʔϧ

  23. աࠅͳεέδϡʔϧ ࢒ۀଓ͖ͷ೔ʑ

  24. աࠅͳεέδϡʔϧ ࢒ۀଓ͖ͷ೔ʑ ߥΕΔਓؒؔ܎

  25. ʁ

  26. աࠅͳεέδϡʔϧ ࢒ۀଓ͖ͷ೔ʑ ߥΕΔਓؒؔ܎

  27. ΪϦΪϦ ͚ͩͲ Φϯεέ

  28. ΪϦΪϦ ͚ͩͲ Φϯεέ ఆ࣌Ͱࣦྱ

  29. ΪϦΪϦ ͚ͩͲ Φϯεέ ఆ࣌Ͱࣦྱ ࿕Β͔ͳ
 ৬৔

  30. ʁ

  31. • ΍Δ / ΍Βͳ͍ͷ੾Γ෼͚ • ج൫෦෼ͷ๛෋ͳϊ΢ϋ΢

  32. ୹͍։ൃظؒͰ ΍ͬͨ͜ͱɺ΍Βͳ͔ͬͨ͜ͱ

  33. ΍Δ/΍Βͳ͍ͷج४ • ΞϓϦͷίϯηϓτΛ࠷খݶͷൣғͰ
 ݕূ͢Δͷʹඞཁ͔

  34. ΍Δ/΍Βͳ͍ͷج४ • ΞϓϦͷίϯηϓτΛ࠷খݶͷൣғͰ
 ݕূ͢Δͷʹඞཁ͔ • ਺ඦສDAUʹεέʔϧ͢Δମ੍͕੔͏͔

  35. ΍Δ/΍Βͳ͍ͷج४ • ΞϓϦͷίϯηϓτΛ࠷খݶͷൣғͰ
 ݕূ͢Δͷʹඞཁ͔ • ਺ඦສDAUʹεέʔϧ͢Δମ੍͕੔͏͔ • ෼ੳɾӡ༻ɾվળͷϑϩʔΛ଺Γͳ͘౿ΉͨΊͷ
 ػೳ͕ἧ͍ͬͯΔ͔

  36. • هࣄ෼ྨɾੜ੒ج൫ • ෼ੳج൫ • ೝূɺ
 هࣄͷҰཡɺӾཡɺ
 γΣΞ౳ • ※৹ࠪʹ൐͍+α

    ΍Δ ΍Βͳ͍ • Android • ݫີͳϦϑΝΫλ • “ߴ଎Ͱແବͷͳ͍”ج൫ • ݕࡧ • ϑΥϩʔɾ͓ؾʹೖΓ • Ӿཡཤྺػೳ
  37. ඞཁͳͷ͸هࣄ͕ݟΒΕͯɺ
 ݕূɺӡ༻Մೳͳج൫Λ࡞Δ͜ͱ

  38. طଘϓϩμΫτ͔Β
 Ԡ༻Ͱ͖Δ෦෼Λ
 βΫβΫऔͬͯ͜Α͏

  39. Πϯϑϥ

  40. Πϯϑϥߏஙฤ • جຊతʹAWS OpsworksͰɺࣗࣾͷΧελϜChefϨγ ϐΛϕʔεʹ؀ڥߏங͢Δ • gunosy/gunosy_opsworks_cookbook

  41. Πϯϑϥߏஙฤ

  42. Πϯϑϥߏஙฤ • middleware • papertrail, td_agent, datadog, nginx, memcached •

    ଞɺmysql, jq, einhornʢGoͷAPIͷgraceful restart
 ༻్ʣͳͲΛΆͪΆͪೖΕΔ
  43. Πϯϑϥߏஙฤ • codenize-tools • miamʢIAM؅ཧʣ • piculetʢSGʣ • roadworkerʢRoute53ʣ •

    radiosondeʢCloudWatch Logsʣ • monosasiʢCloudWatch Eventsʣ
  44. git pushͨ͠ΒCircleCI্Ͱ֤ίϚϯυΛୟ͖ɺ Slackʹapply݁ՌͷJSONϖΠϩʔυΛ௨஌

  45. API

  46. ͱ͜ΖͰ

  47. Gunosy͸Goͷར༻ྺ͕௕͍ʂ

  48. ྺ࢙͕ੵΈॏͳΔͱ
 ੜ·ΕΔ΋ͷ

  49. ศརͰ झ͕͋ΔUtility܈

  50. gunosy/go

  51. APIฤ • gunosy/go • mysql, redis, memd, fluent, airbrakeͳͲ
 ϛυϧ΢ΣΞΫϥΠΞϯτ܈͕ೖͬͯΔ

    • jwt authenticator, fluent-loggerͳͲɺ
 ֤APIͰඞཁʹͳΔutilΛ·ͱΊͯΔ • OpsWorks࠷దͳઃఆಡΈࠐΈ
  52. APIฤ • gunosy/goͷϝϦοτ / σϝϦοτ • ϝϦοτ • OpsWorksͰ؀ڥߏஙͯ͠deploy͢Ε͹ɺ
 API͕͍͍͙ͩͨ͢ಈ͘Α͏ʹͳͬͯΔɻ

    • JWTೝূͳͲ͸΄΅࣮૷ʹࠩҟ͕ͳ͍ͷͰɺ
 ڞ௨ϥΠϒϥϦʹ͢ΔϝϦοτ͕େ͖͍ • ӡ༻ɺ؂ࢹपΓͷઃఆ͕OpsWorksͱͷ๊͖߹ΘͤͰ
 ͔ͳΓγϣʔτΧοτͰ͖Δ
  53. APIฤ • gunosy/goͷϝϦοτ / σϝϦοτ • σϝϦοτ • ϛυϧ΢ΣΞ܈ɺͻ͍ͯ͸
 AWS΁ͷґଘ౓͕ߴ͍ʂ

    • loggerͷܗࣜมߋͳͲ͕ॊೈʹͰ͖ͳ͍
  54. APIฤ • पลπʔϧ • SQLεΩʔϚ͸gooseʢGo੡migration toolʣ
 Ͱ؅ཧ • graceful restart༻ʹɺeinhornͰϓϩηε؅ཧ

  55. APIฤ • ϑϨʔϜϫʔΫ • guregu/kami

  56. APIฤ • guregu/kamiͷ໰୊఺ • ContextʢGoͷrequest-scopedͳ஋ΛೖΕΔശΈ ͍ͨͳ΍ͭʣΛ݁ߏཞ༻͍ͯ͠Δɻ • ΰουΦϒδΣΫτ • panicΛѲΓͭͿͯ͘͠ΕΔ

  57. APIฤ • ύοέʔδ؅ཧ • ࠷ۙݫີʹͳΓ࢝Ίͨ • աڈ͸ؾ߹͍ Ͱ࠷৽ʹ௥͍͔͍ͭͤͯͨ

  58. APIฤ • ֤໰୊఺ͷղফʹ޲͚ͯ • AWS OpsWorks΁ͷґଘ౓ͷߴ͞ • ϑϨʔϜϫʔΫΛguregu/kami -> net/httpʹҠߦ͠

    ͯɺϛυϧ΢ΣΞ܈΍Ϟσϧ૚ͷґଘΛղফɻ • DIύλʔϯͰॻ͘͜ͱͰɺͳΜͰ΋globalʹ٧Ίͯ ͍ͨॻ͖ํ͔Β୤٫
  59. APIฤ • ֤໰୊఺ͷղফʹ޲͚ͯ • όʔδϣϯ؅ཧ • ґଘύοέʔδ͸glideʹҠߦͯ͠ɺ
 ద੾ͳόʔδϣϯ؅ཧΛɻ

  60. APIฤ • σϓϩΠϑϩʔ • git push • S3ʹGoͷόΠφϦ΍੩తϑΝΠϧΛ٧ΊͨtarΛ
 Ξοϓϩʔυ •

    OpsWorksͷAPIΛୟ͍ͯS3͔ΒtarΛ͖࣋ͬͯͯ
 ల։ɺrestart͢Δ
  61. ref: https://speakerdeck.com/kyokomi/gunosy-apitimugokai-fa-huro

  62. APIฤ • CI • ॳظ։ൃͰϏϧυʹ࣌ؒΛऔΒΕΔͷ͸ѹ౗తແବ • => CircleCI2.0ରԠʂ

  63. APIฤ • ײಈͷཛྷ • goͷvendor, 
 npm install
 assets:precompileͳͲ
 Ωϟογϡ͢Ε͹


    ͍͍ͩͨ1~2minsͰऴΘΔ
  64. APIฤ • Ϋϩʔϥʔɺ෼ྨ • GunosyͰഓͬͨػցֶशج൫ϊ΢ϋ΢Λϑϧ׆༻ • ϑϨʔϜϫʔΫ: Django • δϣϒεέδϡʔϥ:

    Celery • σʔλߏ଄: GunosyFeed Ver.2 • ref: https://www.slideshare.net/mosa_siru/ss-65205273
  65. APIฤ • هࣄ෼ྨɺੜ੒ʹඞཁͳAPI܈ • Crawler • GunosyFeedʹଇͬͨAPIΛୟ͍ͯσʔλΛऔͬͯ͘Δ • HTMLαχλΠζɺϑΟʔϧυ৘ใͷύʔαʔػߏ •

    CategoryClassifier • هࣄͷΧςΰϦ෼ྨث • URL(υϝΠϯ)ʹΑΔϧʔϧϕʔεͷ෼ྨ + ػցֶशϞσϧʹΑΔ෼ྨ • NG൑ఆ • TabGenerator • ಛఆΧςΰϦ(λϒ)ͷهࣄҰཡΛੜ੒ • ElasticSearchʹ஝ੵͨ͠ӾཡɾΫϦοΫϩά͔ΒείΞϦϯάͯ͠อଘ • खಈϐοΫΞοϓ౳ͷӡ༻޲͚API
  66. APIฤ • Ωϟογϡ • ϩʔΧϧͱϦϞʔτͷ̎ஈ֊ • memcached • هࣄɺݕࡧ݁ՌɺϚελʔσʔλ౳ͷΈΩϟογϡ

  67. ref: https://www.slideshare.net/mosa_siru/go-memcached-microservices

  68. APIฤ • Pushج൫ • mercari/gaurunΛfork(gunosy/gaurun) • gaurunͷόΠφϦΛS3ʹஔ͍ͱ͍ͯɺ
 OpsWorksͰ௚઀deploy • OpsWorksͷCustom

    JSONͷઃఆΛ
 gaurunͷઃఆϑΝΠϧʹஔ͖׵͑ΔϨγϐ
  69. ʂʂ

  70. "1/T ($1 '$. AdminͰPush༧໿ Push API Gaurun API Bulk Publish

    ௨஌ड৴ Ұ࿈ͷ௨஌ϑϩʔ
  71. ΞʔΩςΫνϟ

  72. ΞʔΩςΫνϟฤ • ϚΠΫϩαʔϏεʹ͗͢͠ͳ͍

  73. ref: https://www.slideshare.net/mosa_siru/ss-64839846

  74. ΞʔΩςΫνϟฤ • ͳͥϚΠΫϩαʔϏεʹ͠ͳ͍ʁ • APIؒͷΦʔόʔϔου

  75. ΞʔΩςΫνϟฤ • ͳͥϚΠΫϩαʔϏεʹ͠ͳ͍ʁ • APIؒͷΦʔόʔϔου • SGઃఆͳͲͷ޻ఔʹΑΔ։ൃ଎౓ͷ௿Լ

  76. ΞʔΩςΫνϟฤ • ͳͥϚΠΫϩαʔϏεʹ͠ͳ͍ʁ • APIؒͷΦʔόʔϔου • SGઃఆͳͲͷ޻ఔʹΑΔ։ൃ଎౓ͷ௿Լ • σϓϩΠ͕͠ΜͲ͍

  77. ΞʔΩςΫνϟฤ • ͳͥϚΠΫϩαʔϏεʹ͠ͳ͍ʁ • APIؒͷΦʔόʔϔου • SGઃఆͳͲͷ޻ఔʹΑΔ։ൃ଎౓ͷ௿Լ • σϓϩΠ͕͠ΜͲ͍ •

    ؅ཧը໘ͷͨΊʹര஀͢ΔCRUD API܈
  78. ΞʔΩςΫνϟฤ • LUCRAͰ͸ϚΠΫϩαʔϏεʹ͗͢͠ͳ͍ • هࣄऩूपΓ • ෼ྨɺΫϩʔϥʔɺهࣄੜ੒͸ݸผʹɻ • Client޲͚ͷAPI •

    هࣄɺάϧʔϐϯά৘ใɺϢʔβʔ৘ใ͸ϝΠϯAPI͕શ෦ฦ͢ • PushɺABςετ؅ཧAPI͚ͩ͸ݸผʹɻ
  79. iOS

  80. iOSΫϥΠΞϯτฤ • MVVM + Reactive • Extension, APIClient, LoggerपΓͷUtil͸࠶ར༻Մೳ

  81. iOSΫϥΠΞϯτฤ • ϩάૹ৴पΓͷίʔυ͕ଟ͍ -> σόοάେม • LogDebugger͕͋ΔͷͰϩά͕ૹΒΕ͔ͨΛͦͷ৔ ͰσόοάͰ͖Δ • aikizoku/SKLogDebugger-iOS

  82. None
  83. iOSΫϥΠΞϯτฤ • ίϯύΠϧ࣌ؒͷ࡟ݮ • Ϗϧυ଴ͪ͸ແҙࣝͷ͏ͪʹ૿͑΍͍͢ແବͳ࣌ؒ • -Xfrontend -debug-time-function-bodies
 ্هϑϥάͰɺϝιου୯ҐͷίϯύΠϧ࣌ؒΛܭଌ •

    giginet/xcprofilerͰίϯύΠϧ͕஗͍ॱʹ֬ೝ
  84. ms୯ҐͰϝιου͝ͱͷίϯύΠϧ࣌ؒܦաͷ ্ҐΛදࣔͯ͘͠ΕΔɻ

  85. iOSΫϥΠΞϯτฤ • ίϯύΠϧ࣌ؒͷ࡟ݮ • 50msҎ্ͷϝιου͕૿͑ͨΒվળ • giginet/danger-xcprofilerͰΞϥʔτ௨஌΋Մೳ

  86. iOSΫϥΠΞϯτฤ • ىಈ࣌ؒͷ࡟ݮ • DYLD_PRINT_STATISTICSϑϥάͷઃఆ • ґଘϥΠϒϥϦͷ཈੍ • ܕਪ࿦ͷ࡟ݮ •

    SDKͷηοτΞοϓͷฒྻԽ
  87. ։ൃ؀ڥ·ͱΊ • Infrastructure as Code͸పఈ & apply݁ՌͷՄࢹԽ • एׯͷґଘɺటष͍࣮૷͸ڐ༰ͭͭ͠ɺ
 AWS࠷దͳ؀ڥʹ৐͔ͬΔ͜ͱͰ଎౓Λग़ͯ͠Δ

    • ࠷ॳ͔ΒΞʔΩςΫνϟΛϚΠΫϩʹ͗͢͠ͳ͍ • ίϯύΠϧɺCIͳͲͷ܁Γฦ͠࡞ۀ͸ແବͳ࣌ؒΛ
 ա͝͞ͳ͍Α͏ʹɺࣗಈԽ & ߴ଎Խ
  88. খ͍͞νʔϜͰ΋PDCAΛ
 ճͤΔ෼ੳج൫

  89. ࣮ࡍͲΜͳϩάΛ
 ૹ͍ͬͯΔ͔ʁ

  90. ͜ͷը໘Ͱ͸ͲΜͳϩά͕
 ൃੜ͠͏Δ͔ʁ

  91. • launchΠϕϯτϩά • fore/backgroundϩά • push heartbeatϩά • ೝূ, initAPI

    callϩά • ॳظදࣔ࣌هࣄimpϩά • ΧςΰϦεϫΠϓભҠϩά • ΧςΰϦΫϦοΫભҠϩά • εΫϩʔϧ࣌impϩά • هࣄΫϦοΫϩά • pull-refreshϩά • refresh࣌impϩά • push௨஌։෧ϩά
  92. • launchΠϕϯτϩά • fore/backgroundϩά • push heartbeatϩά • ೝূ, initAPI

    callϩά • ॳظදࣔ࣌هࣄimpϩά • ΧςΰϦεϫΠϓભҠϩά • ΧςΰϦΫϦοΫભҠϩά • εΫϩʔϧ࣌impϩά • هࣄΫϦοΫϩά • pull-refreshϩά • refresh࣌impϩά • push௨஌։෧ϩά ͍ͬͺ͍
  93. Ͳ͏͍͏ϑϩʔͰ
 ૹ͍ͬͯΔ͔ʁ

  94. ෼ੳσʔλϑϩʔ

  95. ෼ੳσʔλϑϩʔ ొ࿥ɾӾཡɾ
 ΫϦοΫϩάͷऩू

  96. ෼ੳσʔλϑϩʔ ొ࿥ɾӾཡɾ
 ΫϦοΫϩάͷऩू td_agentʹΑΔ
 ϩάͷू໿

  97. ෼ੳσʔλϑϩʔ ొ࿥ɾӾཡɾ
 ΫϦοΫϩάͷऩू td_agentʹΑΔ
 ϩάͷू໿ ϩάछผ͝ͱʹ
 όοΫΞοϓ & 
 ྲྀ͠ࠐΈ

  98. ෼ੳσʔλϑϩʔ ొ࿥ɾӾཡɾ
 ΫϦοΫϩάͷऩू td_agentʹΑΔ
 ϩάͷू໿ ϩάछผ͝ͱʹ
 όοΫΞοϓ & 
 ྲྀ͠ࠐΈ

    Redash্Ͱ෼ੳ
  99. • ΫϥΠΞϯτ͔Βͷϩά͸cookpad/puree-ios
 Λ௨ͯ͡௚઀redshiftʹૹΔ • td_agent͕ೖͬͨlogू໿αʔόʔΛ஥հͯ͠ɺ
 Ճ޻ࡁΈσʔλΛRedashʹྲྀ͢ • όοΫΞοϓͷͨΊʹkinesisΛڬΉ ෼ੳσʔλϑϩʔ

  100. ࣮ࡍͷLogఆٛ (iOS)

  101. ࣮ࡍͷLogఆٛ (iOS)

  102. Ͳ͏΍ͬͯσʔλΛݟΔ͔ʁ

  103. ෼ੳ؀ڥ • RedashΛར༻ • ओཁKPI͸ఆظతʹSlackʹ௨஌ • ӡ༻ɺ։ൃ໰ΘͣνʔϜશһ͕෼ੳ༻SQLΛॻ͘

  104. ͲΜͳ਺஋Λ௥͍ͬͯΔ͔ʁ

  105. ओཁKPI • DAU • 14೔ޙܧଓ཰ • 7೔ޙܧଓ཰ • 1೔ޙܧଓ཰ •

    ௚ۙ1࣌ؒهࣄCTR • ొ࿥ܦ࿏ผ֫ಘ਺ • هࣄΫϦοΫճ਺/DAU • εϫΠϓճ਺/DAU • ͓ؾʹೖΓొ࿥/DAU • શମ / ొ࿥ܦ࿏ผίϗʔτ • Pushڐ୚ঢ়گ • ΧςΰϦผهࣄӾཡ਺
  106. ෼ੳ݁Ռͷར༻ • ʮ͓͠ΌΕͳΞϓϦʯͷϒϥϯυΠϝʔδΛ௥ٻͨ͠ ͍͔Βͱ͍ͬͯɺ
 ࠜڌͳ͘ʮϑΝογϣϯʯ΍ʮίεϝʯΛਪ͢
 ͱ͍͏ҙࢥܾఆ͸ઈରʹ͠ͳ͍ɻ • ΧςΰϦผͷσʔλΛݟͯɺߴ͍CTR΍RR͕
 ༧૝͞ΕΔPush΍ػೳ௥Ճ͔͠ߦΘͳ͍ɻ

  107. ·ͱΊ • iOSΫϥΠΞϯτ͔Β੔ܗͭͭ͠௚઀ϩάΛૹ৴ • ը໘୯ҐɺΞΫγϣϯ୯ҐͰऔΕΔ͚ͩͷϩάΛऔΔ • ෼ੳπʔϧ͸RedashΛ༻͍͓ͯΓɺνʔϜશମͰ
 SQLͷϝϯςφϯεΛߦ͏ • σʔλͰ֬৴͕࣋ͯͳ͍ࢪࡦ͸ۃྗڐ͞ͳ͍

  108. ݶΒΕͨϦιʔεԼͰͷ
 ߴ଎ͳ։ൃख๏ খ͍͞νʔϜͰ΋PDCAΛ
 ճͤΔ෼ੳج൫

  109. ݶΒΕͨϦιʔεԼͰͷ
 ߴ଎ͳ։ൃख๏

  110. ։ൃख๏·ͱΊ • Infrastructure as Code͸పఈ & apply݁ՌͷՄࢹԽ • एׯͷґଘɺటष͍࣮૷͸ڐ༰ͭͭ͠ɺ
 AWS࠷దͳ؀ڥʹ৐͔ͬΔ͜ͱͰ଎౓Λग़ͯ͠Δ

    • ࠷ॳ͔ΒΞʔΩςΫνϟΛϚΠΫϩʹ͗͢͠ͳ͍ • ίϯύΠϧɺCIͳͲͷ܁Γฦ͠࡞ۀ͸ແବͳ࣌ؒΛ
 ա͝͞ͳ͍Α͏ʹɺࣗಈԽ & ߴ଎Խ
  111. খ͍͞νʔϜͰ΋PDCAΛ
 ճͤΔ෼ੳج൫

  112. ෼ੳج൫·ͱΊ • iOSΫϥΠΞϯτ͔Β੔ܗͭͭ͠௚઀ϩάΛૹ৴ • ը໘୯ҐɺΞΫγϣϯ୯ҐͰऔΕΔ͚ͩͷϩάΛऔΔ • ෼ੳπʔϧ͸RedashΛ༻͍͓ͯΓɺνʔϜશମͰ
 SQLͷϝϯςφϯεΛߦ͏ • σʔλͰ֬৴͕࣋ͯͳ͍ࢪࡦ͸ۃྗڐ͞ͳ͍

  113. ͝੩ௌ༗೉͏͍͟͝·ͨ͠ʂ