SlideShare a Scribd company logo
High Stakes Continuous
Delivery in the Real World
Presented by Joshua Warren
OR:
How I Learned To Stop
Worrying and Love
Deployments
High Stakes Continuous Delivery in the Real World #OpenWest
About Me
PHP Developer
Working with PHP since 1999
Founder & CEO
Founded Creatuity in 2008
PHP Development Firm
Focused on the Magento platform
Some of our developers, October ‘12
Frequent Conference Presenter
Occasional Open Source Contributor
Over-Tweeter
JoshuaWarren.com
@JoshuaSWarren
IMPORTANT!
• joind.in/13900
• Download slides
• Post comments
• Leave a rating!
What’s That?
CONTINUOUS DELIVERY
–ContinuousDelivery.com
“Releasing high quality software fast
through build, test and deployment
automation.”
Testing + Automation
Increases confidence in completed code
Decreases delay between task completion
& deployment
#OpenWest
Continuous delivery is a
mindset, not a technology.
Any code you commit may
be released to customers at
any point.
High Stakes Continuous Delivery in the Real World #OpenWest
Yes, any code you commit
may be released to
customers at any point.
Commits made by Google’s
Customer Surveys team are
live in production in just 8
minutes.
Or: The Benefits of Continuous Delivery
WHY WOULD YOU DO THAT?!
Frequent feedback from end-users
Business advantages - reduce time to market,
react to changes faster
Efficient
Developers focus on developing, not deploying
Or: How to Implement Continuous Delivery for PHP Projects
OK, YOU’VE CONVINCED US…
Prerequisites
• Automated testing
• Authority to change processes
#OpenWest
Make your workflow and process
changes before beginning to
implement a continuous delivery
system.
Change Your Workflow Today
Our Workflow at Creatuity
Each branch should be a self-contained new
feature
When work is complete on a branch, that branch
must be completely ready to deploy
Completed branch is tested by our continuous
integration server
Completed branch is tested by our QA team
Branch is indicated as deploy-ready
Branch is deployed to production
CI Server
• Bamboo, Jenkins or ? - choice is yours
• Our examples will use Bamboo
Bamboo Testing
• Configure it to your liking
• We use phing, phpunit, etc
• Must define an artifact, but can be empty
Bamboo Deployments
• Create a deployment project
• Define an environment - in our case, ‘Staging’
• Attach it to your build plan used for testing
High Stakes Continuous Delivery in the Real World #OpenWest
Bamboo Environments
• Environments are just labels
• Environment-specific details will be stored
elsewhere
High Stakes Continuous Delivery in the Real World #OpenWest
Bamboo Tasks
• Tasks are where the magic happens
• We use tasks to trigger our deployment system,
rocketeer
High Stakes Continuous Delivery in the Real World #OpenWest
For now, it’s a magic box…
What’s Rocketeer?
High Stakes Continuous Delivery in the Real World #OpenWest
But we’ll learn more in a bit…
Yup, a magic box
Rocketeer Check Task
rocketeer check --on-staging -n
Rocketeer Deploy Task
rocketeer deploy —on-staging -n
#OpenWest
Four short tasks in Bamboo are all it
takes to automate deploying your PHP
projects.
Bamboo Triggers
Deploys are triggered on schedule or after every passing build
Bamboo Notifications
We trigger HipChat notification on every deploy start & finish
Each Successful Build Results in an Automatic
Deployment
Deployments are reported to HipChat, appear on
the deployment board in Bamboo
High Stakes Continuous Delivery in the Real World #OpenWest
JIRA Integration
Include JIRA issue keys in your
commit message
#OpenWest
Bamboo + Rocketeer takes us from
passed test to deployment in less than
half an hour with no manual steps.
The magic behind our automatic deployments
ROCKETEER
High Stakes Continuous Delivery in the Real World #OpenWest
Not That Rocketeer
github.com/rocketeers/rocketeer
rocketeer.autopergamene.eu
Rocketeer is a modern PHP task runner and
deployment package.
Install Rocketeer
wget http://rocketeer.autopergamene.eu/versions/rocketeer.phar
chmod +x rocketeer.phar
mv rocketeer.phar /usr/local/bin/rocketeer
Configure Rocketeer
cd <checked out copy of your codebase>
rocketeer ignite
Rocketeer adds a .rocketeer folder to your project
Commit this folder
Committing .rocketeer allows Bamboo plus
anyone on your team to run deployments
‘rocketeer ignite’ will configure most of it’s files for you
We’ll modify a few of the files for project-specific details
Don’t worry…
.rocketeer/config.php
Edit host record if you’re using a non-standard SSH port
.rocketeer/hooks.php
• Add project-specific commands
• We’ll add a few Magento-specific items
.rocketeer/hooks.php
'before' => [
'setup' => [],
'deploy' => array(
'magerun sys:maintenance --on'
),
'cleanup' => [],
],
.rocketeer/hooks.php
'after' => [
'setup' => [],
'deploy' => [],
'cleanup' => array(
'magerun sys:setup:run',
'magerun cache:clean',
'magerun cache:flush',
'magerun index:reindex:all',
'magerun sys:maintenance --off',
),
],
.rocketeer/remote.php
'shared' => [
'media',
'var',
'app/etc/local.xml',
],
.rocketeer/strategies.php
return $composer->install([], ['--no-interaction' => null, ’--no-dev'
=> null, '--prefer-dist' => null, '--no-plugins' => null]);
Next Up
• Commit these changes to your Rocketeer files
• Prepare your server to receive the deployment
Server File Structure
• current
• releases
• shared
File Structure
• current and releases are managed by Rocketeer
• shared contains folders shared by each release
Magento Shared Files
• app/etc/local.xml
• media
• var
Rocketeer Folder Structure
• Rocketeer deploys to a new folder under
releases
• Updates symlinks to shared folder
• Then updates current symlink to new release
Rocketeer Prep
• Make sure SSH keys are setup correctly
• Rocketeer will connect to your SSH repo via your
server - before running deploy for the first time,
test your SSH setup
SSH config file
Host yourGitServer.example
HostName yourGitServer.example
IdentityFile ~/.ssh/your_public_key_rsa
IdentitiesOnly yes
Rocketeer Prep
• rocketeer check
• rocketeer deploy —pretend
• That’s it - you’re ready to deploy!
High Stakes Continuous Delivery in the Real World #OpenWest
Or: What’s Next?
WHERE DO WE GO FROM
HERE?
Advanced Rocketeering
• Custom tasks
• Listening to events, firing events
• Task builder
• Task queues
Feature Toggles
• First step of implementing a new feature - wrap it
in a feature toggle
• Code only executes if feature is enabled
• Enables deploying new code immediately
Canaries
• Deploy to a small portion of your site’s traffic
• Compare error rates between new & old version
• If error rate is same or lower, deploy globally
Don’t get distracted by these advanced concepts -
start by moving to basic continuous delivery first.
Keep In Touch!
• joind.in/13900
• @JoshuaSWarren
• JoshuaWarren.com

More Related Content

PPTX
Windows Configuration Management: Managing Packages, Services, & Power Shell-...
PPT
Installation Guide - Octopus
PDF
Systems Automation with Puppet
PDF
Hyper-Efficient Mac Deployment
PPT
State of Puppet 2013 - Puppet Camp DC
PPT
Deploying Rails at SeeClickFix
ODP
Automated Deployment using Open Source
PPT
Free tools for rapidly deploying software
Windows Configuration Management: Managing Packages, Services, & Power Shell-...
Installation Guide - Octopus
Systems Automation with Puppet
Hyper-Efficient Mac Deployment
State of Puppet 2013 - Puppet Camp DC
Deploying Rails at SeeClickFix
Automated Deployment using Open Source
Free tools for rapidly deploying software

What's hot (20)

PPT
Building An Automated Infrastructure
PDF
Dennis Benkert - The Dog Ate My Deployment - Symfony Usergroup Berlin March ...
 
PDF
The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013
 
PDF
Google App Engine: For PHP Developers
PPTX
The Dog Ate My Deployment - PHP Uncoference September 2013
 
PDF
Jenkins hand in hand
PDF
Control-with-Ansible-Tower
PPTX
Automated Deployments
PDF
Continuous Delivery 101
PPTX
PHP Continuous Data Processing
PDF
Drupal Continuous Integration (European Drupal Days 2015)
PPTX
Introduction to Test Kitchen and InSpec
PPTX
Effective Testing with Ansible and InSpec
PDF
Bay Area Chef Meetup February
PPTX
Introduction to Automated Deployments with Ansible
PPTX
owasp top 10
PPTX
Ansible training | redhat Ansible 2.5 Corporate course - GOT
PPTX
Effective Testing with Ansible and InSpec
PDF
Web Performance Culture and Tools at Etsy
PDF
Running operations in 2 hours at DevTernity 2015
Building An Automated Infrastructure
Dennis Benkert - The Dog Ate My Deployment - Symfony Usergroup Berlin March ...
 
The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013
 
Google App Engine: For PHP Developers
The Dog Ate My Deployment - PHP Uncoference September 2013
 
Jenkins hand in hand
Control-with-Ansible-Tower
Automated Deployments
Continuous Delivery 101
PHP Continuous Data Processing
Drupal Continuous Integration (European Drupal Days 2015)
Introduction to Test Kitchen and InSpec
Effective Testing with Ansible and InSpec
Bay Area Chef Meetup February
Introduction to Automated Deployments with Ansible
owasp top 10
Ansible training | redhat Ansible 2.5 Corporate course - GOT
Effective Testing with Ansible and InSpec
Web Performance Culture and Tools at Etsy
Running operations in 2 hours at DevTernity 2015
Ad

Viewers also liked (14)

DOC
Resume
PPTX
Derecho informatico
PPTX
Teletrabajo en la administración pública
PPTX
Contratación electrónica y contratación informática
PPTX
Proyección de estudios.
PPTX
Fiscalidad en internet
DOC
[8] kkm ski vii 1 &amp; 2
PPT
Comercio electronico
PDF
Microservices Using Docker Containers for Magento 2
PDF
Communications matter - how refining your organisation's story can transform ...
PDF
Storytelling - drawing on emotion. Small charities communications conference,...
PPTX
Presentación taxonomía SOLO para diseño de pruebas #ComunicaciónSocial @utpl
PDF
Padrão ampla
PPTX
Hairdresser in Essendon
Resume
Derecho informatico
Teletrabajo en la administración pública
Contratación electrónica y contratación informática
Proyección de estudios.
Fiscalidad en internet
[8] kkm ski vii 1 &amp; 2
Comercio electronico
Microservices Using Docker Containers for Magento 2
Communications matter - how refining your organisation's story can transform ...
Storytelling - drawing on emotion. Small charities communications conference,...
Presentación taxonomía SOLO para diseño de pruebas #ComunicaciónSocial @utpl
Padrão ampla
Hairdresser in Essendon
Ad

Similar to High Stakes Continuous Delivery in the Real World #OpenWest (20)

PDF
Continuous Integration Testing in Django
PPTX
drupal ci cd concept cornel univercity.pptx
PDF
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
ODP
Sai devops - the art of being specializing generalist
PDF
The development environment
PPTX
DevOps: The New Face Of Application Development - Global Azure Bootcamp
PDF
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
PDF
Deploying software at Scale
PDF
Behavior & Specification Driven Development in PHP - #OpenWest
PPTX
Best practices for implementing CI/CD on Salesforce
PDF
Continuous Delivery for Python Developers – PyCon Otto
PPTX
DevOps, A brief introduction to Vagrant & Ansible
KEY
Beyond TDD: Enabling Your Team to Continuously Deliver Software
PDF
DIY Transparent Release Management_2024_07.pdf
PDF
Principles and Practices in Continuous Deployment at Etsy
PDF
Docker presentasjon java bin
PDF
The Continuous delivery Value @ codemotion 2014
PDF
The Continuous delivery value - Funaro
PDF
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
PDF
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALM
Continuous Integration Testing in Django
drupal ci cd concept cornel univercity.pptx
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Sai devops - the art of being specializing generalist
The development environment
DevOps: The New Face Of Application Development - Global Azure Bootcamp
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Deploying software at Scale
Behavior & Specification Driven Development in PHP - #OpenWest
Best practices for implementing CI/CD on Salesforce
Continuous Delivery for Python Developers – PyCon Otto
DevOps, A brief introduction to Vagrant & Ansible
Beyond TDD: Enabling Your Team to Continuously Deliver Software
DIY Transparent Release Management_2024_07.pdf
Principles and Practices in Continuous Deployment at Etsy
Docker presentasjon java bin
The Continuous delivery Value @ codemotion 2014
The Continuous delivery value - Funaro
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALM

More from Joshua Warren (20)

PDF
Enhancing the Customer Experience with Chatbots
PPTX
Transforming the Customer Experience Across 100 Stores with Magento
PPTX
Its Just Commerce - IRCE 2018
PDF
Rural King Case Study from the Omnichannel Retail Summit
PPTX
Avoiding Commerce Extinction: Lessons from Retail Dinosaurs
PPTX
Building a Global B2B Empire: Using Magento to Power International Expansion
PDF
Magento 2 ERP Integration Best Practices: Microsoft Dynamics
PDF
What's New With Magento 2?
PDF
Magento 2 Performance: Every Second Counts
PDF
Magento 2 Development for PHP Developers
PDF
Pay No Attention to the Project Manager Behind the Curtain: A Magento 2 Tell-All
PDF
Magento 2 Integrations: ERPs, APIs, Webhooks & Rabbits! - MageTitansUSA 2016
PDF
How I Learned to Stop Worrying and Love Composer - php[world] 2015
PDF
Magento 2 Dependency Injection, Interceptors, and You - php[world] 2015
PDF
Work Life Balance for Passionate Developers - Full Stack Toronto 2015 Edition
PDF
Magento 2 - An Intro to a Modern PHP-Based System - ZendCon 2015
PDF
pnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For You
PDF
Magento 2 - An Intro to a Modern PHP-Based System - Northeast PHP 2015
PDF
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PDF
Get Out of the Back Row! A Community Involvement Primer - #OpenWest
Enhancing the Customer Experience with Chatbots
Transforming the Customer Experience Across 100 Stores with Magento
Its Just Commerce - IRCE 2018
Rural King Case Study from the Omnichannel Retail Summit
Avoiding Commerce Extinction: Lessons from Retail Dinosaurs
Building a Global B2B Empire: Using Magento to Power International Expansion
Magento 2 ERP Integration Best Practices: Microsoft Dynamics
What's New With Magento 2?
Magento 2 Performance: Every Second Counts
Magento 2 Development for PHP Developers
Pay No Attention to the Project Manager Behind the Curtain: A Magento 2 Tell-All
Magento 2 Integrations: ERPs, APIs, Webhooks & Rabbits! - MageTitansUSA 2016
How I Learned to Stop Worrying and Love Composer - php[world] 2015
Magento 2 Dependency Injection, Interceptors, and You - php[world] 2015
Work Life Balance for Passionate Developers - Full Stack Toronto 2015 Edition
Magento 2 - An Intro to a Modern PHP-Based System - ZendCon 2015
pnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For You
Magento 2 - An Intro to a Modern PHP-Based System - Northeast PHP 2015
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
Get Out of the Back Row! A Community Involvement Primer - #OpenWest

Recently uploaded (20)

PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Tartificialntelligence_presentation.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Mushroom cultivation and it's methods.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Machine Learning_overview_presentation.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Mobile App Security Testing_ A Comprehensive Guide.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Empathic Computing: Creating Shared Understanding
Programs and apps: productivity, graphics, security and other tools
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Tartificialntelligence_presentation.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
NewMind AI Weekly Chronicles - August'25-Week II
Mushroom cultivation and it's methods.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Network Security Unit 5.pdf for BCA BBA.
Digital-Transformation-Roadmap-for-Companies.pptx
Machine Learning_overview_presentation.pptx
Spectroscopy.pptx food analysis technology
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Agricultural_Statistics_at_a_Glance_2022_0.pdf

High Stakes Continuous Delivery in the Real World #OpenWest