WordCamp Kansai 2014 登壇スライド。 コードのGit管理を前提とし、それを活かしたよりストレスフリーなデプロイメントを紹介しました。紹介したのはツール、サービス、そして最近海外では話題になりつつあるフルスタック系のツールキット。
※SlideShareにアップしていたスライドをSpeaker Deckにアップに移動
8PSE1SFTTαΠτ੍࡞ʹ͓͚ΔσϓϩΠϝϯτΛߟ͑Δ5PSV.JLJ !XBWJBFJ8PSE$BNQ,BOTBJʙ(JUͱσϓϩΠϝϯταʔϏεͷ׆༻ʙ+VOF
View Slide
$POUSJCVUFEUP 8PSE1SFTT$PSF JOMJOFEPD 8PSE1SFTT+BQBOFTFQBDLBHF 8PSE$BNQTBTBTUB⒎MFBEJOHPSHBOJ[FS +BQBOFTFUSBOTMBUJPOTQMVHJOTBOE$PEFY*IBWFTIBSFEUISPVHI #MPHBSUJDMFT #PPLʰ8PSE1SFTTٯҾ͖σβΠϯࣙయ1-64ʱ8FCNBTUFS!ςϯϓϧେֶδϟύϯΩϟϯύε5PSV.JLJ5PSV!XBWJBFJIUUQQSPpMFTXPSEQSFTTPSH5PSV
εϐʔΧʔ | WordCamp Kansai 2014 http://2014.kansai.wordcamp.org/speakers/#wcorg-speaker-miki
8IBUJT%FQMPZ%FQMPZNFOU
ఆٛ
lσϓϩΠͱɺओʹωοτϫʔΫΛ௨ͯ͡ఏڙ͞ΕΔ8FCΞϓϦέʔγϣϯͳͲͷγεςϜ։ൃఔʹ͓͍ͯɺγεςϜΛར༻Մೳͳঢ়ଶʹ͢Δ͜ͱͰ͋Δɻ!σϓϩΠιϑτΣΞͷϦϦʔεΠϯετʔϧؚΜͩҙຯͷ͍ݴ༿Ͱ͋Γɺ։ൃڥ͔ΒεςʔδϯάڥγεςϜΛөͤ͞Δ͜ͱɺεςʔδϯάڥ͔Βຊ൪ڥөͤ͞Δ͜ͱɺʮσϓϩΠ͢ΔʯͱදݱͰ͖Δɻzdeployͱ - IT༻ޠࣙయ Weblioࣙॻ http://www.weblio.jp/content/deploy
ʮΣϒαΠτΛαʔόʔΞοϓϩʔυ͢Δʯ
Work With Us — Automattic http://automattic.com/work-with-us/
%FQMPZͱ͍͏ݴ༿ݩʑʮஔ͢Δʯʮల։͢Δʯ ͱ͍ͬͨҙຯͷӳޠ
U.S. Deploys Troops in Search for Kidnapped Nigerian Girls | TIME http://time.com/108025/nigeria-chad-boko-haram-american-troops-obama/
5PEBZ`T"HFOEB
ࠓओʹ$PEF%FQMPZNFOUͷΛ͠·͢ɻ
$PEFɺͭ·ΓςʔϚϓϥάΠϯɺίΞͳͲͷϑΝΠϧͷσϓϩΠϝϯτͰ͢ɻ
͜ΕΒͷϑΝΠϧ!!ͰཧͰ͖·͢ΑͶʁ
ࠓհ͢Δͷ!!ͰϑΝΠϧɺͭ·ΓίʔυΛཧ͍ͯ͠Δ͜ͱ͕લఏͷπʔϧαʔϏεͰ͢ɻ
(JUͰίʔυΛཧ͍ͯ͠Δঢ়گΛ׆͔ͭͭ͠ɺσϓϩΠπʔϧαʔϏεΛ׆༻͠ɺΑΓετϨεϑϦʔͳσϓϩΠϝϯτʹઓͯ͠Έ·͠ΐ͏ɻ
8IFSFTIPVME*git init
8PSE1SFTTαΠτͷͲͷ෦Λ(JUͷཧԼʹ͓͔͘ʁ
ಛఆͷςʔϚͷΈcd wp-content/themes/my-themegit init
ಛఆͷϓϥάΠϯͷΈcd wp-content/plugins/my-plugingit init
αΠτશମcd path/to/wordpressgit init!touch .gitignore
gitignore/WordPress.gitignore https://github.com/github/gitignore/blob/master/WordPress.gitignore
8PSE1SFTTͷσϑΥϧτͷϑΝΠϧߏͷ··git init͢Δͱ͜͏ͳΓ·͢ΑͶʁ
αΠτશମ
͔͠͠ɺ(JUͰ8PSE1SFTTαΠτશମΛཧ͢ΔͷͰ͋Εɺ࣍ͷΑ͏ͳϑΝΠϧߏͷϊϋγΣΞ͞Ε͍ͯ·͢ɻ
αΠτશମ8PSE1SFTT㱺(JUαϒϞδϡʔϧXQDPOUFOU㱺DPOUFOUXQDPOpHQIQ㱺։ൃ༻ɾຊ൪༻ͳͲʹ͚Δ
WordPress local dev tips: DB & plugins | Mark on WordPress http://markjaquith.wordpress.com/2011/06/24/wordpress-local-dev-tips/
WP-Skelton https://github.com/markjaquith/WordPress-Skeleton
$PEF%FQMPZNFOU
ίʔυͷσϓϩΠϝϯτʹಛԽɾରԠ͍ͯ͠ΔπʔϧαʔϏεɺແྉɾ༗ྉΛΘͣɺطʹ͍Ζ͍Ζ͋Γ·͢ɻ
ͰɺιϑτΣΞۀքͰ༻͍ΒΕ͍ͯΔπʔϧ͕΄ͱΜͲɻ
ઃఆ͕͍͠ɻଟػೳɻ͍͜ͳ͢ͷ͕͍͠ɻ8PSE1SFTTαΠτʹΦʔόʔεϖοΫʂ
Ͱੈք͍ʂγϯϓϧͳπʔϧαʔϏε͋Γ·ͨ͠ɻγϯϓϧͳͷ͔Βଟػೳͳͷ·ͰओͳπʔϧαʔϏεΛཧͯ͠Έ·ͨ͠ɻ
'BCSJD$*4FSWJDFT ʢ+FOLJOTɺ 5SBWJT$*ɺͳͲʣ$BQJTUSBOP.JOB%BOEFMJPO4USBOP8FCJTUSBOP8FC4FSWJDF5PPMγϯϓϧ ଟػೳ
%BOEFMJPO
ػೳΛݶఆͨ͠γϯϓϧˍ͓खܰͳ(JU࿈ܞܕͷσϓϩΠπʔϧͰ͢ɻ
$*4FSWJDFT ʢ+FOLJOTɺ 5SBWJT$*ɺͳͲʣ'BCSJD$BQJTUSBOP.JOB4USBOP8FCJTUSBOP%BOEFMJPO5PPMଟػೳγϯϓϧ8FC4FSWJDF
Dandelion http://scttnlsn.github.io/dandelion/
खಈσϓϩΠ%BOEFMJPO-PDBM3FQPTJUPSZaddcommit4UBHJOH4FSWFS 5&451SPEVDUJPO4FSWFS -*7&खಈσϓϩΠϩʔΧϧϦϙδτϦͷ)&"%ΛσϓϩΠ͢Δ
ϩʔΧϧڥʹΠϯετʔϧ%BOEFMJPOgem install dandeliongem install net-sftpઃఆϑΝΠϧ:".-cd path/to/wordpressgit inittouch dandelion.yml
%BOEFMJPOadapter: ftphost: example.comusername: userpassword: passpath: path/to/deploymentpassive: true!exclude:- .gitignore- dandelion.ymlEBOEFMJPOZNM'514'51"NB[PO4&H͘͞Βͷελϯμʔυ ʢσϑΥϧτGBMTFʣDandelion http://scttnlsn.github.io/dandelion/ͦͷଞͷઃఆՄೳ߲ʹ%PDT*TTVFTΛࢀর
ίϚϯυͭɻΦϓγϣϯͭɻ%BOEFMJPOdandelion statusdandelion deploy!dandelion --repo=[REPO]--config=[CONFIG]--v--h
%BOEFMJPOdandelion statusdandelion deploy
%BOEFMJPOϩʔϧόοΫػೳແ͍͕ɺEFQMPZͰҙͷϦϏδϣϯࢦఆ͕Մೳɻ
εςʔδϯάͷσϓϩΠ༻DPOpHຊ൪ͷσϓϩΠ༻DPOpH%BOEFMJPOͭͷ:".-ϑΝΠϧ ʹ ͭͷσϓϩΠઌͷઃఆdandelion deploydandelion --config=live.yml deploy
%FQMPZ%QMPZ
σϓϩΠʹಛԽͨ͠ΣϒαʔϏεΛͭհ͠·͢ɻ
'BCSJD$BQJTUSBOP.JOB4USBOP8FCJTUSBOP$*4FSWJDFT ʢ+FOLJOTɺ 5SBWJT$*ɺͳͲʣ%BOEFMJPO5PPMଟػೳγϯϓϧ8FC4FSWJDF
Deploy https://www.deployhq.com/
dploy http://dploy.io/
pushEQMPZ%FQMPZ-PDBM3FQPTJUPSZ4UBHJOH4FSWFS 5&451SPEVDUJPO4FSWFS -*7&खಈɾࣗಈσϓϩΠ3FNPUF 3FQPTJUPSZखಈɾࣗಈσϓϩΠaddcommit
push-PDBM3FQPTJUPSZaddcommit4UBHJOH4FSWFS 5&451SPEVDUJPO4FSWFS -*7&खಈɾࣗಈσϓϩΠ3FNPUF 3FQPTJUPSZखಈɾࣗಈσϓϩΠIUUQEQMPZJP47/3FNPUF 3FQPTJUPSZ
push-PDBM3FQPTJUPSZaddcommit4UBHJOH4FSWFS 5&451SPEVDUJPO4FSWFS -*7&खಈɾࣗಈσϓϩΠ3FNPUF 3FQPTJUPSZखಈɾࣗಈσϓϩΠ 4UBHJOH4FSWFS 5&451SPEVDUJPO4FSWFS -*7&IUUQEQMPZJP
IUUQEQMPZJP
%FQMPZͱ%QMPZͷͭΛհ͠·͕ͨ͠ɺಉ༷ͷαʔϏεଞʹ͍Ζ͍Ζ͋Γ·͢ɻ
FTPLOY http://ftploy.com/
deploydo https://www.deploy.do/
wercker http://wercker.com/
Bamboo https://www.atlassian.com/software/bamboo/
ͳͲʜશͯࣅͨΑ͏ͳαʔϏεͰ͕͢ɺ༷͕एׯҧ͍·͢ɻ
#FBOTUBML$PEFCBTF
ϓϥΠϕʔτ(JUϦϙδτϦʹσϓϩΠػೳ͕͍ͯ͘ΔΣϒαʔϏεɻ
Beanstalk http://beanstalkapp.com/ʴ
Developing and Deploying WordPress • Beanstalk Guide http://guides.beanstalkapp.com/deployments/deploying-wordpress.html
Codebase http://codebasehq.com/
ଞʹ
Springloops http://www.springloops.io/
Assembla https://www.assembla.com/
ͳͲʜ
$PEF%FQMPZNFOU1BUUFSOT
հͨ͠πʔϧαʔϏεΛɺఆͰ͖ΔέʔεʹͯΊͯΈ·͢ɻ
ݸਓϒϩάɺςʔϚͷΈ-PDBM3FQPTJUPSZ1SPEVDUJPO4FSWFS -*7&%BOEFMJPOΛͬͯɺ ࣗ࡞ςʔϚϓϥάΠϯΛ खಈσϓϩΠɻ%BOEFMJPO$ cd /my-theme$ git init$ dandelion deploy
ݸਓϓϩδΣΫτ-PDBM3FQPTJUPSZ1SPEVDUJPO4FSWFS -*7&%BOEFMJPO3FNPUF 3FQPTJUPSZ4UBHJOH4FSWFS 5&454'51 खಈσϓϩΠ4'51 खಈσϓϩΠ
-PDBM3FQPTJUPSZ4UBHJOH4FSWFS 5&451SPEVDUJPO4FSWFS -*7&3FNPUF 3FQPTJUPSZ4'51 ࣗಈσϓϩΠ'51 खಈσϓϩΠձࣾͰܖ͍ͯ͠Δ714ΫϥΠΞϯτ͕ ܖ͍ͯ͠Δ ϨϯλϧαʔόʔνʔϜͰ։ൃσϓϩΠαʔϏε
4UBHJOH4FSWFS 5&451SPEVDUJPO4FSWFS -*7&TUBHJOH༻ϒϥϯν खಈɾࣗಈσϓϩΠQSPEVDUJPO༻ϒϥϯν खಈɾࣗಈσϓϩΠϒϥϯνΛ࡞ͬͯ։ൃ3FNPUF 3FQPTJUPSZ-PDBM3FQPTJUPSZOR
ʜͱ͍͏ײ͡Ͱɺఆ͞ΕΔ͍Ζ͍Ζͳ͍ํʹద༻ͤ͞Δ͜ͱ͕ՄೳͰ͢ɻ
%BOEFMJPOແྉͷπʔϧɻσϓϩΠαʔϏεͷଟ͘ϑϦʔϛΞϜɻ
/PUFT
(JUͷཧԼɾཧ֎ʹ͓͘ϑΝΠϧºσϓϩΠ͢Δɾ͠ͳ͍ϑΝΠϧ
(JUͰཧ͢Δ (JUͰཧ͠ͳ͍ʢHJUJHOPSFʣσϓϩΠ͢Δ ʢͦͷଞͷίΞϑΝΠϧʣXQDPOpHQIQ UFTUDPOpHQIQσϓϩΠ͠ͳ͍MPDBMDPOpHQIQ XQDPOpHQIQ EBOEFMJPOZNMEBOEFMJPOZNM IUBDDFTT XQDPOpHQIQ
ϑΝΠϧͷύʔϛογϣϯͱॴ༗ऀ
ϑΝΠϧͷύʔϛογϣϯͱॴ༗ऀXQDPOpHQIQͷύʔϛογϣϯͱ͔DIPXOBQBDIFDIPXOOHJOY
ຊͷϨϯλϧαʔόʔɺຊࠃ֎*1ΞυϨε͔ΒͷΞΫηεΛ੍ݶ͍ͯ͠Δ͜ͱ͕͋Δɻ
ࠃ֎IPΞυϨεϑΟϧλʛ͘͞ΒͷϨϯλϧαʔό"http://support.sakura.ad.jp/manual/rs/others/ipfilter.htmlྫɿ͘͞ΒͷϨϯλϧαʔό
ηΩϡϦςΟɾϙϦγʔ
ηΩϡϦςΟɾϙϦγʔΫϥΠΞϯτͷίʔυΛαʔυύʔςΟʔͷΣϒαʔϏεʹΞοϓͯ͠ͳ͍͔ʁΫϥΠΞϯτͷαʔόʔใΛ αʔυύʔςΟͷΣϒαʔϏεʹઃఆͯ͠ͳ͍͔ʁใηΩϡϦςΟϚωδϝϯτγεςϜ*40ϓϥΠόγʔϚʔΫ
$POUFOUT%FQMPZNFOU
ʮ͜ΕͬʂʯͱݴܾͬͨΊख͕͋Γ·ͤΜɻ
4DSJQUT
4DSJQUT63-Λదʹஔͯ͘͠ΕΔεΫϦϓτͱ Έ߹ΘͤΔɻmysqldump -u user -ppass wp_db > db.sql!scprsync
WordPress ͷDB্ͷαΠτURLΛҰؾʹม http://dogmap.jp/2012/09/20/wordpress-replace-siteurl/https://gist.github.com/wokamoto/3627972
WordPress Serialized PHP Search Replace Tool https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
81$-*
WP-CLI http://wp-cli.org/commands/db/http://wp-cli.org/commands/search-replace/wp db exportwp db import!wp search-replace 'http://local.dev' 'http://mysite.com'81$-*ͷػೳΛ͏
1MVHJOT
$POUFOUTEFQMPZNFOUϓϥάΠϯ͋·Γແ͍ɻʴ݁ߏ͍͍͓ஈʜ
WP Migrate DB http://wordpress.org/plugins/wp-migrate-db/
WP Migrate DB Pro https://deliciousbrains.com/wp-migrate-db-pro/
WP Migrate DB Pro https://deliciousbrains.com/wp-migrate-db-pro/pricing/https://deliciousbrains.com/wp-migrate-db-pro/videos/
Ramp http://crowdfavorite.com/ramp/
ػೳΛʮಉظʯͰͳ͘ɺαʔόʔ͔ΒαʔόʔͷʮҾͬӽ͠ʯʹߜΔͱɺศརͳϓϥάΠϯ͕ز͔ͭ͋Γ·͢ɻ
WordPress Duplicator http://wordpress.org/plugins/duplicator/
ެ։࣌Ҿͬӽ͠ϓϥάΠϯΛ༻͍ͯ$PEFͱ$POUFOUTΛσϓϩΠɻ!ެ։ޙඞཁ࣌ʹͷΈɺ$POUFOUTΛಉظ͢Δɻʢ؆୯ͳόάमਖ਼Ͱ͋Εಉظͤͣʹߦ͏ɻʣ
.PSF"EWBODFE%FQMPZNFOU5PPMT
$BQJTUSBOP3VCZ.JOB1)1'BCSJD1ZUIPO8PSE1SFTTք۾ͰΑ͘ʹ͢Δ͜ͷதͰൺֱతγϯϓϧʜ$BQJTUSBOP΄ͲଟػೳͰʜ
An Introduction To Deploying WordPress with Mina - Tuts http://code.tutsplus.com/articles/an-introduction-to-deploying-wordpress-with-mina--wp-34776
https://twitter.com/tekapo/status/465656275418619905http://wp.tekapo.com/2014/03/01/help-me-out-to-translate-fabric-docs/
5PXBSETB'VMM4UBDL8PSE1SFTT%FWFMPQNFOU5PPM
࠷ޙʹɺ(JUΛલఏͱͨ͠ϑΝΠϧߏͷσϓϩΠϝϯτͷ͔Β͞Βʹେ͖͍ͷΛ͠·͢ɻ
(JUCBTFE8PSE1SFTTTFUVQWP-Skelton(JU8PSE1SFTT
WP-Stack https://github.com/markjaquith/WP-Stack
(JUCBTFE8PSE1SFTTTFUVQWP-Skelton(JU8PSE1SFTT5PPMLJUGPS8PSE1SFTT%FQMPZNFOUWP-Stack$PEF%FQMPZNFOU
wp-deploy https://github.com/Mixd/wp-deploy
(JUCBTFE8PSE1SFTTTFUVQWP-Skelton(JU8PSE1SFTT5PPMLJUGPS8PSE1SFTT%FQMPZNFOUWP-Stack$PEF%FQMPZNFOU'SBNFXPSLGPSEFQMPZJOH81TJUFVTJOH$BQJTUSBOPwp-deploy$POUFOUT%FQMPZNFOU
Genesis Skelton https://github.com/genesis/wordpress
Bedrock http://roots.io/wordpress-stack/
(JUCBTFE8PSE1SFTTTFUVQWP-Skelton(JU8PSE1SFTT5PPMLJUGPS8PSE1SFTT%FQMPZNFOUWP-Stack$PEF%FQMPZNFOU'SBNFXPSLGPSEFQMPZJOH81TJUFVTJOH$BQJTUSBOPwe-deploy$POUFOUT%FQMPZNFOU3BQJEMZDSFBUF EFWFMPQEFQMPZ81BDSPTTNVMUJFOWJSPONFOUGenesis Skelton-PDBM%FW&OWJSPONFOU8PSE1SFTT4UBDLBedrock
1)16OJU5FTU4UBHJOH4FSWFS 5&451SPEVDUJPO4FSWFS -*7&3FNPUF 3FQPTJUPSZ1)16OJU5FTUJOH"VUPNBUJPO-PDBM3FQPTJUPSZࣗಈσϓϩΠpush
$POUJOVPVT*OUFHSBUJPO $* 4FSWJDFTJenkinsTravis CI1)16OJU5FTU4UBHJOH4FSWFS 5&451SPEVDUJPO4FSWFS -*7&3FNPUF 3FQPTJUPSZ1)16OJU5FTUJOH"VUPNBUJPO-PDBM3FQPTJUPSZࣗಈσϓϩΠpull request
#VEEZ1SFTT(SVOU5SBWJT$*BuddyPress Development Trunk to Adopt a Grunt-Powered Build System http://wptavern.com/buddypress-development-trunk-to-adopt-a-grunt-powered-build-system
ͪͳΈʹɺ(JUཧΛ׆͔ͨ͠σϓϩΠϝϯτͰ͋Γ·ͤΜ͕ɺ͜͏͍͏ͷ͋Γ·͢ʜ
.BOBHFE8PSE1SFTT )PTUJOH
͍·ւ֎Ͱ͍͕͋Δ8PSE1SFTTઐ༻ϗεςΟϯάαʔόʔɻ!ແྉͰεςʔδϯάڥΛఏڙ͠ɺΞϐʔϧϙΠϯτʹ͍ͯ͠Δαʔόʔ͋Γ·͢ɻ
Media Temple WordPress Hosting http://mediatemple.net/webhosting/wordpress/
ϓϩμΫγϣϯαʔόʔΫϦοΫͰϑΝΠϧͱ%#ΛσϓϩΠɻࡁΜͩΒআɻMedia Temple WordPress Managed Hosting Reviewed : WP Mayor http://www.wpmayor.com/media-temple-wordpress-managed-hosting-reviewed/
ଞʹʜ
WP Engine http://wpengine.com/
Flywheel http://getflywheel.com/
ϗεςΟϯάαʔόʔʹσϓϩΠϝϯτػೳ͓ͤ͢ΔʜϓϩδΣΫτʹΑͬͯɺ࠷ྑͷબࢶ͔͠Ε·ͤΜɻ
.FTTBHF
Կͱ͋ΕⅠ.
ΑΓετϨεϑϦʔͳσϓϩΠϝϯτΛࢦͯ͠ɺσϓϩΠϝϯτͷπʔϧαʔϏεΛͬͯΈΑ͏ɻʢंྠͷ࠶ൃ໌͠ͳ͍ʣⅡ.
Ⅲ.'VMM4UBDLํΛҙࣝͭͭ͠ɺใͷΞϯςφΛுΓɺखΛಈ͔ͯ͠ΈΔɻ
Ⅲ.'VMM4UBDLํΛҙࣝͭͭ͠ɺใͷΞϯςφΛுΓɺखΛಈ͔ͯ͠ΈΔɻΘͳͯ͘ɺͯ͘͠ɺखΛಈ͔͓ͯ͘͜͠ͱͰɺཧղ͕ਂ·Δɺ಄ͷย۱ʹهԱ͓͚ͯ͠Δʂ
Thank you!http://waviaei.com!@waviaei![email protected]!http://b.hatena.ne.jp/waviaei/wordpress/That’s All…
Photo by Takeshi Kounohttps://www.flickr.com/photos/kounotakeshi/13460591725/https://www.flickr.com/photos/dvids/6093692164p9p1cropped & resizedPhoto by DVIDSHUBcropped & resized1IPUP$SFEJUT