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

CI/CD がなかった会社で勝手に CI/CD を始めた話 (仮)

CI/CD がなかった会社で勝手に CI/CD を始めた話 (仮)

勤務先を CircleCI 中毒にした軌跡

森井ゴンザレス

August 05, 2019
Tweet

More Decks by 森井ゴンザレス

Other Decks in Programming

Transcript

  1. ࣗݾ঺հ • YAMAP ͰαʔόʔαΠυΤϯδχΞ => ࡢ೥ Product Manager ʹδϣ ϒνΣϯδ

    • Ruby on Rails Ͱ API Λ࡞Δ࢓ࣄΛ 8 ೥͘Β͍ • Ruby Ͱ࡞ΒΕͨ WordPress Ϋϩʔϯͷ Lokka ͷϝϯςφϯεΛࡉʑͱ • CI ྺ • Jenkins ྺ 3 ೥ • CircleCI ྺ 3 ೥ • Werker ΍ Travis ΋গʑ
  2. CircleCI ͱͷग़ձ͍ • લͷ৬৔ • ԿͰ΋ CircleCI ͰߦΘΕ͍ͯ ͨ •

    Ϣχοτςετ • E2E • Produc0on αʔόʔ΁ͷ ιʔείʔυͷσϓϩΠ • AWS Πϯϑϥͷߏங • AWS Πϯϑϥ΁ͷϓϩϏ δϣχϯά
  3. ͳΜͰ΋ CI Ͱ΍Δ͜ͱͷྑ͞ • ࣮ߦཤྺ͕࢒Δ • σϓϩΠঢ়گͷՄࢹԽ • ϦϞʔτϫʔΫͩͬͨͨΊɺσϓϩΠϑϩʔͷՄࢹԽ͕ॏཁ •

    ୭Ͱ΋σϓϩΠՄೳʹ • CI ͔ΒσϓϩΠͰ͖Δ ≒ ଐਓੑͷഉআ • ʮ◦◦͞Μͷύιίϯ͔Β͔͠σϓϩΠͰ͖ͳ͍ʯΛͳ͘͢ • ൿ఻ͷλϨΛιʔείʔυԽ • ৽ೖࣾһ΋ೖࣾޙ਺೔ͰσϓϩΠՄೳʹ
  4. Ͳ͏࢝Ί͔ͨ • YAMAP ʹೖࣾ౰࣌ɺ·ͩςετ͕ճΔ࢓૊Έ΍ ܧଓతͳσϓϩΠ؀ڥ͸ͳ͔ͬͨ • উखʹ CI ͨ͠Γ CD

    ͢ΔΑ͏ʹ • CircleCI ͸ϓϥΠϕʔτϦϙδτϦͰ΋δϣϒҰ ͭ·ͰແྉͳͷͰήϦϥతͳ CI/CD Λ࢝Ί΍͢ ͍
  5. ΍ͬͱΔײͮ͘Γ • ͱʹ͔͘ςετΛॻ͖ɺ CI Λ࣮ߦ͠ɺ݁ՌΛ Slack ʹ௨஌͢Δ • ೉͍͠ͱ͜Ζ͸୺ંͬͯͰ΋ɺͱʹ͔͘ Git

    Ϧ ϙδτϦʹίʔυ͕ϓογϡ͞ΕΔͱ CI ͕ߦΘ Εɺ Slack ʹ݁Ռ͕௨஌͞ΕΔ࢓૊ΈΛ࡞Δ • ʮͳΜ͔Α͏Θ͔ΒΜ͚Ͳ΍ͬͱΔײʯͷৢ੒
  6. σϓϩΠΛࣗಈԽ͢Δ • master ϒϥϯνʹରͯ͠ग़͞Εͨ Pull Request ͕ Merge ͞ΕΔ •

    CircleCI Ͱςετ͕࣮ߦ͞ΕΔ • ςετ͕੒ޭ͢Δͱ CircleCI ্͔ΒσϓϩΠ͕ߦΘΕΔ
  7. Chat ops ͱ૊Έ߹Θ ͤΔ 1. Hubot ʹ࿩͔͚͠Δ 2. Hubot ͕

    deploy ༻ͷ Pull Request ࡞Δ 3. Pull Request Λ Merge 4. CircleCI ͔ΒσϓϩΠ։࢝
  8. ݱࡏͷฐࣾ • ιʔείʔυ͔ΒυΩϡϝϯ τΛࣗಈੜ੒͠ S3 ʹอଘ • ϞόΠϧΞϓͷϦϦʔεϏϧ υͷ࡞੒ͱ App

    Store ΁ͷਃ ੥ΛࣗಈԽ • AWS SSM Λ࢖ͬͨݕূ؀ڥ ΁ͷࣗಈσϓϩΠ • …