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ってなあに?
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ninomiya_hy
March 23, 2019
Technology
1
460
CI_CDってなあに?
ninomiya_hy
March 23, 2019
Tweet
Share
More Decks by ninomiya_hy
See All by ninomiya_hy
クラウドエンジニアってなあに?
ninomiya_hy
0
56
Other Decks in Technology
See All in Technology
[CV勉強会@関東 World Model 読み会] Orbis: Overcoming Challenges of Long-Horizon Prediction in Driving World Models (Mousakhan+, NeurIPS 2025)
abemii
0
140
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.9k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
Tebiki Engineering Team Deck
tebiki
0
24k
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
240
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
960
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
120
Context Engineeringの取り組み
nutslove
0
360
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
610
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
360
Featured
See All Featured
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
66
Embracing the Ebb and Flow
colly
88
5k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
130
Facilitating Awesome Meetings
lara
57
6.8k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
96
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
78
ラッコキーワード サービス紹介資料
rakko
1
2.3M
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
150
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
110
Transcript
CI/CDͬͯͳ͋ʹʁ ʙ ͨͬͨ̑ͰCI/CD͕ͳΜͱͳ͔͘Δʁ͓ ʙ 2019 / 03 / 23ɹϊʔϚϯτษڧձ #3
ೋٶ ӳɹ@ninomiya_hy
※ITʹશ͘৮Εͨ͜ͱͷͳ͍ํͰۃྗ͔ ΔΑ͏ʹ͍ͯ͠ΔʢͭΓͷʣ ͨΊɺਓʹΑͬͯ Γͳ͍༰ͱͳ͍ͬͯΔՄೳੑ͕͋Γ· ͢ɻ͝༰͍ࣻͩ͘͞ɻ ※༰ʹ͍ͭͯेͳϦαʔνΛ౿·͑ͯ ࡞͍ͯ͠·͕͢ɺສ͕Ұ͓͔͠ͳ͕͟͝ ͍·ͨ͠ΒɺޙͰίοιϦ͓͍͑ͩ͘͞ɻ
ͳʹͱ͋Ε ·ͣࣗݾհ͔Β
ࣗݾհ ೋٶ ӳʢʹͷΈ ͻͰΏ͖ʣ • Twitterɿˏninomiya_hy • ৬ۀɿΠϯϑϥΤϯδχΞʢH31.4~ʣ ɹ ɹITۀքະܦݧʢલ৬Πϯϑϥاۀͷਓࣄɾ࿑୲ʣ
ɹ ɹWeb੍࡞ͰՔ͛ΔΑ͏ʹͳΔͧʂʢHTML / CSSʣ ɹ ɹˠ όοΫΤϯυͷํ͕໘നͦ͏ʂʢRubyʣ ɹ ɹˠ ੩తܕݴޠͰجૅݻΊ͠Α͏ʂʢJavaʣ ɹ ɹˠ ϑϩϯτΤϯυָ͍͠Μ͚ʂʢJavaScriptʣ ɹ ɹͱුؾΛ܁Γฦ͢͏ͪʹͳ͔ͥAWSΛ৮Δ͜ͱʹ • ಛɿ ɹ ɹѪඤग़ / ABܕ / ډञ͖ / ΧϥΦέ͖
ͦΕͰ͔͜͜Β ຊʹೖΓ·͢
CI/CDͬͯʁ
CI/CDͬͯʁ ܧଓత ౷߹ CIʢContinuous Integrationʣ ɹιϑτΣΞ։ൃʹ͓͍ͯɺϏϧυ ɹςετΛࣗಈԽ͠ɺܧଓతʹ࣮ࢪ͢Δख๏
CI/CDͬͯʁ ܧଓత ౷߹ ܧଓత ୡ CIʢContinuous Integrationʣ ɹιϑτΣΞ։ൃʹ͓͍ͯɺϏϧυ ɹςετΛࣗಈԽ͠ɺܧଓతʹ࣮ࢪ͢Δख๏ CDʢContinuous
Deliveryʣ ɹCIʹΑͬͯςετ͞ΕͨίʔυͷϚʔδɺ ɹຊ൪ڥ͚ͷϏϧυΛࣗಈతʹߦ͍ɺ ɹຊ൪ڥʹσϓϩΠ͕Մೳͳঢ়ଶΛ͑Δख๏
❓ CI/CDͬͯʁ
CI/CDͬͯʁ CIʢContinuous Integrationʣ ɹιϑτΣΞ։ൃʹ͓͍ͯɺϏϧυ ɹςετΛࣗಈԽ͠ɺܧଓతʹ࣮ࢪ͢Δख๏ CDʢContinuous Deliveryʣ ɹCIʹΑͬͯςετ͞ΕͨίʔυͷϚʔδɺ ɹຊ൪ڥ͚ͷϏϧυΛࣗಈతʹߦ͍ɺ ɹຊ൪ڥʹσϓϩΠ͕Մೳͳঢ়ଶΛ͑Δख๏
ܧଓత ౷߹ ܧଓత ୡ
CI/CDͬͯʁ CI/CDʢͬ͘͟Γʣ
CI/CDͬͯʁ CI/CDʢͬ͘͟Γʣ = ιϑτΣΞ։ൃʹ͓͚Δ ɹ͋Ε͜ΕΛػցʹ͓·͔ͤͯ͠ ɹϥΫ͢ΔɺεϐʔυΛ্͛Δɺ ɹϛεΛݮΒͨ͢Ίͷख๏ ɹ
CI/CDͬͯʁ CI/CDʢͬ͘͟Γʣ = ιϑτΣΞ։ൃʹ͓͚Δ ɹ͋Ε͜ΕΛػցʹ͓·͔ͤͯ͠ ɹϥΫ͢ΔɺεϐʔυΛ্͛Δɺ ɹϛεΛݮΒͨ͢Ίͷख๏ ɹBefore:ెาͰ໎ࢠ
CI/CDͬͯʁ CI/CDʢͬ͘͟Γʣ = ιϑτΣΞ։ൃʹ͓͚Δ ɹ͋Ε͜ΕΛػցʹ͓·͔ͤͯ͠ ɹϥΫ͢ΔɺεϐʔυΛ্͛Δɺ ɹϛεΛݮΒͨ͢Ίͷख๏ ɹBefore:ెาͰ໎ࢠ → After:ࣗಈӡసͰతʂ
CI/CDͷग़൪͍ͭʁ
CI/CDͷग़൪͍ͭʁ ཁ݅ఆٛ ઃܭ ϓϩάϥϛϯά ςετ σϓϩΠ Ϗϧυ ※मਖ਼ߋ৽(৽ػೳͷՃͳͲ)Λ͢Δ߹
CI/CDͷग़൪͍ͭʁ ཁ݅ఆٛ ઃܭ ςετ σϓϩΠ Ϗϧυ ※मਖ਼ߋ৽(৽ػೳͷՃͳͲ)Λ͢Δ߹ $% $* ϓϩάϥϛϯά
CIʹ͍ͭͯ ৄ͘͠ݟͯΈΔ
CIʢܧଓతΠϯςάϨʔγϣϯʣ͕ͳ͍ͱ͖ɾɾɾ CIʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ ࠜͭͬͨ͘Ͱʂ ίϛοτ
CIʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ ෦ͭͬͨ͘Ͱʂ ࠜͭͬͨ͘Ͱʂ CIʢܧଓతΠϯςάϨʔγϣϯʣ͕ͳ͍ͱ͖ɾɾɾ ίϛοτ
CIʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ ෦ͭͬͨ͘Ͱʂ ࠜͭͬͨ͘Ͱʂ ݰؔͭͬͨ͘Ͱʂ CIʢܧଓతΠϯςάϨʔγϣϯʣ͕ͳ͍ͱ͖ɾɾɾ ίϛοτ
CIʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ ෦ͭͬͨ͘Ͱʂ ࠜͭͬͨ͘Ͱʂ ݰؔͭͬͨ͘Ͱʂ ͋Εʁҧײ͕͋Δͳɾɾɾ ݰؔͳ͍͠ ෦ͷচઃܭ௨Γɾɾɾ
͋ɺࠜͷܗ͕͓͔͍ͧ͠ʂ ςετ Ϗϧυ Έཱͯ·ʔ͢ CIʢܧଓతΠϯςάϨʔγϣϯʣ͕ͳ͍ͱ͖ɾɾɾ ίϛοτ
CIʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ ෦ͭͬͨ͘Ͱʂ ࠜͭͬͨ͘Ͱʂ ݰؔͭͬͨ͘Ͱʂ Ϗϧυ Έཱͯ·ʔ͢ ͳʹͬͯΜͩςϝΣοʂʂ
͢Έ·ͤΜɾɾɾ ͬͱૣ͘ؾ͍͍ͯΕ ͜Μͳ͜ͱʹͳΒͳ͔ͬͨͷʹɾɾɾ ͋Εʁҧײ͕͋Δͳɾɾɾ ݰؔͳ͍͠ ෦ͷচઃܭ௨Γɾɾɾ ͋ɺࠜͷܗ͕͓͔͍ͧ͠ʂ CIʢܧଓతΠϯςάϨʔγϣϯʣ͕ͳ͍ͱ͖ɾɾɾ ίϛοτ ςετ
CIʢܧଓతΠϯςάϨʔγϣϯʣ͕͋Δͱ͖ʂ CIʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ ࠜͭͬͨ͘Ͱʂ ʮ࡞ολσʯτݴϫϨλϥɹʹɹίϛοτ ɹϛཱςςɹɹɹɹɹɹɹʹɹϏϧυ ɹݕࠪγϚεɹɹɹɹɹɹɹʹɹςετ ίϛοτ
CIʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ ࠜͭͬͨ͘Ͱʂ ϛཱςϚε Ϗϧυ ࠜΨΦΧγΠσε CIʢܧଓతΠϯςάϨʔγϣϯʣ͕͋Δͱ͖ʂ ίϛοτ
ςετ
CIʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ ͭ͘Γͨ͠Ͱʂ CIʢܧଓతΠϯςάϨʔγϣϯʣ͕͋Δͱ͖ʂ ίϛοτ
CIʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ ͭ͘Γͨ͠Ͱʂ ϛཱςϚε Ϗϧυ ࠜ0,σε CIʢܧଓతΠϯςάϨʔγϣϯʣ͕͋Δͱ͖ʂ ίϛοτ
ςετ
CIʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ ෦ͭͬͨ͘Ͱʂ Ϗϧυ ͭ͘Γͨ͠Ͱʂ ϛཱςϚε ࠜ0,σε CIʢܧଓతΠϯςάϨʔγϣϯʣ͕͋Δͱ͖ʂ
ίϛοτ ςετ
CIʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ ෦ͭͬͨ͘Ͱʂ ϛཱςϚε Ϗϧυ ͭ͘Γͨ͠Ͱʂ ϛཱςϚε ࠜ0,σε
ࠜɾ෦0,σε CIʢܧଓతΠϯςάϨʔγϣϯʣ͕͋Δͱ͖ʂ ίϛοτ ςετ
CIʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ ෦ͭͬͨ͘Ͱʂ ݰؔͭͬͨ͘Ͱʂ ϛཱςϚε Ϗϧυ ͭ͘Γͨ͠Ͱʂ ϛཱςϚε
ࠜ0,σε ࠜɾ෦0,σε CIʢܧଓతΠϯςάϨʔγϣϯʣ͕͋Δͱ͖ʂ ίϛοτ ςετ
CIʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ ෦ͭͬͨ͘Ͱʂ ݰؔͭͬͨ͘Ͱʂ ϛཱςϚε Ϗϧυ Φʔϧ0,σε ϛཱςϚε
ͭ͘Γͨ͠Ͱʂ ϛཱςϚε ࠜ0,σε ࠜɾ෦0,σε CIʢܧଓతΠϯςάϨʔγϣϯʣ͕͋Δͱ͖ʂ ίϛοτ ςετ
CIʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ ෦ͭͬͨ͘Ͱʂ ݰؔͭͬͨ͘Ͱʂ ϛཱςϚε Ϗϧυ Φʔϧ0,σε ϛཱςϚε
ͭ͘Γͨ͠Ͱʂ ϛཱςϚε ࠜ0,σε ࠜɾ෦0,σε Ұճڭ͑ͨΒຖճᘳʹ ͬͯ͘ΕΔ͔ΒϥΫͩΘʙ ΞΠπΒɹɹɹɹɹΑΓ ࣄ͕͑ʔͳʂʂ ϛε͚ͬͨͲ͙͢ʹͤͨͰʂ CIʢܧଓతΠϯςάϨʔγϣϯʣ͕͋Δͱ͖ʂ ίϛοτ ςετ
CI͕ͳ͍ͱ͖ɾɾɾ ɹͦΕͧΕ͕࡞ΓऴΘ͔ͬͯΒॳΊͯશମͷύʔπΛΈཱͯΔͨΊɺ ɹϛε͕͋ͬͨͱ͖ʹݪҼΛಛఆ͢Δͷ͕େมɻӨڹൣғσΧ͍ɻ CIʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ
CI͕ͳ͍ͱ͖ɾɾɾ ɹͦΕͧΕ͕࡞ΓऴΘ͔ͬͯΒॳΊͯશମͷύʔπΛΈཱͯΔͨΊɺ ɹϛε͕͋ͬͨͱ͖ʹݪҼΛಛఆ͢Δͷ͕େมɻӨڹൣғσΧ͍ɻ CI͕͋Δͱ͖ʂ ɹҰਓ͕࡞ΓऴΘΔɺࣗಈͰύʔπΛΈཱͯͯ͘ΕΔͨΊɺ ɹϛε͕͋ͬͨΒ͙͢ʹ͔Δ͠ɺӨڹൣғ͕খ͍͞͏ͪʹͤΔɻ ɹɺࣗಈͰΈཱͯΔɹʹɹܧଓతΠϯςάϨʔγϣϯʢ౷߹ʣ CIʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ
Ϗϧυ
ͭ·ΓCI࠷ߴ
CDʹ͍ͭͯ ৄ͘͠ݟͯΈΔ
CDʢܧଓతσϦόϦʔʣɺ CIʢܧଓతΠϯςάϨʔγϣϯʣΛ֦ுͨ͠ख๏ CDʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ σϓϩΠ
CDʢܧଓతσϦόϦʔʣɺ CIʢܧଓతΠϯςάϨʔγϣϯʣΛ֦ுͨ͠ख๏ CDʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ σϓϩΠ ʮ࡞ολσʯτݴϫϨςɹɹɹʹɹίϛοτ ɹϛཱςςɹɹɹɹɹɹɹɹʹɹϏϧυ ɹݕࠪγλϞϊϮɹɹɹɹɹɹʹɹςετ
ɹຊ൪τϗϘಉδڥχ ɹӡϯσ࠷ऴνΣοΫγϚεɹʹɹεςʔδϯά
CDʢܧଓతσϦόϦʔʣɺ CIʢܧଓతΠϯςάϨʔγϣϯʣΛ֦ுͨ͠ख๏ CDʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ σϓϩΠ ʮ࡞ολσʯτݴϫϨςɹɹɹʹɹίϛοτ ɹϛཱςςɹɹɹɹɹɹɹɹʹɹϏϧυ ɹݕࠪγλϞϊϮɹɹɹɹɹɹʹɹςετ
ɹຊ൪τϗϘಉδڥχ ɹӡϯσ࠷ऴνΣοΫγϚεɹʹɹεςʔδϯά ϤϩγΫΦωΨΠγϚε εςʔδϯάڥσϊ࠷ऴνΣοΫ0, ΠπσϞຊ൪ڥχσϓϩΠσΩϚε εςʔδϯά
CDʢܧଓతσϦόϦʔʣɺ CIʢܧଓతΠϯςάϨʔγϣϯʣΛ֦ுͨ͠ख๏ CDʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ σϓϩΠ ʮ࡞ολσʯτݴϫϨςɹɹɹʹɹίϛοτ ɹϛཱςςɹɹɹɹɹɹɹɹʹɹϏϧυ ɹݕࠪγλϞϊϮɹɹɹɹɹɹʹɹςετ
ɹຊ൪τϗϘಉδڥχ ɹӡϯσ࠷ऴνΣοΫγϚεɹʹɹεςʔδϯά ϤϩγΫΦωΨΠγϚε σϓϩΠ εςʔδϯάڥσϊ࠷ऴνΣοΫ0, ΠπσϞຊ൪ڥχσϓϩΠσΩϚε εςʔδϯά σϓϩΠʹ͓٬͞Μ͕͍࢝ΊΔ ͔ͩΒػցʹউखʹΒΕͪΌ͋ࠔΔͥʂ ԶͷνΣοΫ݁Ռ0,ͩʂ σϓϩΠ͢Δͥʂ ※ CDʢܧଓతσϦόϦʔʣɺ ɹ͍ͭͰσϓϩΠͰ͖Δঢ়ଶʹ͢Δͷ
CDʢܧଓతσϦόϦʔʣɺ CIʢܧଓతΠϯςάϨʔγϣϯʣΛ֦ுͨ͠ख๏ CDʹ͍ͭͯৄ͘͠ݟͯΈΔ PG ςετ Ϗϧυ σϓϩΠ ʮ࡞ολσʯτݴϫϨςɹɹɹʹɹίϛοτ ɹϛཱςςɹɹɹɹɹɹɹɹʹɹϏϧυ ɹݕࠪγλϞϊϮɹɹɹɹɹɹʹɹςετ
ɹຊ൪τϗϘಉδڥχ ɹӡϯσ࠷ऴνΣοΫγϚεɹʹɹεςʔδϯά ϤϩγΫΦωΨΠγϚε σϓϩΠ εςʔδϯάڥσϊ࠷ऴνΣοΫ0, ΠπσϞຊ൪ڥχσϓϩΠσΩϚε εςʔδϯά εςʔδϯά0,ϦϣΧΠ σϓϩΠγϚε ※ CDʢܧଓతσϦόϦʔʣɺ ɹ͍ͭͰσϓϩΠͰ͖Δঢ়ଶʹ͢Δͷ ɹCDʢܧଓతσϓϩΠʣಋೖ͢Δͱ ɹίϛοτʙσϓϩΠ·ͰࣗಈԽͰ͖Δ
·ͱΊΔͱ
·ͱΊΔͱ ෦ͭͬͨ͘Ͱʂ ݰؔͭͬͨ͘Ͱʂ ͭ͘Γͨ͠Ͱʂ ίϛοτ
ɹɹɹ$*ʢܧଓతΠϯςάϨʔγϣϯʣ ·ͱΊΔͱ ෦ͭͬͨ͘Ͱʂ ݰؔͭͬͨ͘Ͱʂ ϛཱςϚε Φʔϧ0,σε ϛཱςϚε ͭ͘Γͨ͠Ͱʂ ϛཱςϚε ࠜ0,σε
ࠜɾ෦0,σε ςετ Ϗϧυ ίϛοτ
ɹɹɹ$*ʢܧଓతΠϯςάϨʔγϣϯʣ ɹɹɹ$%ʢܧଓతσϦόϦʔʣ ·ͱΊΔͱ ෦ͭͬͨ͘Ͱʂ ݰؔͭͬͨ͘Ͱʂ ϛཱςϚε Φʔϧ0,σε ϛཱςϚε ͭ͘Γͨ͠Ͱʂ ϛཱςϚε
ࠜ0,σε ࠜɾ෦0,σε ςετ Ϗϧυ ίϛοτ εςʔδϯά σϓϩΠ
ɹɹɹ$*ʢܧଓతΠϯςάϨʔγϣϯʣ ɹɹɹ$%ʢܧଓతσϦόϦʔʣ ·ͱΊΔͱ ෦ͭͬͨ͘Ͱʂ ݰؔͭͬͨ͘Ͱʂ ϛཱςϚε Φʔϧ0,σε ϛཱςϚε ͭ͘Γͨ͠Ͱʂ ϛཱςϚε
ࠜ0,σε ࠜɾ෦0,σε ςετ Ϗϧυ ίϛοτ εςʔδϯά σϓϩΠ or ※ CDʢܧଓతσϓϩΠʣ ɹɹɹ$%ʢܧଓతσϓϩΠʣ
ɹɹɹ$*ʢܧଓతΠϯςάϨʔγϣϯʣ ɹɹɹ$%ʢܧଓతσϦόϦʔʣ ·ͱΊΔͱ ෦ͭͬͨ͘Ͱʂ ݰؔͭͬͨ͘Ͱʂ ϛཱςϚε Φʔϧ0,σε ϛཱςϚε ͭ͘Γͨ͠Ͱʂ ϛཱςϚε
ࠜ0,σε ࠜɾ෦0,σε ςετ Ϗϧυ ίϛοτ εςʔδϯά σϓϩΠ or ※ CDʢܧଓతσϓϩΠʣ ɹɹɹ$%ʢܧଓతσϓϩΠʣ ͋ͳͨͷ։ൃڥʹCI/CDπʔϧΛಋೖͯ͠༡ΜͰΈΑ͏ʂ