一休での開発における改善の取組み /devops-at-ikyu

一休での開発における改善の取組み /devops-at-ikyu

4/28(金) にDevOps推進協議会 で講演したときの資料です。

D2a23b20c732b68bc68017d8fc65afe0?s=128

kentana20

April 28, 2017
Tweet

Transcript

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

  2. About me • ాத ݈հ • @kentana20 • 2006೥5݄͔ΒҰٳ •

    ॓ധαʔϏε։ൃ(9೥)
 →γεςϜຊ෦(2೥)

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

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

  5. About Ұٳ.com

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

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

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

  10. ͓ͱͳΓ͞·

  11. ։ൃ૊৫ʹ͍ͭͯ

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

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

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

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

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

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

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

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

    %FW • ݖݶ෼ঠ͸͋Δ΋ͷͷɺ͔ͳΓͷݖݶΛ
 ։ൃΤϯδχΞʹ෇༩ • ຊ൪αʔόɺDB΁ͷΞΫηε • ೔ʑͷϦϦʔεӡ༻ etc.. • ຊ౰ʹॏཁͳ෦෼ͷΈΛอޢ • ݸਓ৘ใɺܾࡁɾਫ਼ࢉʹؔΘΔػೳͳͲ
  20. ೔ʑͷϦϦʔεӡ༻ • ݪଇͱͯ͠Pull RequestʹΑΔίʔυϨϏϡʔΛ௨ͬ ͨมߋͷΈΛϦϦʔε • σϓϩΠ͸։ൃऀ(Dev)͕ߦ͏ • σϓϩΠස౓ •

    ॓ധ: 1ճ/೔ • Ϩετϥϯ: 10+ճ/೔
  21. ࠓ೔ͷ͓࿩ • ͲͷΑ͏ͳมભ/มԽΛܦͯ͜ͷΑ͏ͳ։ൃମ੍ʹ ͳ͔ͬͨ • Ұٳʹ͓͚ΔαʔϏε։ൃʹޮ͘վળͷࣄྫ • ࠓޙ༧ఆ͍ͯ͠Δऔ૊Έ

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

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

  24. ౰࣌ͷঢ়گ • ձࣾن໛ • ձࣾن໛͸໿120໊ɺ͏ͪ։ൃϝϯόʔ͸40໊ऑ • ։ൃ૊৫ • ॓ധ: 20໊ऑ

    / Ϩετϥϯ: 12~3໊ / Πϯϑϥ: 5໊ • ֤෦໳Ͱύʔτφʔ(֎஫)Λ࠾༻͠ɺϓϩύʔ1໊ʹରͯ͠ৗறͷ ύʔτφʔ2~3໊ͱ͍͏ମ੍͕ओͩͬͨ
  25. ౰๊͍࣌͑ͯͨ՝୊ • Ϣʔβ΁Ձ஋Λఏڙ͢Δεϐʔυ͕௿Լ͍ͯͨ͠ • ඼࣭௿Լ / ։ൃޮ཰௿Լ / ӡ༻ෛՙ /

    ݖݶ෼ঠ • αʔϏε։ൃ/ӡ༻ʹ௥ΘΕΔ೔ʑͰɺࣗಈԽΛ͸͡Ίͱͨ͠ӡ༻վળ΍
 ৽͍ٕ͠ज़ɾαʔϏεͷಋೖ͕௥͍͔ͭͳ͍ • ӡ༻ෛՙ͕ঃʑʹ্͕Γɺஈʑͱ։ൃ଎౓͕௿Լ • ϓϩύʔΑΓ΋ύʔτφʔʹ։ൃφϨοδ͕ཷ·Γɺٕज़͕ۭಎԽ • DevͱOpsͷݖݶ෼ঠ͕ਐΈʮDev͕Ͱ͖ͳ͍͜ͱʯ͕૿Ճ
  26. https://speakerdeck.com/kensuketanaka/modannaxian-chang-nisurutamenishi-jian-sitakoto

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

  28. None
  29. վળͷऔ૊Έ(2014೥౓) • ৘ใڞ༗ج൫ͷ੔උ • Subversion → GitHub Enterprise΁ͷҠߦ • JenkinsΛ࢖ͬͨCI/CDಋೖ

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

    • Selenium WebDriverΛ࢖ͬͨE2Eςετ • σβΠφʔΛר͖ࠐΜͩGit Flowͷߏங
  31. ৘ใڞ༗ج൫(Before) • πʔϧ • ϝʔϧɺ಺ઢɺRedmine • ࿮૊Έ • γεςϜि࣍ϛʔςΟϯά

  32. • πʔϧ • ϝʔϧɺ಺ઢɺRedmine • ࿮૊Έ • γεςϜि࣍ϛʔςΟϯά • ݸʑͷҙࣝʹґଘͨ͠৘ใڞ༗

    • ॓ധɺϨετϥϯɺΠϯϑϥͱίϯςΩετ͕ ҟͳΔϝϯόʔͰͷத਎ͷബ͍ϛʔςΟϯά • ਐߦதͷҊ݅΍ϓϩδΣΫτͷ;Γ͔͑ΓͳͲ ΛΧδϡΞϧʹڞ༗͢Δ৔͕ͳ͍ Bad
  33. ৘ใڞ༗ج൫(After) • πʔϧ • Hipchat (ݱࡏ͸Slack) / Qiita Team •

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

    ࿮૊Έ • ேձ / Χϯόϯ / ;Γ͔͑Γ(KPT) • ΨΠυϥΠϯ • ֤πʔϧ΍࿮૊Έʹରͯ͠ΨΠυϥΠϯΛ੔උ • ✔ ΨΠυϥΠϯʹԊͬͨ࢓༷ͷڞ༗ • ✔ ίϯςΩετ͕ἧͬͨνʔϜຖʹேձΛ࣮ࢪ ͠ɺ಺༰ਂٞ͘࿦Ͱ͖ΔΑ͏ʹ • ✔ Qiita TeamʹΑͬͯҊ݅࢓༷ͷڞ༗͕Χδϡ ΞϧʹՄೳʹ Clear!
  35. վળͷऔ૊Έ(2014೥౓) • ৘ใڞ༗ج൫ͷ੔උ • Subversion → GitHub Enterprise΁ͷҠߦ • JenkinsΛ࢖ͬͨCI/CDಋೖ

    • Selenium WebDriverΛ࢖ͬͨE2Eςετ • σβΠφʔΛר͖ࠐΜͩGit Flowͷߏங
  36. σϓϩΠϑϩʔ(Before) ϩʔΧϧ ؀ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOH؀ڥ %FQMPZ

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

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

    ຊ൪؀ڥ %FQMPZ ϩʔΧϧ ؀ڥ 5FTU ΄΅खಈ ΤϯδχΞ͕౰൪(िସΓ)Ͱ࣮ࢪ खಈ ΤϯδχΞ͕෼୲Ͱ࣮ࢪ • ద੾ͳλΠϛϯάͰͷϨϏϡʔ͕ࠔ೉ • σϓϩΠ࡞ۀɺखಈςετͷෛՙେ • ӡ༻ෛՙ͕ߴ͍͜ͱΛཧ༝ʹϦϦʔεස౓͸
 ि2ճ͔Β1ճ΁ Bad
  39. σϓϩΠϑϩʔͷ੔උ • GitHubɺJenkinsɺSeleniumΛ࢖ͬͯσϓϩΠϑϩʔΛߏங • GitHubΛಋೖͯ͠ϓϧϦΫΤετϕʔεͷ։ൃ • masterϒϥϯνʹmergeͨ͠ΒࣗಈతʹJenkinsδϣϒ͕Staging ؀ڥ΁σϓϩΠ • Staging΁ͷσϓϩΠ౎౓SeleniumʹΑΔE2EςετΛ࣮ࢪ

  40. σϓϩΠϑϩʔ(After) ϓϧϦΫmerge (खಈ) 4UBHJOH ϦϦʔε༻ ϓϧϦΫ࡞੒ ίʔϧ ϦϦʔε༻ ϓϧϦΫ࡞੒ ϓϧϦΫ63-

    8FC)PPL %FQMPZ σϓϩΠ୲౰ Production %FQMPZ खಈ
  41. ϒϥϯνઓུ NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF

    NFSHF 1VMM3FRVFTU Production
  42. σϓϩΠϑϩʔ(Before) ϩʔΧϧ ؀ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOH؀ڥ %FQMPZ

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

  44. ౰࣌ͷঢ়گ(2015೥) • ։ൃ૊৫ͷมԽ • ͢΂ͯͷϢχοτͰαʔϏε։ൃΛ͢Δܗ͔Βɺ։ൃج൫੔උΛϝΠϯʹ࣮ ࢪ͢ΔνʔϜͱαʔϏε։ൃΛϝΠϯʹ͢ΔνʔϜͷ໾ׂ෼୲͕ঃʑʹਐߦ • ٕज़໘Ͱͷվળ • 2014೥౓ͷվળͰGitHubΛ࢖ͬͨ։ൃϑϩʔɺܧଓతσϦόϦʔͳͲ։ൃ

    ͷ଍ճΓͱͳΔ࢓૊Έ͸͍͍ͩͨ੔͍ͬͯͨ • ϓϩδΣΫτ։࢝౰ॳʹཱͯͨΞΫγϣϯΛ୨Է͠ɺ౮ͨ͠վળͷՐΛઈ΍ ͞ͳ͍Α͏ʹܧଓ࣮ࢪ
  45. վળͷऔ૊Έ(2015೥౓) • ։ൃ؀ڥߏஙͷࣗಈԽ • ϒϥϯνσϓϩΠ(σϞ༻؀ڥ) • ຊ൪૬౰DBΛ࢖ͬͨ։ൃ • γεςϜͷݟ͑ΔԽ/ϦιʔεϞχλϦϯάڧԽ •

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

    JenkinsʹΑΔCI/CDΛຊ൪؀ڥ·Ͱద༻ • ϨΨγʔίʔυͷվળ(ೝূج൫ͷMicroservices)
  47. ϦϦʔεલͷσϞɾϨϏϡʔ ϩʔΧϧ ؀ڥ ։ൃ ςετ σβΠϯ ϨϏϡʔ σϞ ϦϦʔε ϩʔΧϧ

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

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

  50. ϒϥϯνσϓϩΠ(σϞ༻؀ڥ) • ։ൃதͷϒϥϯνΛࢦఆͯ͠ผ؀ڥʹσϓϩΠͰ͖Δπʔϧ • ༻్ • ίʔυϨϏϡʔ࣌ͷಈ࡞֬ೝ؀ڥͱͯ͠ • Marketing, CustomerService޲͚ͷσϞ༻؀ڥͱͯ͠

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

    • Remote΁pushࡁͷࢿࡐΛ࢖ͬͯ؀ڥΛߏங͢ΔͷͰίϛοτ࿙Εͷ
 ϦεΫ΋ͳ͘ͳΔ • ✔ ඇಉظͰσϞɺಈ࡞֬ೝ͕Մೳʹ • ✔ ϩʔΧϧ؀ڥΛ࢖ΘͣʹσϞ͕Ͱ͖Δ • ✔ ϨϏϡΞʔͷෛՙܰݮ Clear!
  52. վળͷऔ૊Έ(2015೥౓) • ։ൃ؀ڥߏஙͷࣗಈԽ • ϒϥϯνσϓϩΠ(σϞ༻؀ڥ) • ຊ൪૬౰DBΛ࢖ͬͨ։ൃ • γεςϜͷݟ͑ΔԽ/ϦιʔεϞχλϦϯάڧԽ •

    JenkinsʹΑΔCI/CDΛຊ൪؀ڥ·Ͱద༻ • ϨΨγʔίʔυͷվળ(ೝূج൫ͷMicroservices)
  53. ຊ൪૬౰DB • લ೔ͷຊ൪σʔλϕʔεΛϦετΞ&ݸਓ৘ใΛϚεΫͨ͠΋ͷ • ઃஔͷҙਤɾ໨త • ຊ൪ʹΑΓ͍ۙσʔλͰ։ൃ͢Δ • Ϣʔβͱಉ౳ͷମݧΛಘΔ

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

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

  56. ݕࡧ݁Ռ(ςετ༻DB)

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

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

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

    ϦϦʔεޙͷख໭Γɺ࢓༷มߋ͕ݮগ
  60. վળͷऔ૊Έ(2015೥౓) • ։ൃ؀ڥߏஙͷࣗಈԽ • ϒϥϯνσϓϩΠ(σϞ༻؀ڥ) • ຊ൪૬౰DBΛ࢖ͬͨ։ൃ • γεςϜͷݟ͑ΔԽ/ϦιʔεϞχλϦϯάڧԽ •

    JenkinsʹΑΔCI/CDΛຊ൪؀ڥ·Ͱద༻ • ϨΨγʔίʔυͷվળ(ೝূج൫ͷMicroservices)
  61. ౰࣌Α͋ͬͨ͘ޫܠ Engineer CustomerService ͳΜ͔͜ͷϖʔδʹΞΫηε ͢ΔͱΤϥʔʹͳΔΜ͚ͩͲ... ͪΐɺௐࠪ͠·͢!

  62. ౰࣌Α͋ͬͨ͘ޫܠ Engineer CustomerService ͳΜ͔͜ͷϖʔδʹΞΫηε ͢ΔͱΤϥʔʹͳΔΜ͚ͩͲ... ͪΐɺௐࠪ͠·͢! • Dev • ΞϓϦέʔγϣϯͷҟৗΛݕ஌͢Δ࢓૊Έ͕ෆे෼

    • αʔϏε͕݈߁Λҡ͍࣋ͯ͠Δͷ͔ɺͲ͔͜ҟৗ͕͋Δ ͷ͔Λ೺ѲͰ͖͍ͯͳ͍ • Ops • ΞΫηε਺ɺෛՙঢ়گͷϞχλϦϯά͕े෼ʹͰ͖͍ͯͳ ͍ Bad
  63. ϩάϞχλϦϯάڧԽ • nxLog , Fluentdܦ༝ͰΞΫηεϩάɺΞϓϦέʔγϣϯϩάΛ elasticsearchʹೖΕͯkibanaͰՄࢹԽ • fluentdͰΤϥʔ಺༰ΛϦΞϧλΠϜʹSlackʹ௨஌

  64. kibana

  65. kibana

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

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

    ΞϓϦέʔγϣϯͷҟৗΛϦΞϧλΠϜʹݕ஌Մೳʹ • Ops • ✔ αʔϏεʹඞཁͳϝτϦΫεΛμογϡϘʔυʹ·ͱΊ ͯϞχλʹ౤Ө Clear!
  68. 2016೥౓ (2016/4~2017/3)

  69. ౰࣌ͷঢ়گ(2016೥) • ։ൃ૊৫ͷมԽ • νʔϜຖͷ໾ׂ(ϛογϣϯ)͕ΑΓ໌֬Խ • ॓ധ: UI/UXɺύʔτφʔΞϥΠΞϯεɺٕज़ϓϥοτϑΥʔϜ • Ϩετϥϯ:

    UI/UXɺΞϓϦɺϏδωεϑΝ΢ϯσʔγϣϯ • ٕज़໘Ͱͷվળ • Ϋϥ΢υҠߦʹ޲͚ͯେ͖͘଩Λ੾ͬͯXaaSΛϑϧ׆༻
  70. վળͷऔ૊Έ(2016೥౓) • ΦϯϓϨϛε͔ΒΫϥ΢υ(AWS)΁ͷҠߦ • Infrastructure as Code • σʔλ෼ੳج൫ͷ੔උʹΑΔσʔλͷຽओԽ •

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

    ϫʔΫϑϩʔΤϯδϯͷಋೖ(Rundeck) • CTOϨϏϡʔ / ੒Ռൃදձ
  72. Infrastructure as Code • DNSઃఆͷίʔυ؅ཧɺσϓϩΠࣗಈԽ

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

  74. Infrastructure as Code • ͲͪΒ΋Circle CIͰσϓϩΠ·Ͱ࣮ࢪ • ❌ ϚωδϝϯτίϯιʔϧͰखಈૢ࡞ •

    ⭕ ߏ੒ΛίʔυͰ؅ཧͯ͠มߋ͸CIͰ࣮ࢪ
  75. վળͷऔ૊Έ(2016೥౓) • ΦϯϓϨϛε͔ΒΫϥ΢υ(AWS)΁ͷҠߦ • Infrastructure as Code • σʔλ෼ੳج൫ͷ੔උʹΑΔσʔλͷຽओԽ •

    ϫʔΫϑϩʔΤϯδϯͷಋೖ(Rundeck) • CTOϨϏϡʔ / ੒Ռൃදձ
  76. σʔλ෼ੳج൫(Before) • ETLॲཧ(جװσʔλϕʔε΍GoogleAnalytics͔Β෼ੳʹඞཁͳσʔλΛந ग़ →෼ੳ༻σʔλϕʔεߏங) • ߋ৽ස౓: 1ճ/೔ • σʔλ:

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

    2೔஗Ε • खಈ࡞ۀଟ͘ɺߋ৽࡞ۀʹޕલத͍ͬͺ͍͔͔Δ • ෼ੳϨϙʔτ • Excelϕʔε͕ओ • खಈ࡞ۀ͕ଟ͘ɺࣗಈԽ͍ͯ͠Δ෦෼΋ͨ·ʹ ࣦഊ͢Δ • ࢪࡦ࣮ࢪ͸ޕޙҎ߱ • ExcelͰՄࢹԽ Bad
  78. ߋ৽ॲཧΛࣗಈԽ

  79. ՄࢹԽ • Re:dash • ΦʔϓϯιʔεͷσʔλՄࢹԽϓϥοτϑΥʔϜ • MySQL, BigQuery, Redshift, ElasticsearchͳͲΛσʔλιʔεʹ

    ͯ͠ΫΤϦͷ࣮ߦ݁ՌΛՄࢹԽͰ͖Δ
  80. Re:dash

  81. ܒ໤

  82. ܒ໤ • σʔλͷஔ͖৔ɺՄࢹԽͷํ๏ΛΦʔϓϯʹ͠ ͯ୭Ͱ΋σʔλநग़͕ߦ͑ΔΑ͏ʹ • ❌ XX ͞Μʹґཔͯ͠σʔλΛग़͢ • ⭕

    σʔλΛݟ͍ͨਓ͕ࣗ෼Ͱͭ͘Δ • ⭕ ࡞ͬͨσʔλ͸URL(Re:dash)Ͱڞ༗ σʔλΛຽओԽ
  83. վળͷऔ૊Έ(2016೥౓) • ΦϯϓϨϛε͔ΒΫϥ΢υ(AWS)΁ͷҠߦ • Infrastructure as Code • σʔλ෼ੳج൫ͷ੔උʹΑΔσʔλͷຽओԽ •

    ϫʔΫϑϩʔΤϯδϯͷಋೖ(Rundeck) • CTOϨϏϡʔ / ੒Ռൃදձ
  84. CTOϨϏϡʔ • ֤νʔϜ͕࣮ࢪ͍ͯ͠Δٕज़՝୊΁ͷऔ૊ΈΛCTOʹนଧͪ͢Δձ • ٕज़՝୊ͷ໰୊෼ੳɺղফ΁޲͚ͨΞϓϩʔνɺਐḿঢ়گΛڞ༗͠ͳ ͕ΒϨϏϡʔΛ࣮ࢪ

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

  86. ੒Ռൃදձ

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

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

  89. ݱࡏͷঢ়گ • ։ൃ૊৫ͷมԽ • ֤αʔϏεɺKPIͷ੹೚ऀʹΤϯδχΞɺσβΠφʔΛूΊͯ
 ʮ໨తܕͷ૊৫ʯʹҠߦ • νʔϜ͝ͱͷ੹຿ΛΑΓ໌֬ʹ • ٕज़໘Ͱͷվળ

    • Ϋϥ΢υԽɺXaaSಋೖʹΑͬͯվળ͕ਐΈɺϨΨγʔίʔυ΍γεςϜΞʔΩ ςΫνϟͳͲγεςϜຊջ෦෼ͷ՝୊ʹ޲͔͑Δঢ়گʹ • αʔϏε/ϓϩμΫτͷ՝୊ʹԊͬͨՕॴͰͷվળ΁ϑΥʔΧε
  90. վળͷऔ૊Έ(ݱࡏ) • ֤αʔϏεઐଐͷΠϯϑϥϝϯόʔ(SRE) • γεςϜΞʔΩςΫνϟͷ࡮৽ • CRMࢪࡦڧԽʹ޲͚ͨߦಈϩάج൫ͷ੔උ • ϑϩϯτΤϯυ։ൃج൫ͷ࠶ઃܭ

  91. ·ͱΊ

  92. ·ͱΊ • ໾ׂ΍ܖ໿ܗଶͷִͨΓ͕ബ͘ͳͬͨ • ։ൃ૊৫ͷมԽͱٕज़໘ͰͷվળΛܧଓͨ݁͠Ռɺʮ։ൃ(Dev)ͱӡ༻(Ops)ʯ΍ ʮϓϩύʔͱύʔτφʔʯͱ͍ͬͨ۠෼͚͕ബ͘ͳͬͨ • վળ͸ܧଓతʹ • Ұ଍ඈͼͰ΍Ζ͏ͱͯ͠΋੒Ռʹ͸ͭͳ͕Βͳ͍ͷͰ஍ಓʹίπίπ

    • 1ਓͰ΍ΔͷͰ͸ͳ͘ɺ֤ϝϯόʔ͕ಘҙͳ͜ͱΛ΍Δ • αʔϏε/ϓϩμΫτͷ੒Ռʹͭͳ͕Δ͔͕࠷΋ॏཁ • ٕज़తʹਖ਼ͯ͘͠΋ఏڙ͢ΔαʔϏεʹޮ͔ͳ͚Ε͹੒Ռͱͯ͠͸ෆे෼
  93. ͝੩ௌ
 ͋Γ͕ͱ͏͍͟͝·ͨ͠