41

The Dog Ate My Deployment - PHP Uncoference September 2013

Embed Size (px)

Citation preview

Page 1: The Dog Ate My Deployment - PHP Uncoference September 2013
Page 2: The Dog Ate My Deployment - PHP Uncoference September 2013

The Last Mile Problem

Page 3: The Dog Ate My Deployment - PHP Uncoference September 2013
Page 4: The Dog Ate My Deployment - PHP Uncoference September 2013
Page 5: The Dog Ate My Deployment - PHP Uncoference September 2013
Page 6: The Dog Ate My Deployment - PHP Uncoference September 2013

Development

Live

Page 7: The Dog Ate My Deployment - PHP Uncoference September 2013

The DogAte My Deployment

Page 8: The Dog Ate My Deployment - PHP Uncoference September 2013

Rule 1:Implement deployment at the beginning of your project

Page 9: The Dog Ate My Deployment - PHP Uncoference September 2013

+https://puphpet.com/

Page 10: The Dog Ate My Deployment - PHP Uncoference September 2013

Every configuration has to be done by Puppet

Page 11: The Dog Ate My Deployment - PHP Uncoference September 2013

Developers and Operations share the same configuration

Page 12: The Dog Ate My Deployment - PHP Uncoference September 2013

Rule 2:Automate everything

Page 13: The Dog Ate My Deployment - PHP Uncoference September 2013
Page 14: The Dog Ate My Deployment - PHP Uncoference September 2013
Page 15: The Dog Ate My Deployment - PHP Uncoference September 2013

Create TargetsFor Everything

Page 16: The Dog Ate My Deployment - PHP Uncoference September 2013

Structure YourAnt Files

Page 17: The Dog Ate My Deployment - PHP Uncoference September 2013

Use A Framework For Thishttp://abc.tools.qafoo.com/

Page 18: The Dog Ate My Deployment - PHP Uncoference September 2013

<project> <property file="default.properties"/> <import> <fileset dir="${basedir}/extensions"> <include name="*.xml"/> </fileset> </import> <extension-point name="build-cleanup" /> <extension-point name="build-prepare" /> <target name="build:ci" depends=" test:run, package:create" /></project>

Page 19: The Dog Ate My Deployment - PHP Uncoference September 2013

$ ant quality:report

Page 20: The Dog Ate My Deployment - PHP Uncoference September 2013

Rule 3:Test the quality of your project

Page 21: The Dog Ate My Deployment - PHP Uncoference September 2013
Page 22: The Dog Ate My Deployment - PHP Uncoference September 2013

Jenkins PHP Templatehttp://jenkins-php.org/

Page 23: The Dog Ate My Deployment - PHP Uncoference September 2013

PHP QA Tools

Page 24: The Dog Ate My Deployment - PHP Uncoference September 2013

Too many violations should break your builds

Page 25: The Dog Ate My Deployment - PHP Uncoference September 2013

Rule 4:Create deployable artifacts

Page 26: The Dog Ate My Deployment - PHP Uncoference September 2013

Build them so that they only need configuration to

run

Page 27: The Dog Ate My Deployment - PHP Uncoference September 2013

Create them once, reuse them in all deployments

Page 28: The Dog Ate My Deployment - PHP Uncoference September 2013

Copy ArtifactsBuild PromotionAmazon S3

Page 29: The Dog Ate My Deployment - PHP Uncoference September 2013

ContinousIntegration

Testing Staging Live

Page 30: The Dog Ate My Deployment - PHP Uncoference September 2013

Rule 5:Run your deployment with only one invocation

Page 31: The Dog Ate My Deployment - PHP Uncoference September 2013
Page 32: The Dog Ate My Deployment - PHP Uncoference September 2013

Choose YourDeployment Tool

Page 33: The Dog Ate My Deployment - PHP Uncoference September 2013

Choose ItWith Your Operations

Team

Page 34: The Dog Ate My Deployment - PHP Uncoference September 2013

Shell Scripts

Page 35: The Dog Ate My Deployment - PHP Uncoference September 2013
Page 36: The Dog Ate My Deployment - PHP Uncoference September 2013

Choose A ToolThat Helps You

Page 37: The Dog Ate My Deployment - PHP Uncoference September 2013

Fabric

Page 38: The Dog Ate My Deployment - PHP Uncoference September 2013

def deploy(docroot): put('release.tar.gz', 'release_dir') run('tar xzf release.tar.gz')

with cd(release_dir): run('ant symfony:cache-clear') sudo('service nginx restart')

Page 39: The Dog Ate My Deployment - PHP Uncoference September 2013

Keep Your DeploymentConfiguration With Your

Code

Page 40: The Dog Ate My Deployment - PHP Uncoference September 2013

$ fab deploy:/var/www –H host1,host2,host3

Page 41: The Dog Ate My Deployment - PHP Uncoference September 2013