Hello everyone :wave: , Long story short :fast_fo...
# platform-toolbox
j
Hello everyone 👋 , Long story short ⏩ We’re facing a challenge at our organization where we need to bulk update 1000+ repositories efficiently. Has anyone tackled a similar task, or do you have insights on how to bulk update configurations across such a large number of repositories efficiently? interesting Long story long 🧱 We have hundreds of developers, thousands of repositories and fully automated CI/CD system allows each team to manage the software development lifecycle across 6 different regions and deploy up to 200+ times a day to production 🤖 On top of that, we have configured a Dependabot that triggers dependency auto-update across all repositories. But unfortunately, the configuration only allows a fixed time value and does not accept time ranges, so we have configured it to scan and update repositories daily at 10AM Eventually, we’ve run into an issue with having hundreds of Dependabot auto-updates at the same time (10AM), leading to massive queues, throttling, and rate-limiting. So we decided to move away from a fixed time value 10AM in Dependabot’s config and use staggering times to spread the load throughout the day. For example use 3 different times for Dependabot’s config and spread these time values uniformly across all the Dependabot’s setups in our Git repositories. Example values:
10:00
,
12:00
,
14:00
. So now we need to alter the auto-update time windows across all repositories to avoid the bottleneck. However: • Asking teams to manually update their repositories is not feasible because it is time-consuming and teams have other priorities • Using microplane is not also efficient in such cases, because the process of creating thousands of pull-requests and coordinating with the entire organization is still too time-consuming Has anyone tackled a similar task, or do you have insights on how to bulk update configurations across such a large number of repositories efficiently? Your expertise would be greatly appreciated thanks
b
I'm not sure how much they've published on this, but Chick-Fil-A uses a gitops workflow which involves a different repo for each store they operate - something like 2000+ repositories. They ended up building an asynchronous deployment system. Changes would be rolled out accross Git, and a custom golang agent on their deployed compute instances would do the async fetch and update. Somewhere in there, there's an API they call "Deployment Orchestrator", probably to help manage the rollout of any update, because of the async nature of it. https://medium.com/chick-fil-atech/stumbling-into-gitops-at-the-edge-92924dfb2ca1
e
At Bitso, we are developing a Crossplane provider for GitOps which we will release as open source soon. We're currently managing 400+ repos this way, but it can easily scale to thousands