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
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.3k
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
150
Context Engineeringの取り組み
nutslove
0
360
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
470
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
140
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
200
Agent Skils
dip_tech
PRO
0
110
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
670
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
120
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.5k
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1371
200k
Git: the NoSQL Database
bkeepers
PRO
432
66k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Are puppies a ranking factor?
jonoalderson
1
2.7k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
380
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
93
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πʔϧΛಋೖͯ͠༡ΜͰΈΑ͏ʂ