SlideShare a Scribd company logo
Composer at Scale,
Release and Dependency
Management
Joe Ferguson
Who Am I?
Joe Ferguson
PHP Developer
Engineer @ Aol.
Twitter: @JoePFerguson
Organizer of @MemphisPHP
OSMI Board Member
@NomadPHP Lightning Talks
Passionate about Community
This is not a Composer 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”
“Medium” Services
Follow your process
Feedback!
https://joind.in/talk/024d5
Joe Ferguson
Twitter: @JoePFerguson
Email: joe@joeferguson.me
Freenode: joepferguson
Contact Info:

More Related Content

PDF
Put an end to regression with codeception testing
PDF
Midwest PHP 2017 DevOps For Small team
PDF
So You Just Inherited a $Legacy Application...
PDF
Selenium conference, 2016
PDF
Continuous Integration: How I stopped guessing if that merge was bad
PDF
Speed up your Titanium app development with automated tests - TiConf EU 2014
PDF
How To Use Selenium Successfully (Java Edition)
PPTX
Build 2017 - B8093 - Nextgen UWP app distribution: Building extensible, strea...
Put an end to regression with codeception testing
Midwest PHP 2017 DevOps For Small team
So You Just Inherited a $Legacy Application...
Selenium conference, 2016
Continuous Integration: How I stopped guessing if that merge was bad
Speed up your Titanium app development with automated tests - TiConf EU 2014
How To Use Selenium Successfully (Java Edition)
Build 2017 - B8093 - Nextgen UWP app distribution: Building extensible, strea...

What's hot (20)

PDF
Laravel Forge: Hello World to Hello Production
PPTX
Advanced Appium
PPTX
Story Testing Approach for Enterprise Applications using Selenium Framework
PDF
Mobile automation using selenium cucumber & appium
PPTX
Moving From a Selenium Grid to the Cloud - A Real Life Story
PDF
Code Coverage for Total Security in Application Migrations
PDF
Scaling your Automated Tests: Docker and Kubernetes
PPTX
Async webdriverjs
PDF
Drupal Performance
PDF
Tooling for the productive front end developer
PDF
Drupalcamp Simpletest
PDF
Continuous delivery of your legacy application
PPTX
Beyond the Release: CI That Transforms Organizations
PPTX
Cypress workshop for JSFoo 2019
PPT
Selenium and Cucumber Selenium Conf 2011
KEY
Continuous Integration, the minimum viable product
PDF
Practical continuous quality gates for development process
PDF
Selenium Testing on Chrome - Google DevFest Armenia 2015
ODP
iOS Automation with Cucumber, Appium and Saucelabs
PDF
All the Laravel Things – Up & Running to Making $$
Laravel Forge: Hello World to Hello Production
Advanced Appium
Story Testing Approach for Enterprise Applications using Selenium Framework
Mobile automation using selenium cucumber & appium
Moving From a Selenium Grid to the Cloud - A Real Life Story
Code Coverage for Total Security in Application Migrations
Scaling your Automated Tests: Docker and Kubernetes
Async webdriverjs
Drupal Performance
Tooling for the productive front end developer
Drupalcamp Simpletest
Continuous delivery of your legacy application
Beyond the Release: CI That Transforms Organizations
Cypress workshop for JSFoo 2019
Selenium and Cucumber Selenium Conf 2011
Continuous Integration, the minimum viable product
Practical continuous quality gates for development process
Selenium Testing on Chrome - Google DevFest Armenia 2015
iOS Automation with Cucumber, Appium and Saucelabs
All the Laravel Things – Up & Running to Making $$
Ad

Similar to Composer at Scale, Release and Dependency Management (20)

PDF
Release and-dependency-management memphis python
PDF
SQL Server DevOps Jumpstart
PDF
Madison PHP 2015 - DevOps For Small Teams
PDF
ZendCon 2015 - DevOps for Small Teams
PDF
Real World Git Workflows - EclipseCon Europe 2013
PPTX
Git in Continuous Deployment
PDF
DevOps For Small Teams
PDF
DevOps: Automate all the things
PDF
PHP Deployment With SVN
PDF
Collaborative development with git
PDF
Git talk
PDF
Puppet camp london nov 2014 slides (1)
PDF
CICD_1670665418.pdf
PDF
Git and GitHub workflows
PDF
Deployment With Subversion - Lorna Mitchell
 
PDF
Deployment Tactics
PDF
Pipeline as code for your infrastructure as Code
PDF
A Tale of Two Workflows - ChefConf 2014
KEY
40 square's git workflow
PPTX
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Release and-dependency-management memphis python
SQL Server DevOps Jumpstart
Madison PHP 2015 - DevOps For Small Teams
ZendCon 2015 - DevOps for Small Teams
Real World Git Workflows - EclipseCon Europe 2013
Git in Continuous Deployment
DevOps For Small Teams
DevOps: Automate all the things
PHP Deployment With SVN
Collaborative development with git
Git talk
Puppet camp london nov 2014 slides (1)
CICD_1670665418.pdf
Git and GitHub workflows
Deployment With Subversion - Lorna Mitchell
 
Deployment Tactics
Pipeline as code for your infrastructure as Code
A Tale of Two Workflows - ChefConf 2014
40 square's git workflow
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Ad

More from Joe Ferguson (20)

PDF
Modern infrastructure as code with ansible cake fest 2021
PDF
Modern infrastructure as code with ansible PyTN
PDF
Slim PHP when you don't need the kitchen sink
PDF
Throwing Laravel into your Legacy App™
PDF
DevSpace Conf 2017 - Making sense of the provisioning circus
PDF
Console Apps: php artisan forthe:win
PDF
Console Apps: php artisan forthe:win
PDF
All the Laravel things: up and running to making $$
PDF
So You Just Inherited a $Legacy Application… NomadPHP July 2016
PDF
MidwestPHP 2016 - Adventures in Laravel 5
PDF
Acceptance & Functional Testing with Codeception - SunshinePHP 2016
PDF
Adventures in Laravel 5 SunshinePHP 2016 Tutorial
PDF
php[world] 2015 Laravel 5.1: From Homestead to the Cloud
PDF
php[world] 2015 Training - Laravel from the Ground Up
PDF
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
PDF
Secure Form Processing and Protection - Devspace 2015
PDF
Acceptance & Functional Testing with Codeception - Devspace 2015
PDF
Laravel 5 New Features
PDF
Secure Form Processing and Protection - Sunshine PHP 2015
PDF
Laravel Forge: Hello World to Hello Production
Modern infrastructure as code with ansible cake fest 2021
Modern infrastructure as code with ansible PyTN
Slim PHP when you don't need the kitchen sink
Throwing Laravel into your Legacy App™
DevSpace Conf 2017 - Making sense of the provisioning circus
Console Apps: php artisan forthe:win
Console Apps: php artisan forthe:win
All the Laravel things: up and running to making $$
So You Just Inherited a $Legacy Application… NomadPHP July 2016
MidwestPHP 2016 - Adventures in Laravel 5
Acceptance & Functional Testing with Codeception - SunshinePHP 2016
Adventures in Laravel 5 SunshinePHP 2016 Tutorial
php[world] 2015 Laravel 5.1: From Homestead to the Cloud
php[world] 2015 Training - Laravel from the Ground Up
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
Secure Form Processing and Protection - Devspace 2015
Acceptance & Functional Testing with Codeception - Devspace 2015
Laravel 5 New Features
Secure Form Processing and Protection - Sunshine PHP 2015
Laravel Forge: Hello World to Hello Production

Recently uploaded (20)

PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Computer Software and OS of computer science of grade 11.pptx
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PPTX
Transform Your Business with a Software ERP System
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PPTX
Introduction to Artificial Intelligence
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Digital Strategies for Manufacturing Companies
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
medical staffing services at VALiNTRY
PDF
top salesforce developer skills in 2025.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PPTX
L1 - Introduction to python Backend.pptx
PDF
System and Network Administration Chapter 2
PDF
Cost to Outsource Software Development in 2025
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Computer Software and OS of computer science of grade 11.pptx
Why Generative AI is the Future of Content, Code & Creativity?
Transform Your Business with a Software ERP System
CHAPTER 2 - PM Management and IT Context
iTop VPN Free 5.6.0.5262 Crack latest version 2025
Introduction to Artificial Intelligence
Operating system designcfffgfgggggggvggggggggg
Digital Strategies for Manufacturing Companies
Odoo POS Development Services by CandidRoot Solutions
wealthsignaloriginal-com-DS-text-... (1).pdf
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
medical staffing services at VALiNTRY
top salesforce developer skills in 2025.pdf
PTS Company Brochure 2025 (1).pdf.......
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
L1 - Introduction to python Backend.pptx
System and Network Administration Chapter 2
Cost to Outsource Software Development in 2025

Composer at Scale, Release and Dependency Management