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
Hiroshi Maekawa (a.k.a. Posaune)
October 22, 2018
Programming
1
490
「カスタマイズ」から「標準化」へ。 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
Le côté obscur des IA génératives
pascallemerrer
0
150
組込みだけじゃない!TinyGo で始める無料クラウド開発入門
otakakot
1
320
iOSでSVG画像を扱う
kishikawakatsumi
0
130
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
33k
他言語経験者が Golangci-lint を最初のコーディングメンターにした話 / How Golangci-lint Became My First Coding Mentor: A Story from a Polyglot Programmer
uma31
0
290
品質ワークショップをやってみた
nealle
0
560
Google Opalで使える37のライブラリ
mickey_kubo
2
100
Introduce Hono CLI
yusukebe
6
2.8k
Webサーバーサイド言語としてのRustについて
kouyuume
0
330
Catch Up: Go Style Guide Update
andpad
0
230
Go Conference 2025: Goで体感するMultipath TCP ― Go 1.24 時代の MPTCP Listener を理解する
takehaya
9
1.7k
詳しくない分野でのVibe Codingで困ったことと学び/vibe-coding-in-unfamiliar-area
shibayu36
3
5.1k
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
238
140k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Embracing the Ebb and Flow
colly
88
4.9k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
Making Projects Easy
brettharned
120
6.4k
The Cost Of JavaScript in 2023
addyosmani
55
9k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
The Illustrated Children's Guide to Kubernetes
chrisshort
49
51k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
620
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 ϩʔΧϧϏϧυͰ͖Δ͔Β…