The Dog Ate My Deployment - PHP Uncoference September 2013

1,582 views
1,465 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,582
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

The Dog Ate My Deployment - PHP Uncoference September 2013

  1. 1. The Last Mile Problem
  2. 2. Development Live
  3. 3. The Dog Ate My Deployment
  4. 4. Rule 1: Implement deployment at the beginning of your project
  5. 5. + https://puphpet.com/
  6. 6. Every configuration has to be done by Puppet
  7. 7. Developers and Operations share the same configuration
  8. 8. Rule 2: Automate everything
  9. 9. Create Targets For Everything
  10. 10. Structure Your Ant Files
  11. 11. Use A Framework For This http://abc.tools.qafoo.com/
  12. 12. <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>
  13. 13. $ ant quality:report
  14. 14. Rule 3: Test the quality of your project
  15. 15. Jenkins PHP Template http://jenkins-php.org/
  16. 16. PHP QA Tools
  17. 17. Too many violations should break your builds
  18. 18. Rule 4: Create deployable artifacts
  19. 19. Build them so that they only need configuration to run
  20. 20. Create them once, reuse them in all deployments
  21. 21. Copy Artifacts Build Promotion Amazon S3
  22. 22. Continous Integration Testing Staging Live
  23. 23. Rule 5: Run your deployment with only one invocation
  24. 24. Choose Your Deployment Tool
  25. 25. Choose It With Your Operations Team
  26. 26. Shell Scripts
  27. 27. Choose A Tool That Helps You
  28. 28. Fabric
  29. 29. 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')
  30. 30. Keep Your Deployment Configuration With Your Code
  31. 31. $ fab deploy:/var/www –H host1,host2,host3

×