SlideShare a Scribd company logo
Release and Dependency
Management
Joe Ferguson
This is not a Code Talk
What’s “Scale”?
“At Scale”
http://www.pcmag.com/encyclopedia/term/68176/at-scale
“…at the required size to solve
the problem…”
What’s “Enterprise”?
http://www.pcmag.com/encyclopedia/term/42637/enterprise
Any undertaking or project, with the
implication that it is of reasonable size
and complexity.
Everyone is at “Enterprise”
“Scale”
Brands
http://corp.aol.com/mission
Enterprise === A lot
http://hyperboleandahalf.blogspot.com/2010/04/alot-is-better-than-you-at-
everything.html
We’re a small(ish) team
2 Front End Devs
6 Back end Devs
1 Architect / Product Manager
1 Manager
Foundation of our Applications
Modern*
Well Tested
Semantic Versioning
Peer Approval
Continuous Integration
Client Focused Solutions
Our CMS Application
Start with a strong version
control process/strategy
New Feature Git Workflow
Pull master branch
New Feature Git Workflow
Pull master branch
checkout new branch named feature/new-feature-description
New Feature Git Workflow
Pull master branch
checkout new branch named feature/new-feature-description
change code <where the magic happens>
New Feature Git Workflow
Pull master branch
checkout new branch named feature/new-feature-description
change code <where the magic happens>
Commit changes and open pull request against the develop
branch
New Feature Git Workflow
Pull master branch
checkout new branch named feature/new-feature-description
change code <where the magic happens>
Commit changes and open pull request against the develop branch
Wait for two peers to approve changes <jeopardy theme plays>
New Feature Git Workflow
Pull master branch
checkout new branch named feature/new-feature-description
change code <where the magic happens>
Commit changes and open pull request against the develop branch
Wait for two peers to approve changes <jeopardy theme plays>
Merge pull request into the develop branch
Commit & Versioning Tools
Emoji in your commits!
https://github.com/slashsBin/styleguide-git-commit-message
Commit tool to automate messages
https://github.com/jakeasmith/commit
export GIT_EDITOR=~/
PhpstormProjects/commit/bin/commit
Commit tool to automate messages
https://github.com/jakeasmith/commit
Identify What Changed
Bump!
https://github.com/jakeasmith/bump
$ bump major|minor|patch
Wait for package repo to index
new version
Deployment Cycles, Waterfalls,
Sprints, Kanban, and bears oh my!
Find what works for you
Kanban
Two Week Release Cycle
Code Freeze and Release
Branches
Two Week Release Cycle
Wednesday before release is a Release Candidate Code Freeze
Release branches are created from develop branch
Release branches deployed to staging servers
Testing on Staging Servers
Two Week Release Cycle
Wednesday before release is a Release Candidate Code Freeze
Release branches are created from develop branch
Release branches deployed to staging servers
Developers & Clients test changes on staging servers & sign off
From Wednesday to Tuesday is testing time
Production Deployment
Two Week Release Cycle
Wednesday before release is a Release Candidate Code Freeze
Release branches are created from develop branch
Release branches deployed to staging servers
Developers & Clients test changes on staging servers & sign off
From Wednesday to Tuesday is testing time
Tuesday following the RC freeze is production deploy
Release branches are Merged into master via same 2 peer approval pull request
process
Production Deployment
Two Week Release Cycle
Wednesday before release is a Release Candidate Code Freeze
Release branches are created from develop branch
Release branches deployed to staging servers
Developers & Clients test changes on staging servers & sign off
From Wednesday to Tuesday is testing time
Tuesday following the RC freeze is production deploy
Release branches are Merged into master via same 2 peer approval pull request process
Code is deployed to production
When something breaks…
Hotfixes and Bugfixes
Hotfixes are branches named hotfix/description that are opened
against master
Hotfixes are how we patch production
Hotfixes and Bugfixes
Hotfixes are branches named hotfix/description that are opened
against master
Hotfixes are how we patch production
Bug fixes are when we find issues after the RC freeze but before RC
branch merging to master
Bug fix branches are named bugfix/description that are opened
against the release branch
That’s how we deploy features
to our CMS
Our CI/CD Hero
Jenkins Automation
Build & Run Tests
Build Docker Images & Test
Build & Deploy Applications
Sound the alarms when something breaks
Slack Notifications in a CI/CD Channel
That’s how we deploy features
to our CMS, API,
That’s how we deploy features
to our CMS, API, Design Tool,
That’s how we deploy features to
our CMS, API, Design Tool, and
other standalone applications
Architecture
CMS
API
Design Tool
A lot of shared logic
Enter: “Core”
Architecture
CMS
API
Design Tool
Core
composer require aol/core
*not the actual package name
Control Version Constraints
{
"require": {
"aol/core": "^17",
}
}
Lock To A Minor Version
{
"require": {
"aol/core": “^17.10",
}
}
We now have access to all of the logic
in Core in all of our applications
Core Git Workflow
No develop branch
No Hotfixes, or Bugfix branches
All changes are via pull request against master
After PRs are approved and merged version tags are bumped
Semantic versioning is your friend
Individual applications update their own core versions at their own pace
(During normal deployment cycles)
Architecture
CMS
API
Design Tool
Core
Version 15.1.3
Version 17.6.13
Version 17.0.0
Remember Scale?
Core is just another
application…
“Compromise is essential because
there are no ideal solutions, only
trade-offs”
Thomas Sowell - “A Conflict of Vision”
Follow your process
Joe Ferguson
Twitter: @JoePFerguson
Email: joe@joeferguson.me
Freenode: joepferguson
Contact Info:

More Related Content

What's hot (20)

PDF
Quickstart Templates with the Salesforce CLI
Keir Bowden
 
PPTX
Techniques and Tools to Improve the Salesforce Development Cycle
Salesforce Developers
 
PDF
Ctc people product development and release process
Andy Yang
 
PDF
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
Elias Nogueira
 
PPT
Test Automation With Cucumber JVM, Selenium, and Mocha
Salesforce Developers
 
PDF
Designing Forge UI: A Story of Designing an App UI System
Atlassian
 
PPTX
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
CloudBees
 
PPTX
Introducing OpenAPI Version 3.1
SmartBear
 
PDF
An Introduction to Dependency Injection
Adam Stephensen
 
PDF
Git and Git Workflow Models as Catalysts of Software Development
Lemi Orhan Ergin
 
PPTX
API Testing with Open Source Code and Cucumber
SmartBear
 
KEY
How we git - commit policy and code review
Ruben Tan
 
DOCX
Yauheni_Semchanka_CV
Eugeni Semchenko
 
PDF
London's calling 2020 Documentor Plug-In
Keir Bowden
 
PDF
Londons Calling 2021
Keir Bowden
 
PDF
James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie Christie
 
PDF
Testing Salesforce at Cloud Scale
gwestr
 
PDF
Introduction to Git for Force.com Developers
Salesforce Developers
 
PPT
Dreamforce 13 developer session: Git for Force.com developers
John Stevenson
 
PPT
Automated Testing and Continuous Integration for Mobile Apps: Jenkins & Cloud...
SOASTA
 
Quickstart Templates with the Salesforce CLI
Keir Bowden
 
Techniques and Tools to Improve the Salesforce Development Cycle
Salesforce Developers
 
Ctc people product development and release process
Andy Yang
 
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
Elias Nogueira
 
Test Automation With Cucumber JVM, Selenium, and Mocha
Salesforce Developers
 
Designing Forge UI: A Story of Designing an App UI System
Atlassian
 
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
CloudBees
 
Introducing OpenAPI Version 3.1
SmartBear
 
An Introduction to Dependency Injection
Adam Stephensen
 
Git and Git Workflow Models as Catalysts of Software Development
Lemi Orhan Ergin
 
API Testing with Open Source Code and Cucumber
SmartBear
 
How we git - commit policy and code review
Ruben Tan
 
Yauheni_Semchanka_CV
Eugeni Semchenko
 
London's calling 2020 Documentor Plug-In
Keir Bowden
 
Londons Calling 2021
Keir Bowden
 
James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie Christie
 
Testing Salesforce at Cloud Scale
gwestr
 
Introduction to Git for Force.com Developers
Salesforce Developers
 
Dreamforce 13 developer session: Git for Force.com developers
John Stevenson
 
Automated Testing and Continuous Integration for Mobile Apps: Jenkins & Cloud...
SOASTA
 

Similar to Release and-dependency-management memphis python (20)

PDF
Composer at Scale, Release and Dependency Management
Joe Ferguson
 
PDF
Principles and Practices in Continuous Deployment at Etsy
Mike Brittain
 
PPTX
Simplify your code with Salesforce DX and module development
Salesforce Developers
 
PDF
DIY Transparent Release Management_2024_07.pdf
Oleh Sklyarenko
 
PPTX
Visual Studio 2017 - Montreal Launch Event
Guy Barrette
 
ODP
Jbossworld Presentation
Dan Hinojosa
 
PPTX
DevOps On AWS - Deep Dive on Continuous Delivery
Mikhail Prudnikov
 
PDF
Salesforce cicd integration a quick guide
Katy Slemon
 
PPTX
Continuous Testing 2016
Karim Fanadka
 
PPTX
Continuous Testing
Karim Fanadka
 
PPTX
Breaking the 2 Pizza Paradox with your Platform as an Application
Mark Rendell
 
PDF
Alexey Kupriyanenko "Release Early, Often, Stable"
Fwdays
 
PPTX
DOs and DONTs on the way to 10M users
Yoav Avrahami
 
PPTX
Agile & DevOps - It's all about project success
Adam Stephensen
 
PPTX
Action! Development and Operations for Sticker Shop
LINE Corporation
 
PDF
Tracking license compliance made easy - intro to Grant (OSS)
Anchore
 
PPTX
Is there a place for QA in autonomous fast flow teams?
SheenBrisals
 
PPTX
Visual studio 2017 - Launch Event Keynote
Delta-N
 
PPTX
ASP.NET Core For The Agile Enterprise
Dennis Moon
 
PDF
Apex triggers i
Obidjon Komiljonov
 
Composer at Scale, Release and Dependency Management
Joe Ferguson
 
Principles and Practices in Continuous Deployment at Etsy
Mike Brittain
 
Simplify your code with Salesforce DX and module development
Salesforce Developers
 
DIY Transparent Release Management_2024_07.pdf
Oleh Sklyarenko
 
Visual Studio 2017 - Montreal Launch Event
Guy Barrette
 
Jbossworld Presentation
Dan Hinojosa
 
DevOps On AWS - Deep Dive on Continuous Delivery
Mikhail Prudnikov
 
Salesforce cicd integration a quick guide
Katy Slemon
 
Continuous Testing 2016
Karim Fanadka
 
Continuous Testing
Karim Fanadka
 
Breaking the 2 Pizza Paradox with your Platform as an Application
Mark Rendell
 
Alexey Kupriyanenko "Release Early, Often, Stable"
Fwdays
 
DOs and DONTs on the way to 10M users
Yoav Avrahami
 
Agile & DevOps - It's all about project success
Adam Stephensen
 
Action! Development and Operations for Sticker Shop
LINE Corporation
 
Tracking license compliance made easy - intro to Grant (OSS)
Anchore
 
Is there a place for QA in autonomous fast flow teams?
SheenBrisals
 
Visual studio 2017 - Launch Event Keynote
Delta-N
 
ASP.NET Core For The Agile Enterprise
Dennis Moon
 
Apex triggers i
Obidjon Komiljonov
 
Ad

More from Joe Ferguson (20)

PDF
Modern infrastructure as code with ansible cake fest 2021
Joe Ferguson
 
PDF
Modern infrastructure as code with ansible PyTN
Joe Ferguson
 
PDF
Slim PHP when you don't need the kitchen sink
Joe Ferguson
 
PDF
Throwing Laravel into your Legacy App™
Joe Ferguson
 
PDF
DevSpace Conf 2017 - Making sense of the provisioning circus
Joe Ferguson
 
PDF
Put an end to regression with codeception testing
Joe Ferguson
 
PDF
Midwest PHP 2017 DevOps For Small team
Joe Ferguson
 
PDF
All the Laravel Things – Up & Running to Making $$
Joe Ferguson
 
PDF
Console Apps: php artisan forthe:win
Joe Ferguson
 
PDF
Console Apps: php artisan forthe:win
Joe Ferguson
 
PDF
All the Laravel things: up and running to making $$
Joe Ferguson
 
PDF
So You Just Inherited a $Legacy Application… NomadPHP July 2016
Joe Ferguson
 
PDF
So You Just Inherited a $Legacy Application...
Joe Ferguson
 
PDF
Laravel Forge: Hello World to Hello Production
Joe Ferguson
 
PDF
MidwestPHP 2016 - Adventures in Laravel 5
Joe Ferguson
 
PDF
Acceptance & Functional Testing with Codeception - SunshinePHP 2016
Joe Ferguson
 
PDF
Adventures in Laravel 5 SunshinePHP 2016 Tutorial
Joe Ferguson
 
PDF
php[world] 2015 Laravel 5.1: From Homestead to the Cloud
Joe Ferguson
 
PDF
php[world] 2015 Training - Laravel from the Ground Up
Joe Ferguson
 
PDF
Madison PHP 2015 - DevOps For Small Teams
Joe Ferguson
 
Modern infrastructure as code with ansible cake fest 2021
Joe Ferguson
 
Modern infrastructure as code with ansible PyTN
Joe Ferguson
 
Slim PHP when you don't need the kitchen sink
Joe Ferguson
 
Throwing Laravel into your Legacy App™
Joe Ferguson
 
DevSpace Conf 2017 - Making sense of the provisioning circus
Joe Ferguson
 
Put an end to regression with codeception testing
Joe Ferguson
 
Midwest PHP 2017 DevOps For Small team
Joe Ferguson
 
All the Laravel Things – Up & Running to Making $$
Joe Ferguson
 
Console Apps: php artisan forthe:win
Joe Ferguson
 
Console Apps: php artisan forthe:win
Joe Ferguson
 
All the Laravel things: up and running to making $$
Joe Ferguson
 
So You Just Inherited a $Legacy Application… NomadPHP July 2016
Joe Ferguson
 
So You Just Inherited a $Legacy Application...
Joe Ferguson
 
Laravel Forge: Hello World to Hello Production
Joe Ferguson
 
MidwestPHP 2016 - Adventures in Laravel 5
Joe Ferguson
 
Acceptance & Functional Testing with Codeception - SunshinePHP 2016
Joe Ferguson
 
Adventures in Laravel 5 SunshinePHP 2016 Tutorial
Joe Ferguson
 
php[world] 2015 Laravel 5.1: From Homestead to the Cloud
Joe Ferguson
 
php[world] 2015 Training - Laravel from the Ground Up
Joe Ferguson
 
Madison PHP 2015 - DevOps For Small Teams
Joe Ferguson
 
Ad

Recently uploaded (20)

PPTX
Cost_of_Quality_Presentation_Software_Engineering.pptx
farispalayi
 
PPTX
Optimization_Techniques_ML_Presentation.pptx
farispalayi
 
PPT
introductio to computers by arthur janry
RamananMuthukrishnan
 
PDF
Web Hosting for Shopify WooCommerce etc.
Harry_Phoneix Harry_Phoneix
 
PDF
𝐁𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓
hokimamad0
 
PPTX
sajflsajfljsdfljslfjslfsdfas;fdsfksadfjlsdflkjslgfs;lfjlsajfl;sajfasfd.pptx
theknightme
 
PPTX
Research Design - Report on seminar in thesis writing. PPTX
arvielobos1
 
PPTX
一比一原版(LaTech毕业证)路易斯安那理工大学毕业证如何办理
Taqyea
 
PPT
introduction to networking with basics coverage
RamananMuthukrishnan
 
PPTX
PE introd.pptxfrgfgfdgfdgfgrtretrt44t444
nepmithibai2024
 
PPTX
Orchestrating things in Angular application
Peter Abraham
 
PPTX
英国假毕业证诺森比亚大学成绩单GPA修改UNN学生卡网上可查学历成绩单
Taqyea
 
PPTX
本科硕士学历佛罗里达大学毕业证(UF毕业证书)24小时在线办理
Taqyea
 
PPTX
internet básico presentacion es una red global
70965857
 
PPTX
Presentation3gsgsgsgsdfgadgsfgfgsfgagsfgsfgzfdgsdgs.pptx
SUB03
 
PPTX
PM200.pptxghjgfhjghjghjghjghjghjghjghjghjghj
breadpaan921
 
PDF
The-Hidden-Dangers-of-Skipping-Penetration-Testing.pdf.pdf
naksh4thra
 
PDF
Apple_Environmental_Progress_Report_2025.pdf
yiukwong
 
PDF
Azure_DevOps introduction for CI/CD and Agile
henrymails
 
PPTX
L1A Season 1 ENGLISH made by A hegy fixed
toszolder91
 
Cost_of_Quality_Presentation_Software_Engineering.pptx
farispalayi
 
Optimization_Techniques_ML_Presentation.pptx
farispalayi
 
introductio to computers by arthur janry
RamananMuthukrishnan
 
Web Hosting for Shopify WooCommerce etc.
Harry_Phoneix Harry_Phoneix
 
𝐁𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓
hokimamad0
 
sajflsajfljsdfljslfjslfsdfas;fdsfksadfjlsdflkjslgfs;lfjlsajfl;sajfasfd.pptx
theknightme
 
Research Design - Report on seminar in thesis writing. PPTX
arvielobos1
 
一比一原版(LaTech毕业证)路易斯安那理工大学毕业证如何办理
Taqyea
 
introduction to networking with basics coverage
RamananMuthukrishnan
 
PE introd.pptxfrgfgfdgfdgfgrtretrt44t444
nepmithibai2024
 
Orchestrating things in Angular application
Peter Abraham
 
英国假毕业证诺森比亚大学成绩单GPA修改UNN学生卡网上可查学历成绩单
Taqyea
 
本科硕士学历佛罗里达大学毕业证(UF毕业证书)24小时在线办理
Taqyea
 
internet básico presentacion es una red global
70965857
 
Presentation3gsgsgsgsdfgadgsfgfgsfgagsfgsfgzfdgsdgs.pptx
SUB03
 
PM200.pptxghjgfhjghjghjghjghjghjghjghjghjghj
breadpaan921
 
The-Hidden-Dangers-of-Skipping-Penetration-Testing.pdf.pdf
naksh4thra
 
Apple_Environmental_Progress_Report_2025.pdf
yiukwong
 
Azure_DevOps introduction for CI/CD and Agile
henrymails
 
L1A Season 1 ENGLISH made by A hegy fixed
toszolder91
 

Release and-dependency-management memphis python