https://joind.in/9283 About me ● I am Mike van Riel ● Lead Developer for phpDocumentor ● Software Composer at Ingewikkeld ● Foster father of two cute dogs
https://joind.in/9283 Config flags ● Toggles features on and off ● Allows a team to continuously integrate ● Can be used for Canary testing ● Provides a rollback in case of flawed functionality
https://joind.in/9283 Think about the following ● Versioning your application ● Versioning your environment ● Version numbering ● Which tools to use ● How to react on a build failure
https://joind.in/9283 Versioning ● Master / trunk should always be deployable ● Any change in master / trunk should result in a release candidate ● Release branches, develop mainlines and other constructs do not play a role with Continuous Deployment – There are exceptions
https://joind.in/9283 Goal ● Determine how to start automating your build and deployment process ● Review your deployment strategy ● Automate your deployment process using phing
https://joind.in/9283 Deployment strategy ● Have a symlink representing your current release ● Upload your new release to a separate folder ● Integrate configuration in the new folder ● Create symlink of the new release ● Move the symlink of the new release over the current using `mv -Tf`
https://joind.in/9283 Goal ● Add a new staging environment to puppet ● Change our deployment action to deploy to staging instead of production – using the changes of last exercise
https://joind.in/9283 Adding a new Deploy job ● Add a new job `blog-deploy` ● Configure `blog` job to archive the build ● Configure `blog-deploy` job to use the archived build
https://joind.in/9283 Goal ● Create a Behat test ● Alter our build file and add a UAT stage ● Add a new UAT job ● Persist workspace between jobs ● Automatically trigger UAT job after `blog` job ● Move deployment to staging from `blog` to UAT job ● Test our new process
https://joind.in/9283 About me ● I am Mike van Riel ● Lead Developer for phpDocumentor ● Software Composer at Ingewikkeld ● Foster father of two cute dogs
https://joind.in/9283 Config flags ● Toggles features on and off ● Allows a team to continuously integrate ● Can be used for Canary testing ● Provides a rollback in case of flawed functionality
https://joind.in/9283 Think about the following ● Versioning your application ● Versioning your environment ● Version numbering ● Which tools to use ● How to react on a build failure
https://joind.in/9283 Versioning ● Master/trunk should always be deployable ● Any change in master / trunk should result in a release candidate ● Release branches, develop mainlines and other constructs do not play a role with Continuous Deployment – There are exceptions
https://joind.in/9283 Goal ● Determine how to start automating your build and deployment process ● Review your deployment strategy ● Automate your deployment process using phing
https://joind.in/9283 Deployment strategy ● Have a symlink representing your current release ● Upload your new release to a separate folder ● Integrate configuration in the new folder ● Create symlink of the new release ● Move the symlink of the new release over the current using `mv -Tf`
https://joind.in/9283 Goal ● Add a new staging environment to puppet ● Change our deployment action to deploy to staging instead of production – using the changes of last exercise
https://joind.in/9283 Adding a new Deploy job ● Add a new job `blog-deploy` ● Configure `blog` job to archive the build ● Configure `blog-deploy` job to use the archived build
https://joind.in/9283 Goal ● Create a Behat test ● Alter our build file and add a UAT stage ● Add a new UAT job ● Persist workspace between jobs ● Automatically trigger UAT job after `blog` job ● Move deployment to staging from `blog` to UAT job ● Test our new process