9
Continuous Deployment of Symfony2 Applications in the Cloud by Implementing Git-Flow

Continuous Deployment of Symfony2 Applications in the Cloud by Implementing Git-Flow

Embed Size (px)

Citation preview

Page 1: Continuous Deployment of Symfony2 Applications in the Cloud by Implementing Git-Flow

Continuous Deploymentof Symfony2 Applications in the Cloud

by Implementing Git-Flow

Page 2: Continuous Deployment of 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

Page 3: Continuous Deployment of Symfony2 Applications in the Cloud by Implementing Git-Flow

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

Page 4: Continuous Deployment of Symfony2 Applications in the Cloud by Implementing Git-Flow

The Practices

Feature

Code Build Test Release Deploy Operate

Agile Development

Feature

Feature

Continuous Integration

Continuous Delivery

Continuous Deployment

Page 5: Continuous Deployment of Symfony2 Applications in the Cloud by Implementing Git-Flow

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

Page 6: Continuous Deployment of Symfony2 Applications in the Cloud by Implementing Git-Flow

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/

Page 7: Continuous Deployment of Symfony2 Applications in the Cloud by Implementing Git-Flow

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

Page 8: Continuous Deployment of Symfony2 Applications in the Cloud by Implementing Git-Flow

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/

Page 9: Continuous Deployment of Symfony2 Applications in the Cloud by Implementing Git-Flow

Thank you!

https://www.facebook.com/pages/ContinuousPHP/183047251848548

@continuousphp

https://www.linkedin.com/company/continuousphp

https://www.google.com/+Continuousphp

continuousphp.com