Slide 1

Slide 1 text

ҰٳͰͷ։ൃʹ͓͚Δ վળͷऔ૊Έ 2017.4.28 גࣜձࣾҰٳ ాத ݈հ( @kentana20 )

Slide 2

Slide 2 text

About me • ాத ݈հ • @kentana20 • 2006೥5݄͔ΒҰٳ • ॓ധαʔϏε։ൃ(9೥)
 →γεςϜຊ෦(2೥)


Slide 3

Slide 3 text

Agenda • Ұٳͷ͝঺հͱαʔϏεɺ։ൃ૊৫ʹ͍ͭͯ • αʔϏε։ൃʹޮ͘վળͷऔ૊Έ • ·ͱΊ

Slide 4

Slide 4 text

Ұٳͷ͝঺հͱ αʔϏεɺ։ൃ૊৫ʹ͍ͭͯ

Slide 5

Slide 5 text

About Ұٳ.com

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Ұٳ.com • ओྗαʔϏε • ্࣭ͳϗςϧɾཱྀؗͷ༧໿αʔϏε • 2000೥5݄Φʔϓϯͷ16ࡀ

Slide 8

Slide 8 text

Ұٳ.com KPI (2015.03) • ձһ਺: 400ສ+ • ϗςϧ/ཱྀؗ਺: 2,600ࢪઃ+ • ೥ؒൢചࣨ਺: 189ສࣨ+

Slide 9

Slide 9 text

Ұٳ.comϨετϥϯ • ओྗαʔϏεͦͷ2 • ্࣭ͳϨετϥϯͷ༧໿αʔϏε • 2006೥6݄Φʔϓϯ(11೥໨) • ݱࡏ࠷΋஫ྗ͍ͯ͠Δࣄۀ

Slide 10

Slide 10 text

͓ͱͳΓ͞·

Slide 11

Slide 11 text

։ൃ૊৫ʹ͍ͭͯ

Slide 12

Slide 12 text

ձࣾͷ૊৫ମ੍ ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦

Slide 13

Slide 13 text

֤ࣄۀ෦ͷΤϯδχΞਓ਺ ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ 17໊ 15໊ 3໊ 14໊

Slide 14

Slide 14 text

αʔϏε։ൃͷମ੍ ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ &OHJOFFS Designer Sales Marketing αʔϏε։ൃΛ୲౰͢Δ ΤϯδχΞ͸֤ࣄۀ෦ʹॴଐ

Slide 15

Slide 15 text

αʔϏε։ൃͷମ੍ ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ &OHJOFFS Designer Sales Marketing αʔϏεڞ௨ͷ։ൃج൫ʢೝূͳͲʣɺ Πϯϑϥɺσʔλ෼ੳج൫ɺ৘γε͸ γεςϜຊ෦͕୲౰ &OHJOFFS

Slide 16

Slide 16 text

αʔϏε։ൃͷମ੍ ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ &OHJOFFS Designer Sales Marketing &OHJOFFS

Slide 17

Slide 17 text

Ϣχοτ1 UI/UX Ϣχοτ2 Partner Alliance Ϣχοτ3 Application Platform αʔϏε։ൃΤϯδχΞ͸ ϛογϣϯΛ࣋ͬͨϢχοτʹॴଐ

Slide 18

Slide 18 text

DevͱOps ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ %FW %FW %FW 0QT %FW

Slide 19

Slide 19 text

DevͱOps ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ %FW %FW %FW 0QT %FW • ݖݶ෼ঠ͸͋Δ΋ͷͷɺ͔ͳΓͷݖݶΛ
 ։ൃΤϯδχΞʹ෇༩ • ຊ൪αʔόɺDB΁ͷΞΫηε • ೔ʑͷϦϦʔεӡ༻ etc.. • ຊ౰ʹॏཁͳ෦෼ͷΈΛอޢ • ݸਓ৘ใɺܾࡁɾਫ਼ࢉʹؔΘΔػೳͳͲ

Slide 20

Slide 20 text

೔ʑͷϦϦʔεӡ༻ • ݪଇͱͯ͠Pull RequestʹΑΔίʔυϨϏϡʔΛ௨ͬ ͨมߋͷΈΛϦϦʔε • σϓϩΠ͸։ൃऀ(Dev)͕ߦ͏ • σϓϩΠස౓ • ॓ധ: 1ճ/೔ • Ϩετϥϯ: 10+ճ/೔

Slide 21

Slide 21 text

ࠓ೔ͷ͓࿩ • ͲͷΑ͏ͳมભ/มԽΛܦͯ͜ͷΑ͏ͳ։ൃମ੍ʹ ͳ͔ͬͨ • Ұٳʹ͓͚ΔαʔϏε։ൃʹޮ͘վળͷࣄྫ • ࠓޙ༧ఆ͍ͯ͠Δऔ૊Έ

Slide 22

Slide 22 text

։ൃ૊৫ͷมભͱ αʔϏε։ൃʹޮ͘վળͷࣄྫ

Slide 23

Slide 23 text

2014೥౓ (2014/4~2015/3)

Slide 24

Slide 24 text

౰࣌ͷঢ়گ • ձࣾن໛ • ձࣾن໛͸໿120໊ɺ͏ͪ։ൃϝϯόʔ͸40໊ऑ • ։ൃ૊৫ • ॓ധ: 20໊ऑ / Ϩετϥϯ: 12~3໊ / Πϯϑϥ: 5໊ • ֤෦໳Ͱύʔτφʔ(֎஫)Λ࠾༻͠ɺϓϩύʔ1໊ʹରͯ͠ৗறͷ ύʔτφʔ2~3໊ͱ͍͏ମ੍͕ओͩͬͨ

Slide 25

Slide 25 text

౰๊͍࣌͑ͯͨ՝୊ • Ϣʔβ΁Ձ஋Λఏڙ͢Δεϐʔυ͕௿Լ͍ͯͨ͠ • ඼࣭௿Լ / ։ൃޮ཰௿Լ / ӡ༻ෛՙ / ݖݶ෼ঠ • αʔϏε։ൃ/ӡ༻ʹ௥ΘΕΔ೔ʑͰɺࣗಈԽΛ͸͡Ίͱͨ͠ӡ༻վળ΍
 ৽͍ٕ͠ज़ɾαʔϏεͷಋೖ͕௥͍͔ͭͳ͍ • ӡ༻ෛՙ͕ঃʑʹ্͕Γɺஈʑͱ։ൃ଎౓͕௿Լ • ϓϩύʔΑΓ΋ύʔτφʔʹ։ൃφϨοδ͕ཷ·Γɺٕज़͕ۭಎԽ • DevͱOpsͷݖݶ෼ঠ͕ਐΈʮDev͕Ͱ͖ͳ͍͜ͱʯ͕૿Ճ

Slide 26

Slide 26 text

https://speakerdeck.com/kensuketanaka/modannaxian-chang-nisurutamenishi-jian-sitakoto

Slide 27

Slide 27 text

վળϓϩδΣΫτΛελʔτ • @naoya_ito ʹٕज़ސ໰ͱͯ͠֎෦͔ΒͷΞυόΠεΛґཔ • ໨త: ʮϢʔβʹՁ஋Λಧ͚ΔεϐʔυΛ࠷େԽ͢Δʯ • ՝୊੔ཧΛߦ͍ɺࣗ਎ͷݱঢ়ͱ໨ࢦ͢ܗɺվળʹ޲͚ͨΞΫγϣϯΛ ఆٛͯ͠શΤϯδχΞΛר͖ࠐΜͰϓϩδΣΫτΛ։࢝

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

վળͷऔ૊Έ(2014೥౓) • ৘ใڞ༗ج൫ͷ੔උ • Subversion → GitHub Enterprise΁ͷҠߦ • JenkinsΛ࢖ͬͨCI/CDಋೖ • Selenium WebDriverΛ࢖ͬͨE2Eςετ • σβΠφʔΛר͖ࠐΜͩGit Flowͷߏங

Slide 30

Slide 30 text

վળͷऔ૊Έ(2014೥౓) • ৘ใڞ༗ج൫ͷ੔උ • Subversion → GitHub Enterprise΁ͷҠߦ • JenkinsΛ࢖ͬͨCI/CDಋೖ • Selenium WebDriverΛ࢖ͬͨE2Eςετ • σβΠφʔΛר͖ࠐΜͩGit Flowͷߏங

Slide 31

Slide 31 text

৘ใڞ༗ج൫(Before) • πʔϧ • ϝʔϧɺ಺ઢɺRedmine • ࿮૊Έ • γεςϜि࣍ϛʔςΟϯά

Slide 32

Slide 32 text

• πʔϧ • ϝʔϧɺ಺ઢɺRedmine • ࿮૊Έ • γεςϜि࣍ϛʔςΟϯά • ݸʑͷҙࣝʹґଘͨ͠৘ใڞ༗ • ॓ധɺϨετϥϯɺΠϯϑϥͱίϯςΩετ͕ ҟͳΔϝϯόʔͰͷத਎ͷബ͍ϛʔςΟϯά • ਐߦதͷҊ݅΍ϓϩδΣΫτͷ;Γ͔͑ΓͳͲ ΛΧδϡΞϧʹڞ༗͢Δ৔͕ͳ͍ Bad

Slide 33

Slide 33 text

৘ใڞ༗ج൫(After) • πʔϧ • Hipchat (ݱࡏ͸Slack) / Qiita Team • ࿮૊Έ • ேձ / Χϯόϯ / ;Γ͔͑Γ(KPT) • ΨΠυϥΠϯ • ֤πʔϧ΍࿮૊Έʹରͯ͠ΨΠυϥΠϯΛ੔උ

Slide 34

Slide 34 text

৘ใڞ༗ج൫(After) • πʔϧ • Hipchat (ݱࡏ͸Slack) / Qiita Team • ࿮૊Έ • ேձ / Χϯόϯ / ;Γ͔͑Γ(KPT) • ΨΠυϥΠϯ • ֤πʔϧ΍࿮૊Έʹରͯ͠ΨΠυϥΠϯΛ੔උ • ✔ ΨΠυϥΠϯʹԊͬͨ࢓༷ͷڞ༗ • ✔ ίϯςΩετ͕ἧͬͨνʔϜຖʹேձΛ࣮ࢪ ͠ɺ಺༰ਂٞ͘࿦Ͱ͖ΔΑ͏ʹ • ✔ Qiita TeamʹΑͬͯҊ݅࢓༷ͷڞ༗͕Χδϡ ΞϧʹՄೳʹ Clear!

Slide 35

Slide 35 text

վળͷऔ૊Έ(2014೥౓) • ৘ใڞ༗ج൫ͷ੔උ • Subversion → GitHub Enterprise΁ͷҠߦ • JenkinsΛ࢖ͬͨCI/CDಋೖ • Selenium WebDriverΛ࢖ͬͨE2Eςετ • σβΠφʔΛר͖ࠐΜͩGit Flowͷߏங

Slide 36

Slide 36 text

σϓϩΠϑϩʔ(Before) ϩʔΧϧ ؀ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOH؀ڥ %FQMPZ ຊ൪؀ڥ %FQMPZ ϩʔΧϧ ؀ڥ 5FTU

Slide 37

Slide 37 text

σϓϩΠϑϩʔ(Before) ϩʔΧϧ ؀ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOH؀ڥ %FQMPZ ຊ൪؀ڥ %FQMPZ ϩʔΧϧ ؀ڥ 5FTU ΄΅खಈ ΤϯδχΞ͕౰൪(िସΓ)Ͱ࣮ࢪ खಈ ΤϯδχΞ͕෼୲Ͱ࣮ࢪ

Slide 38

Slide 38 text

σϓϩΠϑϩʔ(Before) ϩʔΧϧ ؀ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOH؀ڥ %FQMPZ ຊ൪؀ڥ %FQMPZ ϩʔΧϧ ؀ڥ 5FTU ΄΅खಈ ΤϯδχΞ͕౰൪(िସΓ)Ͱ࣮ࢪ खಈ ΤϯδχΞ͕෼୲Ͱ࣮ࢪ • ద੾ͳλΠϛϯάͰͷϨϏϡʔ͕ࠔ೉ • σϓϩΠ࡞ۀɺखಈςετͷෛՙେ • ӡ༻ෛՙ͕ߴ͍͜ͱΛཧ༝ʹϦϦʔεස౓͸
 ि2ճ͔Β1ճ΁ Bad

Slide 39

Slide 39 text

σϓϩΠϑϩʔͷ੔උ • GitHubɺJenkinsɺSeleniumΛ࢖ͬͯσϓϩΠϑϩʔΛߏங • GitHubΛಋೖͯ͠ϓϧϦΫΤετϕʔεͷ։ൃ • masterϒϥϯνʹmergeͨ͠ΒࣗಈతʹJenkinsδϣϒ͕Staging ؀ڥ΁σϓϩΠ • Staging΁ͷσϓϩΠ౎౓SeleniumʹΑΔE2EςετΛ࣮ࢪ

Slide 40

Slide 40 text

σϓϩΠϑϩʔ(After) ϓϧϦΫmerge (खಈ) 4UBHJOH ϦϦʔε༻ ϓϧϦΫ࡞੒ ίʔϧ ϦϦʔε༻ ϓϧϦΫ࡞੒ ϓϧϦΫ63- 8FC)PPL %FQMPZ σϓϩΠ୲౰ Production %FQMPZ खಈ

Slide 41

Slide 41 text

ϒϥϯνઓུ NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF NFSHF 1VMM3FRVFTU Production

Slide 42

Slide 42 text

σϓϩΠϑϩʔ(Before) ϩʔΧϧ ؀ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOH؀ڥ %FQMPZ ຊ൪؀ڥ %FQMPZ ϩʔΧϧ ؀ڥ 5FTU ΄΅खಈ ΤϯδχΞ͕౰൪(िସΓ)Ͱ࣮ࢪ खಈ ΤϯδχΞ͕෼୲Ͱ࣮ࢪ • ✔ Pull Requestϕʔεͷ։ൃͰॊೈʹϨϏϡʔ Մೳͳ։ൃϑϩʔ • ✔ ఆܕͷσϓϩΠɺςετ͸ࣗಈԽ • ✔ ϦϦʔεස౓͸ि1ճ → ि2ճʹUp Clear!

Slide 43

Slide 43 text

2015೥౓ (2015/4~2016/3)

Slide 44

Slide 44 text

౰࣌ͷঢ়گ(2015೥) • ։ൃ૊৫ͷมԽ • ͢΂ͯͷϢχοτͰαʔϏε։ൃΛ͢Δܗ͔Βɺ։ൃج൫੔උΛϝΠϯʹ࣮ ࢪ͢ΔνʔϜͱαʔϏε։ൃΛϝΠϯʹ͢ΔνʔϜͷ໾ׂ෼୲͕ঃʑʹਐߦ • ٕज़໘Ͱͷվળ • 2014೥౓ͷվળͰGitHubΛ࢖ͬͨ։ൃϑϩʔɺܧଓతσϦόϦʔͳͲ։ൃ ͷ଍ճΓͱͳΔ࢓૊Έ͸͍͍ͩͨ੔͍ͬͯͨ • ϓϩδΣΫτ։࢝౰ॳʹཱͯͨΞΫγϣϯΛ୨Է͠ɺ౮ͨ͠վળͷՐΛઈ΍ ͞ͳ͍Α͏ʹܧଓ࣮ࢪ

Slide 45

Slide 45 text

վળͷऔ૊Έ(2015೥౓) • ։ൃ؀ڥߏஙͷࣗಈԽ • ϒϥϯνσϓϩΠ(σϞ༻؀ڥ) • ຊ൪૬౰DBΛ࢖ͬͨ։ൃ • γεςϜͷݟ͑ΔԽ/ϦιʔεϞχλϦϯάڧԽ • JenkinsʹΑΔCI/CDΛຊ൪؀ڥ·Ͱద༻ • ϨΨγʔίʔυͷվળ(ೝূج൫ͷMicroservices)

Slide 46

Slide 46 text

վળͷऔ૊Έ(2015೥౓) • ։ൃ؀ڥߏஙͷࣗಈԽ • ϒϥϯνσϓϩΠ(σϞ༻؀ڥ) • ຊ൪૬౰DBΛ࢖ͬͨ։ൃ • γεςϜͷݟ͑ΔԽ/ϦιʔεϞχλϦϯάڧԽ • JenkinsʹΑΔCI/CDΛຊ൪؀ڥ·Ͱద༻ • ϨΨγʔίʔυͷվળ(ೝূج൫ͷMicroservices)

Slide 47

Slide 47 text

ϦϦʔεલͷσϞɾϨϏϡʔ ϩʔΧϧ ؀ڥ ։ൃ ςετ σβΠϯ ϨϏϡʔ σϞ ϦϦʔε ϩʔΧϧ ؀ڥ Engineer Marketing / CustomerService ର໘ͰϩʔΧϧ؀ڥΛ࢖ͬͯ σϞɺϨϏϡʔ

Slide 48

Slide 48 text

ϦϦʔεલͷσϞɾϨϏϡʔ ϩʔΧϧ ؀ڥ ։ൃ ςετ σβΠϯ ϨϏϡʔ σϞ ϦϦʔε ϩʔΧϧ ؀ڥ Engineer Marketing / CustomerService ର໘ͰϩʔΧϧ؀ڥΛ࢖ͬͯ σϞɺϨϏϡʔ • ର໘ͰͷϨϏϡʔɾσϞ • ඇಉظʹ΍ΓͱΓͰ͖ͳ͍ • ϩʔΧϧ؀ڥͷ৴པੑ • ςετ༻ͷࢿࡐ͕࢒͍ͬͯͨΓɺίϛοτ࿙ΕΛ ݕ஌Ͱ͖ͳ͍ • ΤϯδχΞಉ࢜ͷίʔυϨϏϡʔ • ϨϏϡΞʔ͕ϩʔΧϧͰର৅ͷϒϥϯνΛ Checkout(ϨϏϡʔෛՙߴ͍) Bad

Slide 49

Slide 49 text

ϒϥϯνσϓϩΠ(σϞ༻؀ڥ)

Slide 50

Slide 50 text

ϒϥϯνσϓϩΠ(σϞ༻؀ڥ) • ։ൃதͷϒϥϯνΛࢦఆͯ͠ผ؀ڥʹσϓϩΠͰ͖Δπʔϧ • ༻్ • ίʔυϨϏϡʔ࣌ͷಈ࡞֬ೝ؀ڥͱͯ͠ • Marketing, CustomerService޲͚ͷσϞ༻؀ڥͱͯ͠ • Remote΁pushࡁͷࢿࡐΛ࢖ͬͯ؀ڥΛߏங͢ΔͷͰίϛοτ࿙Εͷ
 ϦεΫ΋ͳ͘ͳΔ

Slide 51

Slide 51 text

ϒϥϯνσϓϩΠ(σϞ༻؀ڥ) • ։ൃதͷϒϥϯνΛࢦఆͯ͠ผ؀ڥʹσϓϩΠͰ͖Δπʔϧ • ༻్ • ίʔυϨϏϡʔ࣌ͷಈ࡞֬ೝ؀ڥͱͯ͠ • Marketing, CustomerService޲͚ͷσϞ༻؀ڥͱͯ͠ • Remote΁pushࡁͷࢿࡐΛ࢖ͬͯ؀ڥΛߏங͢ΔͷͰίϛοτ࿙Εͷ
 ϦεΫ΋ͳ͘ͳΔ • ✔ ඇಉظͰσϞɺಈ࡞֬ೝ͕Մೳʹ • ✔ ϩʔΧϧ؀ڥΛ࢖ΘͣʹσϞ͕Ͱ͖Δ • ✔ ϨϏϡΞʔͷෛՙܰݮ Clear!

Slide 52

Slide 52 text

վળͷऔ૊Έ(2015೥౓) • ։ൃ؀ڥߏஙͷࣗಈԽ • ϒϥϯνσϓϩΠ(σϞ༻؀ڥ) • ຊ൪૬౰DBΛ࢖ͬͨ։ൃ • γεςϜͷݟ͑ΔԽ/ϦιʔεϞχλϦϯάڧԽ • JenkinsʹΑΔCI/CDΛຊ൪؀ڥ·Ͱద༻ • ϨΨγʔίʔυͷվળ(ೝূج൫ͷMicroservices)

Slide 53

Slide 53 text

ຊ൪૬౰DB • લ೔ͷຊ൪σʔλϕʔεΛϦετΞ&ݸਓ৘ใΛϚεΫͨ͠΋ͷ • ઃஔͷҙਤɾ໨త • ຊ൪ʹΑΓ͍ۙσʔλͰ։ൃ͢Δ • Ϣʔβͱಉ౳ͷମݧΛಘΔ

Slide 54

Slide 54 text

ݕࡧ݁Ռ(ຊ൪) ݕࡧ݁Ռ(ຊ൪)

Slide 55

Slide 55 text

ݕࡧ݁Ռ(ຊ൪) ݕࡧ݁Ռ(ຊ൪૬౰DB)

Slide 56

Slide 56 text

ݕࡧ݁Ռ(ςετ༻DB)

Slide 57

Slide 57 text

https://signalvnoise.com/posts/3251-running-beta-in-production

Slide 58

Slide 58 text

http://techlife.cookpad.com/entry/2014/10/03/110806

Slide 59

Slide 59 text

։ൃʹ͔ܽͤͳ͍ଘࡏ • ϒϥϯνσϓϩΠͱຊ൪૬౰DBΛ૊Έ߹ΘͤΔ͜ͱͰຊ൪ʹݶΓͳ͘ ͍ۙ؀ڥͰσϞɺϨϏϡʔ͕Մೳʹ • ͍··Ͱؾ͚ͮͳ͔ͬͨ͜ͱ͕ؾ͚ͮΔΑ͏ʹͳͬͨ • ex. จࣈྻͷ௕͞ʹΑΔંΓฦ͠ɺύϑΥʔϚϯε • ϦϦʔεޙͷख໭Γɺ࢓༷มߋ͕ݮগ

Slide 60

Slide 60 text

վળͷऔ૊Έ(2015೥౓) • ։ൃ؀ڥߏஙͷࣗಈԽ • ϒϥϯνσϓϩΠ(σϞ༻؀ڥ) • ຊ൪૬౰DBΛ࢖ͬͨ։ൃ • γεςϜͷݟ͑ΔԽ/ϦιʔεϞχλϦϯάڧԽ • JenkinsʹΑΔCI/CDΛຊ൪؀ڥ·Ͱద༻ • ϨΨγʔίʔυͷվળ(ೝূج൫ͷMicroservices)

Slide 61

Slide 61 text

౰࣌Α͋ͬͨ͘ޫܠ Engineer CustomerService ͳΜ͔͜ͷϖʔδʹΞΫηε ͢ΔͱΤϥʔʹͳΔΜ͚ͩͲ... ͪΐɺௐࠪ͠·͢!

Slide 62

Slide 62 text

౰࣌Α͋ͬͨ͘ޫܠ Engineer CustomerService ͳΜ͔͜ͷϖʔδʹΞΫηε ͢ΔͱΤϥʔʹͳΔΜ͚ͩͲ... ͪΐɺௐࠪ͠·͢! • Dev • ΞϓϦέʔγϣϯͷҟৗΛݕ஌͢Δ࢓૊Έ͕ෆे෼ • αʔϏε͕݈߁Λҡ͍࣋ͯ͠Δͷ͔ɺͲ͔͜ҟৗ͕͋Δ ͷ͔Λ೺ѲͰ͖͍ͯͳ͍ • Ops • ΞΫηε਺ɺෛՙঢ়گͷϞχλϦϯά͕े෼ʹͰ͖͍ͯͳ ͍ Bad

Slide 63

Slide 63 text

ϩάϞχλϦϯάڧԽ • nxLog , Fluentdܦ༝ͰΞΫηεϩάɺΞϓϦέʔγϣϯϩάΛ elasticsearchʹೖΕͯkibanaͰՄࢹԽ • fluentdͰΤϥʔ಺༰ΛϦΞϧλΠϜʹSlackʹ௨஌

Slide 64

Slide 64 text

kibana

Slide 65

Slide 65 text

kibana

Slide 66

Slide 66 text

https://speakerdeck.com/shoichiron/roguhuan-jing-todevops-xiu-dot-comdefalseshi-li

Slide 67

Slide 67 text

౰࣌Α͋ͬͨ͘ޫܠ Engineer CustomerService ͳΜ͔͜ͷϖʔδʹΞΫηε ͢ΔͱΤϥʔʹͳΔΜ͚ͩͲ... ͪΐɺௐࠪ͠·͢! • Dev • ✔ ΞϓϦέʔγϣϯͷҟৗΛϦΞϧλΠϜʹݕ஌Մೳʹ • Ops • ✔ αʔϏεʹඞཁͳϝτϦΫεΛμογϡϘʔυʹ·ͱΊ ͯϞχλʹ౤Ө Clear!

Slide 68

Slide 68 text

2016೥౓ (2016/4~2017/3)

Slide 69

Slide 69 text

౰࣌ͷঢ়گ(2016೥) • ։ൃ૊৫ͷมԽ • νʔϜຖͷ໾ׂ(ϛογϣϯ)͕ΑΓ໌֬Խ • ॓ധ: UI/UXɺύʔτφʔΞϥΠΞϯεɺٕज़ϓϥοτϑΥʔϜ • Ϩετϥϯ: UI/UXɺΞϓϦɺϏδωεϑΝ΢ϯσʔγϣϯ • ٕज़໘Ͱͷվળ • Ϋϥ΢υҠߦʹ޲͚ͯେ͖͘଩Λ੾ͬͯXaaSΛϑϧ׆༻

Slide 70

Slide 70 text

վળͷऔ૊Έ(2016೥౓) • ΦϯϓϨϛε͔ΒΫϥ΢υ(AWS)΁ͷҠߦ • Infrastructure as Code • σʔλ෼ੳج൫ͷ੔උʹΑΔσʔλͷຽओԽ • ϫʔΫϑϩʔΤϯδϯͷಋೖ(Rundeck) • CTOϨϏϡʔ / ੒Ռൃදձ

Slide 71

Slide 71 text

վળͷऔ૊Έ(2016೥౓) • ΦϯϓϨϛε͔ΒΫϥ΢υ(AWS)΁ͷҠߦ • Infrastructure as Code • σʔλ෼ੳج൫ͷ੔උʹΑΔσʔλͷຽओԽ • ϫʔΫϑϩʔΤϯδϯͷಋೖ(Rundeck) • CTOϨϏϡʔ / ੒Ռൃදձ

Slide 72

Slide 72 text

Infrastructure as Code • DNSઃఆͷίʔυ؅ཧɺσϓϩΠࣗಈԽ

Slide 73

Slide 73 text

Infrastructure as Code • γεςϜߏ੒ΛTerraformͰίʔυ؅ཧ

Slide 74

Slide 74 text

Infrastructure as Code • ͲͪΒ΋Circle CIͰσϓϩΠ·Ͱ࣮ࢪ • ❌ ϚωδϝϯτίϯιʔϧͰखಈૢ࡞ • ⭕ ߏ੒ΛίʔυͰ؅ཧͯ͠มߋ͸CIͰ࣮ࢪ

Slide 75

Slide 75 text

վળͷऔ૊Έ(2016೥౓) • ΦϯϓϨϛε͔ΒΫϥ΢υ(AWS)΁ͷҠߦ • Infrastructure as Code • σʔλ෼ੳج൫ͷ੔උʹΑΔσʔλͷຽओԽ • ϫʔΫϑϩʔΤϯδϯͷಋೖ(Rundeck) • CTOϨϏϡʔ / ੒Ռൃදձ

Slide 76

Slide 76 text

σʔλ෼ੳج൫(Before) • ETLॲཧ(جװσʔλϕʔε΍GoogleAnalytics͔Β෼ੳʹඞཁͳσʔλΛந ग़ →෼ੳ༻σʔλϕʔεߏங) • ߋ৽ස౓: 1ճ/೔ • σʔλ: 2೔஗Ε • खಈ࡞ۀଟ͘ɺߋ৽࡞ۀʹޕલத͍ͬͺ͍͔͔Δ • ෼ੳϨϙʔτ • Excelϕʔε͕ओ

Slide 77

Slide 77 text

σʔλ෼ੳج൫(Before) • ETLॲཧ(جװσʔλϕʔε΍GoogleAnalytics͔Β෼ੳʹඞཁͳσʔλΛந ग़ →෼ੳ༻σʔλϕʔεߏங) • ߋ৽ස౓: 1ճ/೔ • σʔλ: 2೔஗Ε • खಈ࡞ۀଟ͘ɺߋ৽࡞ۀʹޕલத͍ͬͺ͍͔͔Δ • ෼ੳϨϙʔτ • Excelϕʔε͕ओ • खಈ࡞ۀ͕ଟ͘ɺࣗಈԽ͍ͯ͠Δ෦෼΋ͨ·ʹ ࣦഊ͢Δ • ࢪࡦ࣮ࢪ͸ޕޙҎ߱ • ExcelͰՄࢹԽ Bad

Slide 78

Slide 78 text

ߋ৽ॲཧΛࣗಈԽ

Slide 79

Slide 79 text

ՄࢹԽ • Re:dash • ΦʔϓϯιʔεͷσʔλՄࢹԽϓϥοτϑΥʔϜ • MySQL, BigQuery, Redshift, ElasticsearchͳͲΛσʔλιʔεʹ ͯ͠ΫΤϦͷ࣮ߦ݁ՌΛՄࢹԽͰ͖Δ

Slide 80

Slide 80 text

Re:dash

Slide 81

Slide 81 text

ܒ໤

Slide 82

Slide 82 text

ܒ໤ • σʔλͷஔ͖৔ɺՄࢹԽͷํ๏ΛΦʔϓϯʹ͠ ͯ୭Ͱ΋σʔλநग़͕ߦ͑ΔΑ͏ʹ • ❌ XX ͞Μʹґཔͯ͠σʔλΛग़͢ • ⭕ σʔλΛݟ͍ͨਓ͕ࣗ෼Ͱͭ͘Δ • ⭕ ࡞ͬͨσʔλ͸URL(Re:dash)Ͱڞ༗ σʔλΛຽओԽ

Slide 83

Slide 83 text

վળͷऔ૊Έ(2016೥౓) • ΦϯϓϨϛε͔ΒΫϥ΢υ(AWS)΁ͷҠߦ • Infrastructure as Code • σʔλ෼ੳج൫ͷ੔උʹΑΔσʔλͷຽओԽ • ϫʔΫϑϩʔΤϯδϯͷಋೖ(Rundeck) • CTOϨϏϡʔ / ੒Ռൃදձ

Slide 84

Slide 84 text

CTOϨϏϡʔ • ֤νʔϜ͕࣮ࢪ͍ͯ͠Δٕज़՝୊΁ͷऔ૊ΈΛCTOʹนଧͪ͢Δձ • ٕज़՝୊ͷ໰୊෼ੳɺղফ΁޲͚ͨΞϓϩʔνɺਐḿঢ়گΛڞ༗͠ͳ ͕ΒϨϏϡʔΛ࣮ࢪ

Slide 85

Slide 85 text

੒Ռൃදձ • ֤νʔϜ͕औΓ૊ΜͩϓϩδΣΫτͷ੒ՌΛൃද͢Δձ • ೔ࠒऔΓ૊ΜͰ͍Δۀ຿͕ͲΜͳ੒Ռʹͭͳ͕ͬͨͷ͔ɺಋೖͨ͠ ৽͍ٕ͠ज़/ػೳ͕ͲΜͳ࢓૊ΈͰಈ͍͍ͯΔ͔ • ϓϨθϯࢿྉʹ·ͱΊͯετοΫ͓ͯ͘͜͠ͱͰɺ৽͍͠ϝϯόʔ ͕ೖͬͨͱ͖ʹܦҢؚΊͯݱঢ়ͷཧղΛਂΊΔ͜ͱ΋ظ଴

Slide 86

Slide 86 text

੒Ռൃදձ

Slide 87

Slide 87 text

http://techlife.cookpad.com/entry/2016/09/16/192927

Slide 88

Slide 88 text

ݱࡏͷঢ়گͱ ࠓޙ༧ఆ͍ͯ͠Δऔ૊Έ

Slide 89

Slide 89 text

ݱࡏͷঢ়گ • ։ൃ૊৫ͷมԽ • ֤αʔϏεɺKPIͷ੹೚ऀʹΤϯδχΞɺσβΠφʔΛूΊͯ
 ʮ໨తܕͷ૊৫ʯʹҠߦ • νʔϜ͝ͱͷ੹຿ΛΑΓ໌֬ʹ • ٕज़໘Ͱͷվળ • Ϋϥ΢υԽɺXaaSಋೖʹΑͬͯվળ͕ਐΈɺϨΨγʔίʔυ΍γεςϜΞʔΩ ςΫνϟͳͲγεςϜຊջ෦෼ͷ՝୊ʹ޲͔͑Δঢ়گʹ • αʔϏε/ϓϩμΫτͷ՝୊ʹԊͬͨՕॴͰͷվળ΁ϑΥʔΧε

Slide 90

Slide 90 text

վળͷऔ૊Έ(ݱࡏ) • ֤αʔϏεઐଐͷΠϯϑϥϝϯόʔ(SRE) • γεςϜΞʔΩςΫνϟͷ࡮৽ • CRMࢪࡦڧԽʹ޲͚ͨߦಈϩάج൫ͷ੔උ • ϑϩϯτΤϯυ։ൃج൫ͷ࠶ઃܭ

Slide 91

Slide 91 text

·ͱΊ

Slide 92

Slide 92 text

·ͱΊ • ໾ׂ΍ܖ໿ܗଶͷִͨΓ͕ബ͘ͳͬͨ • ։ൃ૊৫ͷมԽͱٕज़໘ͰͷվળΛܧଓͨ݁͠Ռɺʮ։ൃ(Dev)ͱӡ༻(Ops)ʯ΍ ʮϓϩύʔͱύʔτφʔʯͱ͍ͬͨ۠෼͚͕ബ͘ͳͬͨ • վળ͸ܧଓతʹ • Ұ଍ඈͼͰ΍Ζ͏ͱͯ͠΋੒Ռʹ͸ͭͳ͕Βͳ͍ͷͰ஍ಓʹίπίπ • 1ਓͰ΍ΔͷͰ͸ͳ͘ɺ֤ϝϯόʔ͕ಘҙͳ͜ͱΛ΍Δ • αʔϏε/ϓϩμΫτͷ੒Ռʹͭͳ͕Δ͔͕࠷΋ॏཁ • ٕज़తʹਖ਼ͯ͘͠΋ఏڙ͢ΔαʔϏεʹޮ͔ͳ͚Ε͹੒Ռͱͯ͠͸ෆे෼

Slide 93

Slide 93 text

͝੩ௌ
 ͋Γ͕ͱ͏͍͟͝·ͨ͠