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
200
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CI/CD がなかった会社で勝手に CI/CD を始めた話 (仮)
勤務先を CircleCI 中毒にした軌跡
森井ゴンザレス
August 05, 2019
More Decks by 森井ゴンザレス
See All by 森井ゴンザレス
Product Manager の Job Description
morygonzalez
3
2.8k
Rails application development in API era
morygonzalez
0
570
Lokka についての LT
morygonzalez
0
460
BitBar で快適な生活
morygonzalez
1
3.9k
君も Arel おじさんになって ActiveRecord のクエリを高速化しよう / Let's become Uncle Arel
morygonzalez
1
320
gyowitter のご紹介
morygonzalez
0
34k
Other Decks in Programming
See All in Programming
1年で人数1.5倍、PR数5.5倍増。 品質とアウトカムはどうなったか、 何が効いたか
ike002jp
0
140
【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
panda728
PRO
2
280
yield再入門 #phpcon
o0h
PRO
0
710
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
110
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
410
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.6k
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
220
フィードバックで育てるAI開発
kotaminato
1
120
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
350
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.6k
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
270
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.3k
Building Applications with DynamoDB
mza
96
7.1k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Mind Mapping
helmedeiros
PRO
1
290
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
Site-Speed That Sticks
csswizardry
13
1.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Designing for humans not robots
tammielis
254
26k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
260
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
190
BBQ
matthewcrist
89
10k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
330
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 தಟʹ͍͖ͯ͠·͠ΐ͏