Design a Code Deployment System

Design a code deployement system that can build and deploy code.

Assume the system should serve 5 to 10 regions, involve a few hundred systems, availability is 2-3 nines, and the deployment should be done within 30 minutes. It should handle thousands of deployments per day, and the binaries will be around 10GB max.