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
130
CI/CD がなかった会社で勝手に CI/CD を始めた話 (仮)
勤務先を CircleCI 中毒にした軌跡
森井ゴンザレス
August 05, 2019
Tweet
Share
More Decks by 森井ゴンザレス
See All by 森井ゴンザレス
Product Manager の Job Description
morygonzalez
3
2.6k
Rails application development in API era
morygonzalez
0
470
Lokka についての LT
morygonzalez
0
340
BitBar で快適な生活
morygonzalez
1
3.4k
君も Arel おじさんになって ActiveRecord のクエリを高速化しよう / Let's become Uncle Arel
morygonzalez
1
260
gyowitter のご紹介
morygonzalez
0
34k
Other Decks in Programming
See All in Programming
[Do iOS '24] Ship your app on a Friday...and enjoy your weekend!
polpielladev
0
100
Amazon Bedrock Agentsを用いてアプリ開発してみた!
har1101
0
330
LLM生成文章の精度評価自動化とプロンプトチューニングの効率化について
layerx
PRO
2
190
Snowflake x dbtで作るセキュアでアジャイルなデータ基盤
tsoshiro
2
520
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
100
型付き API リクエストを実現するいくつかの手法とその選択 / Typed API Request
euxn23
8
2.2k
A Journey of Contribution and Collaboration in Open Source
ivargrimstad
0
910
EventSourcingの理想と現実
wenas
6
2.3k
.NET のための通信フレームワーク MagicOnion 入門 / Introduction to MagicOnion
mayuki
1
1.5k
シールドクラスをはじめよう / Getting Started with Sealed Classes
mackey0225
4
640
as(型アサーション)を書く前にできること
marokanatani
10
2.6k
Make Impossible States Impossibleを 意識してReactのPropsを設計しよう
ikumatadokoro
0
170
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1030
460k
Building an army of robots
kneath
302
43k
Faster Mobile Websites
deanohume
305
30k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
Optimizing for Happiness
mojombo
376
70k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
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 தಟʹ͍͖ͯ͠·͠ΐ͏