$30 off During Our Annual Pro Sale. View Details »

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

kentana20
April 28, 2017

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

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

kentana20

April 28, 2017
Tweet

More Decks by kentana20

Other Decks in Technology

Transcript

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

    View Slide

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

    →γεςϜຊ෦(2೥)


    View Slide

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

    View Slide

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

    View Slide

  5. About Ұٳ.com

    View Slide

  6. View Slide

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

    View Slide

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

    View Slide

  9. Ұٳ.comϨετϥϯ
    • ओྗαʔϏεͦͷ2

    • ্࣭ͳϨετϥϯͷ༧໿αʔϏε

    • 2006೥6݄Φʔϓϯ(11೥໨)

    • ݱࡏ࠷΋஫ྗ͍ͯ͠Δࣄۀ

    View Slide

  10. ͓ͱͳΓ͞·

    View Slide

  11. ։ൃ૊৫ʹ͍ͭͯ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  19. DevͱOps
    ॓ധࣄۀຊ෦
    Ϩετϥϯ
    ࣄۀຊ෦
    ৽نࣄۀຊ෦
    γεςϜຊ෦
    %FW %FW %FW
    0QT
    %FW
    • ݖݶ෼ঠ͸͋Δ΋ͷͷɺ͔ͳΓͷݖݶΛ

    ։ൃΤϯδχΞʹ෇༩
    • ຊ൪αʔόɺDB΁ͷΞΫηε
    • ೔ʑͷϦϦʔεӡ༻ etc..
    • ຊ౰ʹॏཁͳ෦෼ͷΈΛอޢ
    • ݸਓ৘ใɺܾࡁɾਫ਼ࢉʹؔΘΔػೳͳͲ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  25. ౰๊͍࣌͑ͯͨ՝୊
    • Ϣʔβ΁Ձ஋Λఏڙ͢Δεϐʔυ͕௿Լ͍ͯͨ͠
    • ඼࣭௿Լ / ։ൃޮ཰௿Լ / ӡ༻ෛՙ / ݖݶ෼ঠ
    • αʔϏε։ൃ/ӡ༻ʹ௥ΘΕΔ೔ʑͰɺࣗಈԽΛ͸͡Ίͱͨ͠ӡ༻վળ΍

    ৽͍ٕ͠ज़ɾαʔϏεͷಋೖ͕௥͍͔ͭͳ͍
    • ӡ༻ෛՙ͕ঃʑʹ্͕Γɺஈʑͱ։ൃ଎౓͕௿Լ
    • ϓϩύʔΑΓ΋ύʔτφʔʹ։ൃφϨοδ͕ཷ·Γɺٕज़͕ۭಎԽ
    • DevͱOpsͷݖݶ෼ঠ͕ਐΈʮDev͕Ͱ͖ͳ͍͜ͱʯ͕૿Ճ

    View Slide

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

    View Slide

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

    View Slide

  28. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  36. σϓϩΠϑϩʔ(Before)
    ϩʔΧϧ
    ؀ڥ
    3FQPTJUPSZ
    4VCWFSTJPO

    $IFDLPVU $PNNJU
    5BH 4UBHJOH؀ڥ
    %FQMPZ
    ຊ൪؀ڥ
    %FQMPZ
    ϩʔΧϧ
    ؀ڥ
    5FTU

    View Slide

  37. σϓϩΠϑϩʔ(Before)
    ϩʔΧϧ
    ؀ڥ
    3FQPTJUPSZ
    4VCWFSTJPO

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

    View Slide

  38. σϓϩΠϑϩʔ(Before)
    ϩʔΧϧ
    ؀ڥ
    3FQPTJUPSZ
    4VCWFSTJPO

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

    ि2ճ͔Β1ճ΁
    Bad

    View Slide

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

    View Slide

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

    View Slide

  41. ϒϥϯνઓུ
    NBTUFS
    GYYY
    GYYY GYYY
    DIFDLPVU NFSHF
    1VMM3FRVFTU

    4UBHJOH
    SFMFBTF
    NFSHF
    1VMM3FRVFTU

    Production

    View Slide

  42. σϓϩΠϑϩʔ(Before)
    ϩʔΧϧ
    ؀ڥ
    3FQPTJUPSZ
    4VCWFSTJPO

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    ϦεΫ΋ͳ͘ͳΔ

    View Slide

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

    ϦεΫ΋ͳ͘ͳΔ
    • ✔ ඇಉظͰσϞɺಈ࡞֬ೝ͕Մೳʹ
    • ✔ ϩʔΧϧ؀ڥΛ࢖ΘͣʹσϞ͕Ͱ͖Δ
    • ✔ ϨϏϡΞʔͷෛՙܰݮ
    Clear!

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  64. kibana

    View Slide

  65. kibana

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  74. Infrastructure as Code
    • ͲͪΒ΋Circle CIͰσϓϩΠ·Ͱ࣮ࢪ

    ❌ ϚωδϝϯτίϯιʔϧͰखಈૢ࡞

    ⭕ ߏ੒ΛίʔυͰ؅ཧͯ͠มߋ͸CIͰ࣮ࢪ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  78. ߋ৽ॲཧΛࣗಈԽ

    View Slide

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

    View Slide

  80. Re:dash

    View Slide

  81. ܒ໤

    View Slide

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

    ❌ XX ͞Μʹґཔͯ͠σʔλΛग़͢

    ⭕ σʔλΛݟ͍ͨਓ͕ࣗ෼Ͱͭ͘Δ

    ⭕ ࡞ͬͨσʔλ͸URL(Re:dash)Ͱڞ༗
    σʔλΛຽओԽ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  86. ੒Ռൃදձ

    View Slide

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

    View Slide

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

    View Slide

  89. ݱࡏͷঢ়گ
    • ։ൃ૊৫ͷมԽ
    • ֤αʔϏεɺKPIͷ੹೚ऀʹΤϯδχΞɺσβΠφʔΛूΊͯ

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

    View Slide

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

    View Slide

  91. ·ͱΊ

    View Slide

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

    View Slide

  93. ͝੩ௌ

    ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide