Design Doc · Developer Platform Team · In Review
Consolidate Three Deploy Systems Into One Platform
Press Enter to flag this paragraph.
Problem
Engineering deploys through three systems: Jenkins for the monolith, Spinnaker for 140 Kubernetes services, and shell scripts for the data platform's batch jobs. The developer platform team runs all three, and every new compliance control has to be built three times.
Proposal
We will build Launchpad, a deploy platform on Argo CD, and move every team onto it. Argo CD was chosen because several engineers on the platform team have used it before.
Launchpad supports Kubernetes deployments at launch. Support for the monolith's VM deploys and the data platform's batch jobs will be added based on demand.
To keep pipelines consistent, Launchpad doesn't support custom steps. Teams with special requirements adapt their process to the standard pipeline.
Rollback in Launchpad means reverting the commit and running the pipeline again, about 20 minutes end to end.
Migration
Jenkins, Spinnaker, and the scripts are frozen on April 1 and switched off on July 1. Teams that haven't migrated by July 1 can't deploy until they do.
The four engineers on the developer platform team build Launchpad while continuing to run the three existing systems.
Success
Success is all three legacy systems switched off by July 1.