Upload
frederic-dewinne
View
685
Download
1
Embed Size (px)
Citation preview
Continuous Deploymentof Symfony2 Applications in the Cloud
by Implementing Git-Flow
Frederic Dewinne
• CTO & Co-Founder of continuousphp©
• 15+ SysAdmin/PHP consultant background
• PHP Certified Engineer
• Continuous Delivery/Deployment Evangelist
http://lu.linkedin.com/in/fredericdewinne
@fdewinne
Goals
• Create an Agile Continuous Deployment Chain:
• Ready in a few minutes
• Git-Flow for project handling
• Use of ephemeral testing environments in the Cloud
• Control expenses
The Practices
Feature
Code Build Test Release Deploy Operate
Agile Development
Feature
Feature
Continuous Integration
Continuous Delivery
Continuous Deployment
Application Vs. Library• Library:
• You shouldn’t do Continuous Deployment on a Library
• Risk of errors between library and application
• Instead, use a callback as deployment destination:
• Updating Composer on your application
• Starting a build of the application
• Application:
• Continuous Integration/Delivery/Deployment is possible
Git-Flow• Install:
• Linux: sudo apt-get install git-flow (on Debian/Ubuntu)
• Mac: brew install git-flow
cd /my/project/root
git flow init
git flow <feature|hotfix|release|publish> <start|finish> <version#|feature
name>
• Git-Flow Tutorial:
http://danielkummer.github.io/git-flow-cheatsheet/
Semantic Versioning• Use Semantic Versioning (http://semver.org) for releases and hotfixes:
• <MAJOR>.<MINOR>.<PATCH>
• MAJOR version when you make incompatible changes
• MINOR version when you add functionality in a backwards-compatible manner
• PATCH version when you make backwards-compatible bug fixes
Master
Hot Fix
Release
Develop
Feature
Feature
V0.1.0 V0.1.1 V0.2.0
Continuous Delivery
Continuous Deployment
http://nvie.com/posts/a-successful-git-branching-model/
Thank you!
https://www.facebook.com/pages/ContinuousPHP/183047251848548
@continuousphp
https://www.linkedin.com/company/continuousphp
https://www.google.com/+Continuousphp
continuousphp.com