Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
201909-PHPCon北海道-PHPでCI_CD.pdf
Kaz Watanabe
September 21, 2019
Technology
0
700
201909-PHPCon北海道-PHPでCI_CD.pdf
Kaz Watanabe
September 21, 2019
Tweet
Share
More Decks by Kaz Watanabe
See All by Kaz Watanabe
kaz29
6
5.1k
kaz29
0
230
kaz29
2
2.5k
kaz29
6
1.4k
kaz29
0
540
kaz29
0
1.5k
kaz29
0
370
kaz29
0
110
kaz29
2
4.8k
Other Decks in Technology
See All in Technology
pinboro
1
1.7k
neo_analytics
1
1.1k
yosuke_furukawa
PRO
47
16k
clustervr
0
190
yamasaki696
0
330
kilometer
0
130
kraj
0
5.4k
masashible
0
110
shimacos
2
350
hamadakoji
1
1.1k
clustervr
0
200
yosshi_
3
350
Featured
See All Featured
myddelton
109
11k
edds
56
9.3k
trishagee
20
2.1k
frogandcode
127
20k
lauravandoore
437
28k
colly
66
3k
morganepeng
92
14k
jrom
114
7.1k
hannesfritz
27
930
revolveconf
200
9.6k
garrettdimon
287
110k
malarkey
192
8.6k
Transcript
PHPͰCI/CD ࢲ࠷ۙ͜Μͳײ͡Ͱͬͯ·͢ Θͨͳ@kaz_29 @PHPΧϯϑΝϨϯεւಓ 2019
WHO? ลҰ(@kaz_29) גࣜձࣾϋʔτϏʔπ ։ൃࣄۀ෦ WebΞϓϦέʔγϣϯͷ։ൃ iOS/AndroidΞϓϦέʔγϣϯͷ։ൃ ΫϥυΠϯϑϥͷߏஙɾӡ༻
None
None
#hbSAKABA podcastͬͯ·͢
ΑΖ͘͠ ͓ئ͍͠·͢
PHPͰCI/CD
Q?
Q CIΛ࣮ફ͍ͯ͠Δਓ?
Q CDΛ࣮ફ͍ͯ͠Δਓ?
CI ܧଓతΠϯςάϨʔγϣϯ
XP - ։ൃͷϓϥΫςΟε • ςετۦಈ։ൃ • ϖΞϓϩάϥϛϯά • ϦϑΝΫλϦϯά •
ιʔείʔυͷڞಉॴ༗ • ܧଓతΠϯςάϨʔγϣϯ • YAGNI
ܧଓతΠϯςάϨʔγϣϯ • ιʔείʔυ͕मਖ਼͞ΕΔͨͼʹϏϧυΛ࣮ߦ • ςετΛࣗಈ࣮ߦ͠GREENͳঢ়ଶΛอͭ • Ϗϧυઐ༻ͷػࡐαʔϏεΛ͏ • ϝτϦοΫΛऔಘ͢Δ
CD ܧଓతσϦόϦʔ
ܧଓతσϦόϦʔ CIͰςετ͞ΕͨιϑτΣΞΛ ࣗಈతʹϦϦʔε͢Δ https://www.amazon.co.jp/dp/4048707876
ܧଓతσϦόϦʔ • ϓϩδΣΫτ։͔࢝࣌ΒࣗಈԽ͢Δ • ͯ͢ͷڥΛಉ͡ํ๏ͰσϓϩΠ͢Δ CDͷϓϩηεࣗମ͕܁Γฦ͠ςετ͞ΕΔ͜ͱʹͳΔ
CI/CDΛ࢝ΊΔͨΊʹ • ιʔείʔυͷόʔδϣϯཧ • σʔλϕʔεϚΠάϨʔγϣϯͷࣗಈԽ • ࣗಈςετ • UnitTest •
݁߹ςετ
ͳͥΔͷ͔ʁ
None
https://www.ryuzee.com/contents/blog/6102 https://slide.meguro.ryuzee.com/slides/59
িܸΛड͚ͨ
ͳͥΔͷ͔ʁ • ҆৺ͯ͠ϦϦʔε͍ͨ͠ • ࣗಈςετ • ୭ͰϦϦʔεͰ͖Δ • ૉૣ͘ϦϦʔεͯ͠ϑΟʔυόοΫΛΒ͏ •
ૉૣ͘վળͯ͠සൟʹϦϦʔε • ΞϓϦͷঢ়ଶΛѲ͍ͨ͠ • ςετͷঢ়گΛอଘ • ੩తղੳ݁Ռͷอଘ
࣮ફͨ͠ • 2012-10-01 - CakePHP2࣮ફೖ͕Ͱ·ͨ͠(deployͷষΛॻ͍ͨ) http://kaz29.hatenablog.com/entry/2012/10/01/100150 • 2012-10-30 - ࠓ࣌ͳCakePHPͰͷ։ൃڥʂʁ
http://kaz29.hatenablog.com/entry/2012/11/30/173424 • 2013-04-30 - ʮCIΛؒ·Θͯ͠Έͯʯͱ͍͏͓ͰLTΛ͖ͯ͠·ͨ͠ http://kaz29.hatenablog.com/entry/2013/04/30/122642 • 2013-04-30 - ʮCakePHPͰֶͿܧଓతΠϯςάϨʔγϣϯʯ- CakePHPΛͬ ͯܧଓతΠϯςάϨʔγϣϯΛ࣮ફ͢Δͳ͕ΕΛղઆͨ͠ॻ੶͕ग़൛͞Ε·͢ http://kaz29.hatenablog.com/entry/2014/09/03/095358
ࢲ࠷ۙ͜Μͳײ͡Ͱ ͬͯ·͢
#1
#1 • Jenkins • εςʔδϯάαʔόʹ͍͋ͷΓ • ઐ༻CIαʔό • Capistrano2 •
εςʔδϯάͷΈࣗಈߋ৽ • ։ൃڥ • Mac্ͷApache/PHP
#2
#2 • CircleCI(v1) • UnitTest • Capistrano3 • ࣗಈσϓϩΠͬͯͳ͍ •
։ൃڥ • Vagrant (+Chef solo)
#3
#3 • CircleCI(v2) • UnitTest • dockerԽ • Ansistrano •
ࣗಈσϓϩΠͬͯͳ͍ • ϓϩϏδϣχϯάͱಉ͡πʔϧ • ։ൃڥ • Vagrant+Ansible local • Docker
#4 ʙ ͍·
#4 ʙ ͍· AWS CodePipeline Azure DevOps ͪΖΜଞͷαʔϏεͬͯ·͢
AWS CodePipeline
AWS CodePipeline • AWS͕ఏڙ͢ΔϑϧϚωʔδυͳCI/CDαʔϏε • ෳͷαʔϏεΛऔΓ·ͱΊΔܗͰߏ͞Ε͍ͯΔ CodeCommit / CodeBuild /
CodeDeploy • AWSͷαʔϏεͱͷߴ͍ੑ
None
AWS FargateͰB/G(1) • Cloud Formation • AWS Fargate • Amazon
Aurora • AWS CodePipeline
https://github.com/aws-samples/ecs-blue-green-deployment/tree/fargate Λϕʔεʹߏங
AWS FargateͰB/G(2) • AWS cdk(Cloud Formation) • AWS Fargate •
Amazon Aurora • AWS Codepipeline NEW!
None
AWS FargateͰB/G(2) • AWS cdkͰߏங • ϦιʔεߏஙͱύΠϓϥΠϯΛͰ͖ͨ • CloudFormationΛΘͳ͍ •
͍׳ΕͨίʔυͰΠϯϑϥΛߏஙͰ͖Δ • IDEͷίʔυิͷԸܙ
Azure DevOps
Azure DevOps • MS͕ఏڙ͢ΔϚωʔδυͳCI/CDαʔϏε چVSTSΛࡢϦϒϥϯυ • ෳͷαʔϏεͰߏ Board / Repos
/ Pipelines / Artifacts • Azureͷ֤छαʔϏεͱͷੑ
None
Azure WebAppͰB/G • Azure WebApp for Containers • Azure Container
Registory • Azure Database for PostgreSQL • Azure DevOps
Azure WebAppͰB/G
Azure AKSͰB/G • Azure Kubernetes Service (AKS) • Azure Container
Registory • Azure Database for PostgreSQL • Azure DevOps
None
·ͣͬͯΈΑ͏ʂ
·ͱΊ
·ͱΊ • CI/CDΛߏங͢Δͱ҆৺ͯ͠վળΛਐΊΒΕΔ • ୭Ͱૉૣ҆͘શʹϦϦʔεͰ͖Δ • ঢ়ଶΛѲͰ͖ΔΑ͏ʹͳΔ(͘͢͠ͳΔ) • ڥ࣌ͱͱʹมԽ͍ͯ͘͠ •
PaaSͷར༻͕૿͖͑ͯͨ • ΫϥυϕϯμʔఏڙͷͷΛ͏ػձ͕૿͑ͨ
͓͠·͍ ͜Μͳ෩ʹͬͯΔͱ͔ɺ͜ΜͳࠔΓࣄ͕͋Δͱ͔ੋඇฉ͔͍ͤͯͩ͘͞ʂ