The presentation slides at Forkwell Meetup #5
GunosyͷຯͰߴͳ৽نࣄۀ։ൃɾվળͷ࣮ࡍ@__timakin__ / Forkwell Meetup#5
View Slide
ࣗݾհ• Seiji Takahashi• Github: timakin / Twitter: @__timakin__• גࣜձࣾGunosy ৽نࣄۀ։ൃࣨ• Go / Swift
ΞδΣϯμ• Gunosy৽نࣄۀ։ൃࣨͱʁ• ੜ࢈ੑΛ্͛ΔͨΊͷऔΓΈ
Gunosy৽نࣄۀ։ൃࣨͱʁ
Gunosyͷ5ʙ10ޙͷΛ࡞Δ͘ɺVRARɺԻUIͳͲࠓޙීٴ͢ΔՄೳੑͷ͋Δ ৽͍͠σόΠεٕज़Λݚڀ͠ɺ ৽نαʔϏεͷ্ཱͪ͛ͳͲΛߦ͏෦ॺ
Δ͜ͱ• Ϧαʔν• ւ֎ͷઌਐࣄྫͷ·ͱΊ• SDKͷެࣜDocsGithub repoͷίʔυΛړͬͯ࠷৽ٕज़ͷνϡʔτϦɾԠ༻ྫΛ୳Δ• SlackʹRSS௨ɺϨϙʔτڞ༗• ։ൃ• ͓ன͍ͭͰʹνϡʔτϦϋοΧιϯ• ্ཱ͕ͪΓظۃྗখنνʔϜͰ
࣮ࡍͷ༷ࢠ
ੜ࢈ੑΛ্͛ΔͨΊͷऔΓΈ
ͦͦੜ࢈ੑͱʁ
ੜ࢈ੑ = Output / Input
ࢿޮੑͰ͋ͬͯ ੜ࢈(Output)૯ྔͰͳ͍
Output: ࿑ಇʹΑΔՌ• ϢʔβʔͷՃՁ • اۀͷܦࡁతՃՁʢརӹʣ • ଈ࠲ʹརӹʹ݁͠ͳ͍͕ ओཁKPIʹߩݙ͢ΔऔΓΈ
Input: ࢿݯͷೖྔ• ਓతࢿݯͷೖྔ• ্هؚΉࢿݯͷࡒݯͷೖྔ• ࡞ۀ࣌ؒ
ੜ࢈ੑΛ্͛Δํ๏OutputΛ૿͢InputΛݮΒ͢
ੜ࢈ੑΛ্͛ΔͨΊͷऔΓΈ• νʔϜنͷ੍• ։ൃظؒͱ༷ͷ੍• ֤ΤϯδχΞͷ୲ͷ֦ு• ։ൃϑϩʔͷࣗಈԽ• ΠϯηϓγϣϯσοΩ• εϓϦϯτ• ੵۃతͳKPIڞ༗
νʔϜنͷ੍• Ϧαʔν• جຊ։ൃνʔϜ• ࣄۀ෦શମͰɺଞͷνʔϜ͔Βڵຯ͋ΔਓSlackͳͲͰίϝϯτ• ։ൃ• ։ൃɺ༷ࡦఆશମΛΤϯδχΞ2, 3໊Ͱߦ͏
νʔϜ͕গͳ͍ͱɺ ࡞ۀ / ਓ͕ΒΜͰ ਏ͍ݱʹͳΔͷͰʁ
ͦ͏Ͱͳ͍Ͱ͢Αʂ
খنνʔϜͷϝϦσϝ• ҙࢥܾఆ͕୯७ʹ্͕Δ• Ϗδϣϯͷޡ͕ࠩগͳͯ͘͢Ή• ਐḿ֬ೝʹཁ͢Δ͕࣌ؒগͳ͍• গͰΓΔ੍ => ҙࣝతʹແବͳ։ൃΛ͠ͳ͘ͳΔϝϦοτ σϝϦοτ• ୯७ʹ࣮Մೳͳػೳͷ͕ݮΔ• ٕज़ελοΫ͕ภΔͱΧόʔࠔ• ༷ݮͷྗΛ੯͠Ήͱࣦഊ͍͢͠
ࠓඞཁͳͷΛݟۃΊͯ༰ࣻແ͘ྔΛݮΒ͕͢ॏཁ
։ൃظؒͱ༷ͷ੍ෆཁͳػೳΛॳظ༷͔ΒΔج४1. ΞϓϦͷίϯηϓτΛ࠷খݶͷൣғͰݕূ͢Δͷʹඞཁ͔2. ඦສDAUʹεέʔϧ͢Δମ੍͕͏͔3. ੳɾӡ༻ɾվળͷϑϩʔΛΓͳ͘౿ΉͨΊͷػೳ͕ἧ͍ͬͯΔ͔
༷ΛΔͱྑ͍͜ͱ• ίϯϙʔωϯτؒͷ࣭͕ۉҰʹͳͬͯɺϦϦʔε࣌Ͱͷૈ͕ݮΔ• ͕໌ྎʹͳΔͷͰϞνϕͷԼ͕গͳ͘ͳΔ• ୯७ʹૣ͘ؼΕΔ
֤ΤϯδχΞͷ୲ͷ֦ு৽نࣄۀ։ൃࣨͷجຊελϯε෯͍։ൃՄೳൣғ ࣄۀ࡞ΓʹϑΥʔΧε
෯͍։ൃՄೳൣғ❌ ઙ͘͘ઈରʹTܕਓࡐɺΠܕਓࡐͰߏ͢Δɻex) iOS͕ಘҙͰɺͦͷͰଞͷਓͷഒͷ ɹ ੜ࢈ੑΛग़ͤΔ͕ɺ͍͟ͱͳͬͨΒ ɹ αʔόʔαΠυରԠՄೳͰڵຯ͋Δɻ
খ͍͞νʔϜͰͷ࣮ελϯε۪ʹҰ͔Β࣮ͯͨ͠Βؒʹ߹Θͳ͍=> ࣗಈԽͰ͖Δ࡞ۀపఈͯ͠ޮԽ
۩ମతͳվળϙΠϯτ• AWS OpsworksʹΑΔηοτΞοϓ• codenize-toolsʹΑΔInfrastructure as Code• DigdagʹΑΔETL Workflow• CircleCI 2.0ʹΑΔtest, vet, deploy• Pushج൫ͳͲOSSͷAPIΛར༻
ΠϯηϓγϣϯσοΩͱʁϓϩδΣΫτͷશମ૾ (తɺഎܠɺ༏ઌॱҐɺํੑ)Λ తʹ͑ΔͨΊͷυΩϡϝϯτ֎͚ͷҙٛ: తʹϓϩμΫτΛઆ໌Ͱ͖Δ͚ͷҙٛ: Ϗδϣϯͷ౷Ұ
ཧ͢Δ߲• ϓϩμΫτͷҙٛ(ͳͥզʑ͜͜ʹ͍Δͷ͔)• ΤϨϕʔλʔϐον༻ͷจݴ• Δ/Βͳ͍͜ͱϦετ• νʔϜߏ• ඪKPIͱୡظؒ• είʔϓ, ༧ࢉ, ࣌ؒ, ࣭ͳͲͷΣΠτ• ࣮ࡍʹඞཁͳࢿݯ
KPTKeep: ࠓޙଓ͚͍͖ͯ͘ྑ͔ͬͨ͜ͱProblem: վળ͖͢Try: վળࢪࡦ৽ࢪࡦͱͯ͠ࢼ͢͜ͱΛఆظత(݄Ұఔ)ʹ֬ೝ
εϓϦϯτ͝ͱͷҙࣝ߹ΘͤࠓͷSprintͰूத͖͢͜ͱɹ࠷ॏཁKPIͷݟ͠ɺඪͷઃఆεέδϡʔϧɹϦϦʔε༧ఆͱଧͪखࠔΓ͝ͱɹ͙͢ରॲ͢Δ͔ஔ͍ͱ͍ͯΔ͖͜ͱ
ڞ༗ͯ͠·͔͢ʁڞ༗ํ๏• Slack• ຖͷேձ• Sprint͝ͱͷৼΓฦΓͳͲͳͲ
ͳͥڞ༗͖͔͢ʁࣈਆΑΓਖ਼͍͠ϏδϣϯνʔϜΛޑ͢Δͷʹྑ͍͕ɺ ࣈͱ͍͏ࣄ࣮͔ΒΛഎ͚ͯ ݴ͍༁ʹ͍ͬͯͳ͍͔ʁ ࣮ࡍͷϢʔβʔͷಈ͖Λݟͯɺ ҙຯͷ͋ΔվળํΛݟۃΊΔ
ͳͥڞ༗͖͔͢ʁKPIʹޮ͔ͳ͍ࢪࡦΛଧ͍ͬͯͳ͍͔ʁ ࣮ࡍͷϢʔβʔͷಈ͖Λݟͯɺ ҙຯͷ͋ΔվળํΛݟۃΊΔ
ͳͥৗʹڞ༗͖͔͢ʁཧͱݱ࣮༰қʹͣΕΔͷͰɺ͍ͭͷ·ʹ͔ζϨ͕ੜ͡ͳ͍Α͏ʹৗʹࣈΛݟͯɺ ɾKPIͱͷࠩ ɾ૿ݮ, पظ ɾظతʹҙຯ͕͋ΔࢪࡦΛଧ͍ͯͯΔ͔ ͷೝࣝ߹ΘͤΛ͢Δɻ
ͲΜͳΛڞ༗͖͔͢ʁ• ظɾظܧଓ• ίϯόʔδϣϯ• ܧଓʹޮ͖͍͢ػೳͷར༻• PushڐՄ, ։෧• ABࢪࡦͷޮՌܭଌ݁Ռ• Ϣʔβʔ֫ಘܦ࿏ผ֫ಘɾܧଓ• ࠂޮՌ(CTR, CPI, CPD, etc…)
·ͱΊ• ੜ࢈ੑ = Output / Input• νʔϜߏɺKPIڞ༗ɺ༷ͷμΠΤοτɺ Ϗδϣϯ߹ΘͤɺࣗಈԽͳͲͳͲɺ ΕΔ͜ͱΛຯʹɺॗʑͱɻ• શͯ৽نνʔϜͰΕͯΔ͜ͱɻ Ϧιʔεͷ͋ΔେنνʔϜͳΒঘߋΔ͖ɻ