SlideShare a Scribd company logo
1 of 86
High Stakes Continuous
Delivery in the Real World
Presented by Joshua Warren
OR:
How I Learned To Stop
Worrying and Love
Deployments
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.
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
Bamboo Environments
• Environments are just labels
• Environment-specific details will be stored
elsewhere
Bamboo Tasks
• Tasks are where the magic happens
• We use tasks to trigger our deployment system,
rocketeer
For now, it’s a magic box…
What’s Rocketeer?
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
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
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!
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

What's hot

Building An Automated Infrastructure
Building An Automated InfrastructureBuilding An Automated Infrastructure
Building An Automated Infrastructureelliando dias
 
Dennis Benkert - The Dog Ate My Deployment - Symfony Usergroup Berlin March ...
Dennis Benkert -  The Dog Ate My Deployment - Symfony Usergroup Berlin March ...Dennis Benkert -  The Dog Ate My Deployment - Symfony Usergroup Berlin March ...
Dennis Benkert - The Dog Ate My Deployment - Symfony Usergroup Berlin March ...D
 
The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013
The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013
The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013D
 
Google App Engine: For PHP Developers
Google App Engine: For PHP DevelopersGoogle App Engine: For PHP Developers
Google App Engine: For PHP DevelopersAbu Ashraf Masnun
 
The Dog Ate My Deployment - PHP Uncoference September 2013
The Dog Ate My Deployment - PHP Uncoference September 2013The Dog Ate My Deployment - PHP Uncoference September 2013
The Dog Ate My Deployment - PHP Uncoference September 2013D
 
Jenkins hand in hand
Jenkins  hand in handJenkins  hand in hand
Jenkins hand in handnetdbncku
 
Control-with-Ansible-Tower
Control-with-Ansible-TowerControl-with-Ansible-Tower
Control-with-Ansible-TowerMark Costin
 
Continuous Delivery 101
Continuous Delivery 101Continuous Delivery 101
Continuous Delivery 101Martin Etmajer
 
PHP Continuous Data Processing
PHP Continuous Data ProcessingPHP Continuous Data Processing
PHP Continuous Data ProcessingMichael Peacock
 
Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)Eugenio Minardi
 
Introduction to Test Kitchen and InSpec
Introduction to Test Kitchen and InSpecIntroduction to Test Kitchen and InSpec
Introduction to Test Kitchen and InSpecNathen Harvey
 
Effective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecEffective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecNathen Harvey
 
Bay Area Chef Meetup February
Bay Area Chef Meetup FebruaryBay Area Chef Meetup February
Bay Area Chef Meetup FebruaryJessica DeVita
 
Introduction to Automated Deployments with Ansible
Introduction to Automated Deployments with AnsibleIntroduction to Automated Deployments with Ansible
Introduction to Automated Deployments with AnsibleMartin Etmajer
 
Ansible training | redhat Ansible 2.5 Corporate course - GOT
Ansible training | redhat Ansible 2.5 Corporate course - GOTAnsible training | redhat Ansible 2.5 Corporate course - GOT
Ansible training | redhat Ansible 2.5 Corporate course - GOTkeerthi124
 
Effective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecEffective Testing with Ansible and InSpec
Effective Testing with Ansible and InSpecNathen Harvey
 
Web Performance Culture and Tools at Etsy
Web Performance Culture and Tools at EtsyWeb Performance Culture and Tools at Etsy
Web Performance Culture and Tools at EtsyMike Brittain
 
Running operations in 2 hours at DevTernity 2015
Running operations in 2 hours at DevTernity 2015Running operations in 2 hours at DevTernity 2015
Running operations in 2 hours at DevTernity 2015Erno Aapa
 

What's hot (20)

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

Viewers also liked

Derecho informatico
Derecho informaticoDerecho informatico
Derecho informaticojorge quispe
 
Teletrabajo en la administración pública
Teletrabajo  en  la administración públicaTeletrabajo  en  la administración pública
Teletrabajo en la administración públicaDiiana Maquera
 
Contratación electrónica y contratación informática
Contratación electrónica y contratación informáticaContratación electrónica y contratación informática
Contratación electrónica y contratación informáticaVania Callacondo
 
Proyección de estudios.
Proyección de estudios.Proyección de estudios.
Proyección de estudios.Abel Suing
 
[8] kkm ski vii 1 &amp; 2
[8] kkm ski vii 1 &amp; 2[8] kkm ski vii 1 &amp; 2
[8] kkm ski vii 1 &amp; 2arifrahman9709
 
Microservices Using Docker Containers for Magento 2
Microservices Using Docker Containers for Magento 2Microservices Using Docker Containers for Magento 2
Microservices Using Docker Containers for Magento 2Schogini Systems Pvt Ltd
 
Communications matter - how refining your organisation's story can transform ...
Communications matter - how refining your organisation's story can transform ...Communications matter - how refining your organisation's story can transform ...
Communications matter - how refining your organisation's story can transform ...CharityComms
 
Storytelling - drawing on emotion. Small charities communications conference,...
Storytelling - drawing on emotion. Small charities communications conference,...Storytelling - drawing on emotion. Small charities communications conference,...
Storytelling - drawing on emotion. Small charities communications conference,...CharityComms
 
Presentación taxonomía SOLO para diseño de pruebas #ComunicaciónSocial @utpl
Presentación taxonomía SOLO para diseño de pruebas #ComunicaciónSocial @utplPresentación taxonomía SOLO para diseño de pruebas #ComunicaciónSocial @utpl
Presentación taxonomía SOLO para diseño de pruebas #ComunicaciónSocial @utplAbel Suing
 
Hairdresser in Essendon
Hairdresser in EssendonHairdresser in Essendon
Hairdresser in Essendonhairsalones
 

Viewers also liked (14)

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

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

Continuous Integration Testing in Django
Continuous Integration Testing in DjangoContinuous Integration Testing in Django
Continuous Integration Testing in DjangoKevin Harvey
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Fabrice Bernhard
 
Sai devops - the art of being specializing generalist
Sai   devops - the art of being specializing generalistSai   devops - the art of being specializing generalist
Sai devops - the art of being specializing generalistOdd-e
 
The development environment
The development environmentThe development environment
The development environmentLee Pelser
 
DevOps: The New Face Of Application Development - Global Azure Bootcamp
DevOps: The New Face Of Application Development - Global Azure BootcampDevOps: The New Face Of Application Development - Global Azure Bootcamp
DevOps: The New Face Of Application Development - Global Azure BootcampRichard Harbridge
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Lean IT Consulting
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at ScaleKris Buytaert
 
Behavior & Specification Driven Development in PHP - #OpenWest
Behavior & Specification Driven Development in PHP - #OpenWestBehavior & Specification Driven Development in PHP - #OpenWest
Behavior & Specification Driven Development in PHP - #OpenWestJoshua Warren
 
Best practices for implementing CI/CD on Salesforce
Best practices for implementing CI/CD on SalesforceBest practices for implementing CI/CD on Salesforce
Best practices for implementing CI/CD on SalesforceAIMDek Technologies
 
Continuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon OttoContinuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon OttoPeter Bittner
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleArnaud LEMAIRE
 
Beyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver SoftwareBeyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver SoftwareChris Weldon
 
Principles and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyPrinciples and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyMike Brittain
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java binOlve Hansen
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - FunaroCodemotion
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014David Funaro
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeSteve Mercier
 
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALM
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALMPráticas, Técnicas e Ferramentas para Continuous Delivery com ALM
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALMMarcelo Sousa Ancelmo
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php PresentationAlan Pinstein
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsDmitry Buzdin
 

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

Continuous Integration Testing in Django
Continuous Integration Testing in DjangoContinuous Integration Testing in Django
Continuous Integration Testing in Django
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
 
Sai devops - the art of being specializing generalist
Sai   devops - the art of being specializing generalistSai   devops - the art of being specializing generalist
Sai devops - the art of being specializing generalist
 
The development environment
The development environmentThe development environment
The development environment
 
DevOps: The New Face Of Application Development - Global Azure Bootcamp
DevOps: The New Face Of Application Development - Global Azure BootcampDevOps: The New Face Of Application Development - Global Azure Bootcamp
DevOps: The New Face Of Application Development - Global Azure Bootcamp
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
Behavior & Specification Driven Development in PHP - #OpenWest
Behavior & Specification Driven Development in PHP - #OpenWestBehavior & Specification Driven Development in PHP - #OpenWest
Behavior & Specification Driven Development in PHP - #OpenWest
 
Best practices for implementing CI/CD on Salesforce
Best practices for implementing CI/CD on SalesforceBest practices for implementing CI/CD on Salesforce
Best practices for implementing CI/CD on Salesforce
 
Continuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon OttoContinuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon Otto
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & Ansible
 
Beyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver SoftwareBeyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver Software
 
Principles and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyPrinciples and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at Etsy
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALM
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALMPráticas, Técnicas e Ferramentas para Continuous Delivery com ALM
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALM
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php Presentation
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 

More from Joshua Warren

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

More from Joshua Warren (20)

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

Recently uploaded

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Recently uploaded (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

High Stakes Continuous Delivery in the Real World #OpenWest