Upgrade to Pro — share decks privately, control downloads, hide ads and more …

継続的インテグレーションとChatOpsでシステム開発・運用を効率化

 継続的インテグレーションとChatOpsでシステム開発・運用を効率化

Kaz Watanabe

May 30, 2015
Tweet

More Decks by Kaz Watanabe

Other Decks in Programming

Transcript

  1. ܧଓతΠϯςάϨʔγϣϯͱChatOpsͰ
    γεςϜ։ൃɾӡ༻ΛՄࢹԽ
    ߹ಉձࣾ decr ୅දࣾһ
    ౉ลҰ޺(@kaz_29)

    View Slide

  2. WHO?
    ߹ಉձࣾ decr
    ୅දࣾһ
    WebΞϓϦέʔγϣϯͷ։ൃɺ
    iOSΞϓϦέʔγϣϯͷ։ൃɺ
    Ϋϥ΢υΠϯϑϥͷߏஙɾӡ༻

    View Slide

  3. ιϑτ΢ΣΞ։ൃʹٻΊΒΕ͍ͯ
    Δ΋ͷ
    ୹͍ϦϦʔεαΠΫϧ
    ಈ͘ιϑτ΢ΣΞͷڙڅ
    ՄೳͳݶΓແବΛഉআ
    νʔϜ಺ͷԁ׈ͳίϛϡχέʔγϣϯ͕ॏཁ
    ࣗಈԽՄೳͳ΋ͷ͸શͯࣗಈԽ͢Δ

    View Slide

  4. ܧଓతΠϯςάϨʔγϣϯ
    Continuous Integration = CI

    View Slide

  5. “ܧଓతΠϯςάϨʔγϣϯɺCIʢӳ: continuous
    integrationʣͱ͸ɺओʹϓϩάϥϚʔͷΞϓϦ
    έʔγϣϯ࡞੒࣌ͷ඼࣭վળ΍ೲظͷ୹ॖͷͨΊ
    ͷश׳ͷ͜ͱͰ͋ΔɻΤΫετϦʔϜɾϓϩάϥ
    ϛϯά (XP) ͷϓϥΫςΟεͷҰͭͰɺڱٛʹ͸Ϗ
    ϧυ΍ςετɺΠϯεϖΫγϣϯͳͲΛܧଓతʹ
    ࣮ߦ͍ͯ͘͜͠ͱΛҙຯ͢Δɻ”
    – Wikipedia

    View Slide

  6. Ή͔͍ͣ͠…

    View Slide

  7. ܧଓతΠϯςάϨʔγϣϯ
    ඞਢ৚݅

    View Slide

  8. ܧଓతΠϯςάϨʔγϣϯ
    ඞਢ৚݅ - VCS
    όʔδϣϯ؅ཧγεςϜ(VCS)ͷಋೖ͸ඞਢʂ
    ෳ਺ͷόʔδϣϯΛखಈͰ؅ཧ͢Δ͜ͱ͸ෆՄೳ
    git/mercurialͳͲͷ෼ࢄܕ͕͓͢͢Ί
    GitHub/BitbucketͳͲͷαʔϏεΛར༻͢Δ͜ͱͰ؅ཧ
    ίετΛ࡟ݮ

    View Slide

  9. ܧଓతΠϯςάϨʔγϣϯ
    ඞਢ৚݅ - CIπʔϧ
    ܧଓతΠϯςάϨʔγϣϯπʔϧ
    αʔόʔΠϯετʔϧܕ SaaSܕ

    View Slide

  10. ܧଓతΠϯςάϨʔγϣϯ
    ඞਢ৚݅ - ςετʂ
    ࣗಈԽ͞Εͨςετ
    UnitTest
    ίʔυΧόϨοδ
    डೖςετ
    Selenium
    behat(BDD Story Test) - http://behat.org
    Codeception - http://codeception.com/

    View Slide

  11. ܧଓతΠϯςάϨʔγϣϯ
    ඞਢ৚݅ - ௨஌
    ໰୊Λൃݟͨ͠Β͙͢ʹ஌ΒͤΔ
    ΤϯδχΞ͚ͩͰͳ͘νʔϜશһʹ஌ΒͤΔ
    ͋Δछͷۓுײ͕ੜ·ΕΔ?
    ͙͢ʹؾͮ͘ɺݟམͱ͞Εͳ͍ϝσΟΞͰ఻͑Δ
    ໰୊͸࠷༏ઌͰରԠʂ

    View Slide

  12. ܧଓతΠϯςάϨʔγϣϯ
    ಘΒΕΔϝϦοτ

    View Slide

  13. ܧଓతΠϯςάϨʔγϣϯ
    ಘΒΕΔϝϦοτ
    ଐਓੑɺ୺຤ґଘͷഉআ
    ͍ͭͰ΋
    ୭Ͱ΋
    ؆୯ͳखॱͰ
    ࣮ߦͰ͖Δ

    View Slide

  14. ܧଓతΠϯςάϨʔγϣϯ
    ಘΒΕΔϝϦοτ
    ϓϩδΣΫτ։࢝౰ॳ͔Β܁Γฦ࣮͠ߦ
    ϏϧυΛࣗಈ࣮ߦ
    ຖ೔ఆ࣮࣌ߦ
    ιϑτ΢ΣΞʹमਖ਼͕ೖΔͨͼ
    ໰୊Λૉૣ͘
    ൃݟͰ͖Δ

    View Slide

  15. ܧଓతΠϯςάϨʔγϣϯ
    ಘΒΕΔϝϦοτ
    मਖ਼ίετ
    ཁٻఆٛ ઃܭ ։ൃ୯ମςετ ݁߹ςετ ϕʔλςετ ެ։ޙ
    ໰୊मਖ਼ʹ͔͔Δίετ
    ૣ͘ݟ͚ͭͯ
    ૉૣ͘௚͢ʂ

    View Slide

  16. ܧଓతΠϯςάϨʔγϣϯ
    ಘΒΕΔϝϦοτ
    ϓϩδΣΫτͷ
    ঢ়ଶΛ೺ѲͰ͖Δ

    View Slide

  17. ChatOpsͱ͸ʁ

    View Slide

  18. ChatOpsͱ͸ʁ
    νϟοτ্ͰίϚϯυΛೖྗ͠λεΫΛ࣮ߦ
    ιϑτ΢ΣΞͷσϓϩΠɺϏϧυͷ࣮ߦɺ
    λΠϜΧʔυͷଧࠁ…etc
    ιϑτ΢ΣΞ։ൃதͷ༷ʑͳঢ়ଶɾ৘ใΛνϟοτ
    ্ͰՄࢹԽ
    ίʔυͷCommitɺϏϧυ݁Ռɺ؂ࢹ݁ՌɺΤ
    ϥʔ಺༰…etc

    View Slide

  19. ChatOps
    ಘΒΕΔϝϦοτ

    View Slide

  20. ChatOps
    ಘΒΕΔϝϦοτ
    ࠓԿ͕ى͖͍ͯΔ͔ΛνʔϜશһ͕೺ѲͰ͖Δ
    ৘ใ΍ૢ࡞ΛҰՕॴʹू໿Ͱ͖Δ
    ൃੜ͍ͯ͠Δ͜ͱʹؔ͢Δٞ࿦Λͦͷ··ਐΊΒΕΔ
    ϞόΠϧͰ΋ར༻Ͱ͖Δ

    View Slide

  21. ܧଓతΠϯςάϨʔγϣϯ+ChatOps
    ฐࣾͰͷࣄྫ

    View Slide

  22. CI+ChatOps
    ฐࣾͰͷࣄྫ
    http://mega-hon.com/

    View Slide

  23. CI+ChatOps
    ฐࣾͰͷࣄྫ
    VCS
    crash report
    ϓϩϏδϣχϯά
    σϓϩΠ
    λεΫ/ετʔϦͷ؅ཧ
    CI
    ΞϓϦ
    νϟοτγεςϜ
    ։ൃ؀ڥ
    εςʔδϯά/ϓϩμΫγϣϯ؀ڥ
    I love Ubuntu

    View Slide

  24. CI+ChatOps
    ฐࣾͰͷࣄྫ - ։ൃ؀ڥ
    ։ൃ؀ڥ εςʔδϯά/ϓϩμΫγϣϯ؀ڥ
    ϓϩϏδϣχϯά

    View Slide

  25. CI+ChatOps
    ฐࣾͰͷࣄྫ - ࡞ۀͷྲྀΕ
    ίʔυΛίϛοτ
    [finish #ετʔϦʔ൪߸]
    ίϛοτΛ௨஌
    ετʔϦΛด͡Δ
    ετʔϦʹίϝϯτΛ͚ͭΔ
    ετʔϦͷ
    ঢ়ଶΛ௨஌

    View Slide

  26. CI+ChatOps
    ฐࣾͰͷࣄྫ - ࡞ۀͷྲྀΕ

    View Slide

  27. CI+ChatOps
    ฐࣾͰͷࣄྫ - ࡞ۀͷྲྀΕ
    PRΛ࡞੒
    PRΛ௨஌
    PRΛ௨஌
    ϏϧυΛࣗಈ࣮ߦ
    ςετ։࢝/݁ՌΛίϝϯτ
    ςετ݁ՌΛ
    ௨஌

    View Slide

  28. CI+ChatOps
    ฐࣾͰͷࣄྫ - ࡞ۀͷྲྀΕ

    View Slide

  29. CI+ChatOps
    ฐࣾͰͷࣄྫ - ࡞ۀͷྲྀΕ

    View Slide

  30. CI+ChatOps
    ฐࣾͰͷࣄྫ - ࡞ۀͷྲྀΕ

    View Slide

  31. CI+ChatOps
    ฐࣾͰͷࣄྫ - σϓϩΠ
    chat γεςϜ
    ίϚϯυೖྗ
    @megahon-bot deploy to staging
    σϓϩΠ݁Ռ
    HuBot
    ίϚϯυड৴
    σϓϩΠॲཧىಈ

    View Slide

  32. CI+ChatOps
    ฐࣾͰͷࣄྫ - σϓϩΠ

    View Slide

  33. CI+ChatOps
    ฐࣾͰͷࣄྫ - ΞϓϦͷঢ়ଶ௨஌
    chat γεςϜ
    ΞϓϦͷঢ়ଶ

    View Slide

  34. CI+ChatOps
    ฐࣾͰͷࣄྫ - ΞϓϦͷঢ়ଶ௨஌

    View Slide

  35. CI+ChatOps
    ฐࣾͰͷࣄྫ - ͦͷଞ
    chat γεςϜ
    ΫϥογϡϨϙʔτ

    View Slide

  36. CI+ChatOps
    ฐࣾͰͷࣄྫ - ͦͷଞ

    View Slide

  37. ·ͱΊ

    View Slide

  38. CI + ChatOps
    ໰୊Λૉૣ͘ൃݟ
    ϓϩδΣΫτͷঢ়ଶΛՄࢹԽ
    νʔϜ಺ͷίϛϡχέʔγϣϯͷԁ׈Խ

    View Slide

  39. ϩʔϚ͸̍೔ʹ
    ͯ͠੒Βͣ

    View Slide

  40. $*$IBU0QTͰ
    ҆৺ͯ͠εϐʔσΟʔʹ
    ։ൃΛਐΊ·͠ΐ͏ʂ
    Fin

    View Slide

  41. ͓·͚
    ॻళϒʔεͰ
    ઈࢍൢചதʂ
    13:30ʙαΠϯձ΋͋ΔΑ(><)

    View Slide