Jamil is the lead on the build platform at DoorDash. He oversees the build platform, the deploy platform, and everything related to core infrastructure at DoorDash.
We were creating a monorepo for Doordash, so we needed a whole new modern infrastructure for build and deploy and everything, you know, touching those edges. And so we're like, well, Jenkins merge queue is not going to scale for us. We need to replace that.
As the team decided to move to monorepo, they knew that they had to solve the scalability challenges. Build failures were common. They needed a modern infrastructure that can help them support builds and continuous deployments.
We were in a limbo state where things were broken most of the time.There was a big overhead to get the developers from point A to point B. We tried rolling our own merge queue, but it had it’s own complications.
We've created the right documentation to make it as self-service as possible. We created a whole automated cut release and deployment system, and we tied it to Aviator's affected targets and their webhooks.
Doordash runs 3000 to 5000 builds a day, and they needed a merge queue that supported multi-queue functionality to scale their build and deploy workflows.
Using Aviator, Doordash is able to set up automated deployments and keep their mainline healthy. Aviator catches bad, flaky tests, and it also catches backward incompatible changes across multiple repos.
It's enabled us to do a lot more, things like automated cut releases and deployments. I don't think we could have done that without Aviator. We've seen Aviator catch a lot of the mainline issues ahead of time, preventing outages.
When we merge, we're able to capture the information of what the affected targets are for a PR and let that translate into the webhooks that we rely on to capture that. That is really something that's very powerful for us.
Aviator’s parallel mode with affected targets helps Doordash scale the merges by parallelizing the builds and reducing the wait time. Using affected targets Aviator can identify that two PRs have no overlapping affected targets, so Aviator can test and merge them independently.