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 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
1
500
「カスタマイズ」から「標準化」へ。 CI as a Service の考え方を取り入れて DevOps を加速させよう!
#devkan 「CI/CDの話」発表資料です。
Hiroshi Maekawa (a.k.a. Posaune)
October 22, 2018
Tweet
Share
More Decks by Hiroshi Maekawa (a.k.a. Posaune)
See All by Hiroshi Maekawa (a.k.a. Posaune)
サーバーレス時代にこそ 身につけたいTDD入門
posaunehm
0
300
大正Geek Night 2018-08-27
posaunehm
0
110
Other Decks in Programming
See All in Programming
条件判定に名前、つけてますか? #phperkaigi #c
77web
1
350
クライアントワークでSREをするということ。あるいは事業会社におけるSREと同じこと・違うこと
nnaka2992
1
350
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
120
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
230
Fundamentals of Software Engineering In the Age of AI
therealdanvega
2
260
Ruby and LLM Ecosystem 2nd
koic
1
1k
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
240
技術検証結果の整理と解析をAIに任せよう!
keisukeikeda
0
130
AWS×クラウドネイティブソフトウェア設計 / AWS x Cloud-Native Software Design
nrslib
16
3.3k
Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-00-beacon
monochromegane
4
440
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
400
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
1.9k
Featured
See All Featured
Making Projects Easy
brettharned
120
6.6k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
150
Paper Plane (Part 1)
katiecoart
PRO
0
5.7k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.4k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Marketing to machines
jonoalderson
1
5k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
220
Abbi's Birthday
coloredviolet
2
5.5k
Six Lessons from altMBA
skipperchong
29
4.2k
Deep Space Network (abreviated)
tonyrice
0
93
A designer walks into a library…
pauljervisheath
210
24k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
990
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 ϩʔΧϧϏϧυͰ͖Δ͔Β…