Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
「カスタマイズ」から「標準化」へ。 CI as a Service の考え方を取り入れて D...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Hiroshi Maekawa (a.k.a. Posaune)
October 22, 2018
Programming
520
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
「カスタマイズ」から「標準化」へ。 CI as a Service の考え方を取り入れて DevOps を加速させよう!
#devkan 「CI/CDの話」発表資料です。
Hiroshi Maekawa (a.k.a. Posaune)
October 22, 2018
More Decks by Hiroshi Maekawa (a.k.a. Posaune)
See All by Hiroshi Maekawa (a.k.a. Posaune)
サーバーレス時代にこそ 身につけたいTDD入門
posaunehm
0
310
大正Geek Night 2018-08-27
posaunehm
0
120
Other Decks in Programming
See All in Programming
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
380
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
430
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
800
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
APNsからLive Activityを開始する話
yumnumm
0
170
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
Performance Optimization With LLMs
xleitix
0
140
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
3
440
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.7k
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
190
AWSに止められる覚悟してますか?
morizo_1984
2
540
Workers Cache を知る
syumai
0
370
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
310
YesSQL, Process and Tooling at Scale
rocio
174
15k
Statistics for Hackers
jakevdp
799
230k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
HDC tutorial
michielstock
2
960
Rails Girls Zürich Keynote
gr2m
96
14k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
How to Ace a Technical Interview
jacobian
280
24k
Transcript
ʮΧελϚΠζʯ͔Βʮඪ४Խʯɻ CI as a Service ͷߟ͑ํΛऔΓೖΕͯ DevOps ΛՃͤ͞Α͏ʂ
ΪϧυϫʔΫεגࣜձࣾ લ തࢤ
͡Ίʹ
ΪϧυϫʔΫεʹ͍ͭͯ
None
None
None
ͤΓΧΠθϯΞϓϦͷͰىͬͨ͜CIମݧ • ே4࣌ͷڕࢢͰ࣮ূ࣮ݧ • ࣮ݧதʹόάൃੜʂʂ • ✨ ͦͷͰόάमਖ਼͠ɺGithubʹPush • CircleCIͰϏϧυ/ςετ࣮ߦ
• खݩͷΞϓϦʹमਖ਼൛͕৴͞Εɺݕূଓߦʂʂ ͍͍ͩͨɺ͘Β͍Ͱղܾ
CI/CDඪ४ࡌͷ։ൃʹڵຯ͋Δํ ΪϧυϫʔΫε·Ͱʂ https://guildworks.jp/contacts/new.html
ʮΧελϚΠζʯ͔Βʮඪ४Խʯɻ CI as a Service ͷߟ͑ํΛऔΓೖΕͯ DevOps ΛՃͤ͞Α͏ʂ
ΪϧυϫʔΫεגࣜձࣾ લ തࢤ
ࣗݾհ • ΪϧυϫʔΫεגࣜձࣾ ALMΤϯδχΞ • Application Lifecycle Management • ಘҙٕ
• ։ൃ • αʔόʔαΠυɿ Java • "OESPJE+BWB→,PUPMJO • iOS: Swift • Webϑϩϯτɿ Vuejs, Angular/Ionic • ͦͷଞɿ C# ͕Ұ൪͖͚ͩͲ࠷ۙॻ͍͍ͯͳ͍… • CI / CDͷඋ • ࠷ۙͬͺΒCircleCI
ͯ͞ɺຊɻ
Agenda • CI/CDͷྺ࢙͓͞Β͍ • ͳͥCI as a Service ͳͷ͔ •
CI as a Service ͱͲΜͳͷ ʁ • ·ͱΊ
CI/CDͷྺ࢙ʢJenkinsΛத৺ͱͨ͠ʣ 2005 2011 2018 Jenkins X 2004 2008 2013 Kubernetes
2014 2016 2011 Docker Jenkins 2.0 Travis CI Ϗϧυͷ ίϯςφԽ
ͳͥ CI as a Serviceͳͷ͔ - Jenkinsͷޭࡑ - Jenkins৬ਓ -
CI as a Service ͱ͍͏खஈ - CI as a Service ͷϝϦοτ
Jenkinsͷޭࡑ • JenkinsCI ΛͨΓલʹͨ͠ • ʮఆظతʹԿ͔Λ࣮ߦ͢Δʯͱ͍͏࡞ۀ͕ϧʔνϯͰ ͋Δ͜ͱΛΈΜͳ͕ೝࣝͨ͠ • ʮ໘͍͔͘͞ΒJenkinsͰΒͳ͍ʁʯͱ͍͏จԽ͕ ৢ͞Εͨ
• ͳΜͰJenkinsͰΔਓ͕૿͖͑ͯͨ • Jenkins৬ਓͷੜ
Jenkins৬ਓ • ෳͷϓϥάΠϯΛΈ߹ΘͤͨΓ࢝͠ΊΔͱɺಠࣗͷจԽ͕ Ͱ͖ͯϝϯς͕͘͠ͳΔ • ઃఆͷϘϦϡʔϜ͕ଟ͘ͳΓ͗ͯ͢ɺཧෆೳʹͳΔʢJenkins ઃఆΛίʔυԽͰ͖ͳ͔ͬͨʣ • Jenkins͕Πϯετʔϧ͞Ε͍ͯΔϚγϯͷߏཧΛͪΌΜͱ ͍ͯ͠ͳ͍ͱɺʮJenkins্Ͱಈ͍ͯ·ͨ͠ʯͱ͍͏͕ɻ
• ʮΈ͏Β͞ΜʢԾ໊ʣ͕͍ͳ͍ͷͰϏϧυͰ͖·ͤΜʂʯͱ͔ ݴΘΕ࢝ΊΔɻ • ͦΜͳͱ͜ΖͰ৬ਓ͕͍ͳ͘ͳͬͨΒɺɺɺ
ςετࣗಈԽͷύλʔϯݴޠ http://www.slideshare.net/Posaune/agile-tourosaka
CI as a Service ͱ͍͏खஈ • Ϋϥυ্ʹߏங͞ΕͨϏϧυαʔό • GithubͳͲ֎෦ΞΫηεՄೳͳϨϙδτϦ͕ඞཁ •
ར༻ऀܹ૿த • Github GitlabͳͲͷιʔεཧαʔϏεΈࠐΈ ͷCI ServiceΛఏڙ։࢝࢝͠Ίͨ • https://github.com/features/actions
ࢀߟ: Github Actions
CI as a Service ͷಛ • ϏϧυɾσϓϩΠຖʹϑϨογϡͳVMΛىಈ͢Δ Έ͕औΒΕ͍ͯΔ • ؆୯ͳઃఆGUIɺෳࡶͳઃఆΈࠐΈͷઃఆϑΝΠ
ϧͰߦ͏ʢYAMLϑΝΠϧ͕ଟ͍) • GithubͳͲͷϗεςΟϯάαʔϏεHeroku/AWSͳ Ͳͱͷ࿈ܞػߏΛඋ͑Δ
CI as a Service ͷ͍͍ͱ͜Ζ • ্ཱͪ͛ઃఆϘλϯҰͭɺ͋ͬͱ͍͏ؒʹCI͕։࢝ Ͱ͖Δ • ڥͷFresh͕͞อূ͞Ε͍ͯΔͷͰɺڥґଘΤϥʔ
ͷಛఆ͕༰қʹͳΔ • ෳࡶͳઃఆϨϙδτϦͷYAMLͳͲʹॻ͘ͷͰɺ όʔδϣϯཧͰ͖Δɻ
CI as a Service ͱ৬ਓ • ϚγϯߏؚΊͯɺΔ͜ͱ͕΄΅ίʔυԽ͞Ε͍ͯΔ = ʮ৬ਓ͔͠Βͳ͍ใʯΛۃখԽͰ͖Δ 㱺
৬ਓͷࣝଐਓԽΛճආ • ͳΜ͔ͩΜͩͰΕΔ͜ͱʹ੍ݶ͕͋Δ = ৬ਓࠢΛదʹ੍ݶͰ͖Δ 㱺 ຊདྷCIʹෆదͳ͜ͱΛΒͤͯ͠·͏Λճආ
CI as a Service ͱͲΜͳͷ ʁ - CircleCIΛྫʹͱͬͯߟ͑Δ - -
CircleCIͰϏϧυ͢Δʹʁ - config.ymlͷதΛΔ - ଞʹCircleCIͰͰ͖Δ͜ͱ
Γ·͢
CircleCIͰϏϧυͯ͠ΈΑ͏ʂ ʙͦͷ1ʙ • GithubΞΧϯτΛ࿈ܞ͢Δ • Build Project Λઃఆ͢Δ •
CircleCIͰϏϧυͯ͠ΈΑ͏ʂ ʙͦͷ1ʙ • ࣗಈੜ͞ΕͨconfigϑΝΠϧΛίϐϖ͢Δ • ʢ͓͠·͍ʣ
None
͔Β͘Γ • ඪ४తͳϏϧυγεςϜͰߏங͞Ε͍ͯΕɺ উखʹͦΕʹैͬͨϏϧυΛ࡞ͬͯ͘ΕΔ • maven / gradle • npm
/ yarn • Rake & Bundle • ͜ͷΑ͏ʹɺͰ͖Δ͚ͩʮඪ४ʹै͏ʯͷ͕ CI as a Service Λ͏ϙΠϯτ
config.ymlͷதΛΔ ᶃ ϙΠϯτᶅ ϏϧυΩϟογϡ ϙΠϯτᶄ npm ϙΠϯτᶃ Docker ϙΠϯτᶆ
ޙଓͷϏϧυͷͨΊͷ ݁Ռอ࣋
config.ymlͷதΛΔᶄ ϙΠϯτᶇ ෳͷϏϧυύλʔϯ ϙΠϯτ ᶈ AWSͱͷ࿈ܞ
config.ymlͷதΛΔᶅ ϙΠϯτ ᶉ ෳϏϧυͷ࿈ܞ
ଞʹCircleCIͰͰ͖Δ͜ͱ • MacOSϏϧυ • AWS CodeDeploy࿈ܞ / Heroku࿈ܞ • SlackͳͲChatOpsͱͷ࿈ܞ
• SSHͰίϯςφʹଓ • ϩʔΧϧʹCircleCIͷΫϩʔϯΛ࡞ • CircleCI 2.0 ͔Βಋೖ
·ͱΊ • CI as a Service ɺؾܰʹCIΛ࢝ΊΔ࠷ྑͷखஈ • ඪ४తͳελΠϧʹ߹ΘͤΔ͜ͱͰɺߴʹCI/CD Λ։ൃʹऔΓࠐΊΔ
• ͜ΕΛػձʹඪ४Λֶ΅͏ • ϏϧυγεςϜ / Docker / AWS • Github / CircleCI མͪͨͱ͖ͷ͜ͱߟ͓͑ͯ͜͏ • CircleCI Travis ϩʔΧϧϏϧυͰ͖Δ͔Β…