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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
410
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
250
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
200
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
170
[CV勉強会@関東 World Model 読み会] Orbis: Overcoming Challenges of Long-Horizon Prediction in Driving World Models (Mousakhan+, NeurIPS 2025)
abemii
0
140
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.4k
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
240
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
360
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
260
Greatest Disaster Hits in Web Performance
guaca
0
260
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
Featured
See All Featured
How to build a perfect <img>
jonoalderson
1
4.9k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
320
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
250
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Navigating Team Friction
lara
192
16k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
76
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Context Engineering - Making Every Token Count
addyosmani
9
660
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
Automating Front-end Workflow
addyosmani
1371
200k
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πʔϧΛಋೖͯ͠༡ΜͰΈΑ͏ʂ