Design Doc CritiqueSelect any text to flag it
Staff

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.