Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CI/CD がなかった会社で勝手に CI/CD を始めた話 (仮)
Search
森井ゴンザレス
August 05, 2019
Programming
0
160
CI/CD がなかった会社で勝手に CI/CD を始めた話 (仮)
勤務先を CircleCI 中毒にした軌跡
森井ゴンザレス
August 05, 2019
Tweet
Share
More Decks by 森井ゴンザレス
See All by 森井ゴンザレス
Product Manager の Job Description
morygonzalez
3
2.7k
Rails application development in API era
morygonzalez
0
510
Lokka についての LT
morygonzalez
0
380
BitBar で快適な生活
morygonzalez
1
3.6k
君も Arel おじさんになって ActiveRecord のクエリを高速化しよう / Let's become Uncle Arel
morygonzalez
1
290
gyowitter のご紹介
morygonzalez
0
34k
Other Decks in Programming
See All in Programming
Go1.25からのGOMAXPROCS
kuro_kurorrr
1
720
try-catchを使わないエラーハンドリング!? PHPでResult型の考え方を取り入れてみよう
kajitack
3
510
「ElixirでIoT!!」のこれまでとこれから
takasehideki
0
360
F#で自在につくる静的ブログサイト - 関数型まつり2025
pizzacat83
0
300
A comprehensive view of refactoring
marabesi
0
660
Create a website using Spatial Web
akkeylab
0
290
生成AIで日々のエラー調査を進めたい
yuyaabo
0
590
実はすごいスピードで進化しているCSS
hayato_yokoyama
0
120
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
790
統一感のある Go コードを生成 AI の力で手にいれる
otakakot
0
3k
既存デザインを変更せずにタップ領域を広げる方法
tahia910
1
230
Cline指示通りに動かない? AI小説エージェントで学ぶ指示書の書き方と自動アップデートの仕組み
kamomeashizawa
1
520
Featured
See All Featured
It's Worth the Effort
3n
184
28k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
How to train your dragon (web standard)
notwaldorf
92
6.1k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
6
690
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
RailsConf 2023
tenderlove
30
1.1k
Stop Working from a Prison Cell
hatefulcrawdad
269
20k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Building a Modern Day E-commerce SEO Strategy
aleyda
41
7.3k
Into the Great Unknown - MozCon
thekraken
39
1.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Transcript
CI/CD ͕ͳ͔ͬͨձࣾͰউ खʹ CI/CD Λ࢝Ίͨ (Ծ) σϓϩΠ͠night in Ԭ @morygonzalez
ࣗݾհ • YAMAP ͰαʔόʔαΠυΤϯδχΞ => ࡢ Product Manager ʹδϣ ϒνΣϯδ
• Ruby on Rails Ͱ API Λ࡞ΔࣄΛ 8 ͘Β͍ • Ruby Ͱ࡞ΒΕͨ WordPress Ϋϩʔϯͷ Lokka ͷϝϯςφϯεΛࡉʑͱ • CI ྺ • Jenkins ྺ 3 • CircleCI ྺ 3 • Werker Travis গʑ
ࠓͷൃදʹ͍ͭͯ ͡ΌΜ͡ΌΜ CI/CD ͬͯΔํʹ͍༰͔͠ Εͳ͍Ͱ͢ !
CircleCI ͱͷग़ձ͍ • લͷ৬ • ԿͰ CircleCI ͰߦΘΕ͍ͯ ͨ •
Ϣχοτςετ • E2E • Produc0on αʔόʔͷ ιʔείʔυͷσϓϩΠ • AWS Πϯϑϥͷߏங • AWS ΠϯϑϥͷϓϩϏ δϣχϯά
ͳΜͰ CI ͰΔ͜ͱͷྑ͞ • ࣮ߦཤྺ͕Δ • σϓϩΠঢ়گͷՄࢹԽ • ϦϞʔτϫʔΫͩͬͨͨΊɺσϓϩΠϑϩʔͷՄࢹԽ͕ॏཁ •
୭ͰσϓϩΠՄೳʹ • CI ͔ΒσϓϩΠͰ͖Δ ≒ ଐਓੑͷഉআ • ʮ◦◦͞Μͷύιίϯ͔Β͔͠σϓϩΠͰ͖ͳ͍ʯΛͳ͘͢ • ൿͷλϨΛιʔείʔυԽ • ৽ೖࣾһೖࣾޙͰσϓϩΠՄೳʹ
Ͳ͏࢝Ί͔ͨ • YAMAP ʹೖࣾ࣌ɺ·ͩςετ͕ճΔΈ ܧଓతͳσϓϩΠڥͳ͔ͬͨ • উखʹ CI ͨ͠Γ CD
͢ΔΑ͏ʹ • CircleCI ϓϥΠϕʔτϦϙδτϦͰδϣϒҰ ͭ·ͰແྉͳͷͰήϦϥతͳ CI/CD Λ࢝Ί͢ ͍
ͬͱΔײͮ͘Γ • ͱʹ͔͘ςετΛॻ͖ɺ CI Λ࣮ߦ͠ɺ݁ՌΛ Slack ʹ௨͢Δ • ͍͠ͱ͜ΖંͬͯͰɺͱʹ͔͘ Git
Ϧ ϙδτϦʹίʔυ͕ϓογϡ͞ΕΔͱ CI ͕ߦΘ Εɺ Slack ʹ݁Ռ͕௨͞ΕΔΈΛ࡞Δ • ʮͳΜ͔Α͏Θ͔ΒΜ͚ͲͬͱΔײʯͷৢ
Keep Green • ͕ࣗมߋ͢ΔՕॴ͚ͩඞͣςετίʔυΛ ηοτͰॻ͘Α͏ʹ͢Δ • άϦʔϯͳঢ়ଶΛҡ࣋͢Δ • ͦ͏͜͏͍ͯ͠Δ͏ͪʹଞͷਓ͕ग़ͨ͠ Pull
Request ͰϏϧυ͕ίέΔ • όά͕ະવʹ͛ͨ͜ͱΛ৮ΕճΔ
σϓϩΠΛࣗಈԽ͢Δ • master ϒϥϯνʹରͯ͠ग़͞Εͨ Pull Request ͕ Merge ͞ΕΔ •
CircleCI Ͱςετ͕࣮ߦ͞ΕΔ • ςετ͕ޭ͢Δͱ CircleCI ্͔ΒσϓϩΠ͕ߦΘΕΔ
API doc ੜΛࣗಈԽ͢Δ • CircleCI ্Ͱࣗಈੜ͞Εͨ API υΩϡϝϯτΛ GitHub ʹϓογϡ
Chat ops ͱΈ߹Θ ͤΔ 1. Hubot ʹ͔͚͠Δ 2. Hubot ͕
deploy ༻ͷ Pull Request ࡞Δ 3. Pull Request Λ Merge 4. CircleCI ͔ΒσϓϩΠ։࢝
৬Λ CircleCI ґଘ ʹ • ۀϑϩʔʹ CI ΛΈࠐΈɺ ৬Λ CircleCI
தಟʹͯ͠͠ ·͏
ݱࡏͷฐࣾ • ιʔείʔυ͔ΒυΩϡϝϯ τΛࣗಈੜ͠ S3 ʹอଘ • ϞόΠϧΞϓͷϦϦʔεϏϧ υͷ࡞ͱ App
Store ͷਃ ΛࣗಈԽ • AWS SSM Λͬͨݕূڥ ͷࣗಈσϓϩΠ • …
CI/CD ͡ΊΔͷʹ͏͚ͬͯͭ • Docker ͷීٴͰɺεΫϦϓτݴޠͰϏϧυͷϓ ϩηε͕ൃੜ • ΫϥυϦιʔε͕҆ՁʹͳΓɺ Blue-Green Deployment
͕͓खܰʹ • ͓ۈΊઌΛ CI தಟʹ͍͖ͯ͠·͠ΐ͏