Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Practical PHP Deployment with Jenkins

7,802 views

Published on

When pushes to production fail the "blame game" starts between developers and devops, then everyone scurries to figure out what happened...fast! Adam Culp will show how a PHP application can be deployed flawlessly using Jenkins. Then see how "Dev" and "Ops" are supported by a system if the application breaks and the nightmare happens.

Published in: Technology

Practical PHP Deployment with Jenkins

  1. 1. Practical PHP Deployment with Jenkins By: Adam Culp Twitter: @adamculp
  2. 2. 2 Practical PHP Deployment with Jenkins ● About me – PHP 5.3 Certified – Consultant at Zend Technologies – Zend Certification Advisory Board – Organizer SoFloPHP (South Florida) – Organized SunshinePHP (Miami) – Long distance (ultra) runner – Judo Black Belt Instructor
  3. 3. 3 Practical PHP Deployment with Jenkins ● Fan of iteration – Pretty much everything requires iteration to do well: ● Long distance running ● Judo ● Development ● Evading project managers ● Deploying!
  4. 4. 4 Practical PHP Deployment with Jenkins ● Dev VS Ops – Dev = Ops – Dev doesn't like Ops – Can't communicate – Challenges syncing
  5. 5. 5 Practical PHP Deployment with Jenkins ● Continuous Delivery – Not a single app solution – Many pieces – Not covered here ● Provisioning of servers ● Integration to monitoring – We will focus on:
  6. 6. 6 Practical PHP Deployment with Jenkins ● Continuous Integration
  7. 7. 7 Practical PHP Deployment with Jenkins ● Deployment – FTP works...NOT! – Many large PHP sites – Simple != solution
  8. 8. 8 Practical PHP Deployment with Jenkins ● 5 to 7 Releases...A Day! – Not achievable with FTP – Must be automated
  9. 9. 9 Practical PHP Deployment with Jenkins ● Ready To Deploy! – Not after every commit – But always “ready”
  10. 10. 10 Practical PHP Deployment with Jenkins ● Best Practices – No holy grail here – Many dependencies ● Development team ● Application ● Size of application ● How to implement
  11. 11. 11 Practical PHP Deployment with Jenkins ● Architecture – Git – Jenkins – Zend Server
  12. 12. 12 Practical PHP Deployment with Jenkins ● Zend Server – Full PHP application stack – Supported – Consistent across OS – Automated deployment – Cluster management
  13. 13. 13 Practical PHP Deployment with Jenkins ● WebAPI – Restful Service – Built API first – GUI is just the front-end
  14. 14. 14 Practical PHP Deployment with Jenkins ● Source Control – !Github here (just in case) – Using Git
  15. 15. 16 Practical PHP Deployment with Jenkins ● PHP QA Tools – http://phpqatools.org ● PHPUnit ● pdepend
  16. 16. 17 Practical PHP Deployment with Jenkins ● Docker – Linux Containers – Versioned (“Git for servers”) – Stores delta
  17. 17. 18 Practical PHP Deployment with Jenkins ● When Apps Break – What's really to blame?
  18. 18. 19 Practical PHP Deployment with Jenkins ● Root Cause Analysis – What is the cause ● How to prevent ● How to fix – Needs to happen fast!
  19. 19. 20 Practical PHP Deployment with Jenkins ● Rollback – Within 30 seconds ● Even in a cluster!
  20. 20. 21 Practical PHP Deployment with Jenkins ● Demo – Using Pimcore CMS (500K lines of code) – Jenkins ● Multiple jobs from: – Checkout – Testing – Packaging – Deployment to staging – Rollback – Deploy to production (cluster) – Then we'll see the details
  21. 21. 24 Practical PHP Deployment with Jenkins ● Resources – http://zend.com – http://zend.com/en/solutions/continuous-delivery – http://github.com/zend-patterns
  22. 22. ● Thank you! – Code: https://github.com/adamculp/ Adam Culp http://www.geekyboy.com http://RunGeekRadio.com Twitter @adamculp Questions?

×