Overview
Uber Engineering's Micro Deploy is an in-house deployment system designed to streamline the process of deploying code across its services. The article details the challenges faced by Uber's engineers before Micro Deploy and how it has enabled daily deployments with confidence, significantly improving efficiency and reducing downtime.
What You'll Learn
1
How to use Micro Deploy for efficient code deployment
2
Why automated error detection is crucial during deployments
3
When to implement rollback strategies in deployment processes
Key Questions Answered
How does Micro Deploy improve the deployment process at Uber?
Micro Deploy streamlines the deployment process by automating builds, upgrades, and rollbacks, allowing engineers to deploy code quickly and efficiently. It provides real-time feedback during rollouts and integrates monitoring systems to detect anomalies early, ensuring stability and reducing downtime.
What are the key features of Micro Deploy?
Key features of Micro Deploy include a web application UI and CLI for user interaction, μDeploy agents for service management, masters controlling agent behavior, and an aggregator for managing deployments. It also includes systems like uBuild for building services and uConfig for configuration changes.
What challenges did Uber face before implementing Micro Deploy?
Before Micro Deploy, Uber faced disorganization in code deployments, with each team using custom scripts and manual monitoring. This led to prolonged outages and inefficiencies as the number of engineers and services grew, making it difficult to scale the deployment process.
How does Micro Deploy handle error detection during deployments?
Micro Deploy integrates monitoring systems that detect anomalies during deployments, allowing for early error detection. If issues arise, the system can automatically roll back to a stable version, minimizing the impact on production systems.
Key Statistics & Figures
Percentage of services using Micro Deploy
99%
As of mid-2016, 99% of all Uber software ships with Micro Deploy.
Percentage of rejected service builds
10%
In 2016, 10% of service builds pushed to production were rejected by Micro Deploy after monitoring.
Number of engineers pushing to production weekly
Thousands
Each week, thousands of engineers push several thousand service builds to production.
Technologies & Tools
Deployment System
Micro Deploy
Used for building, upgrading, and rolling back services at Uber.
Version Control
Git
Used for managing source code versions in the deployment process.
Key Actionable Insights
1Utilize Micro Deploy's automated error detection to enhance deployment reliability.By integrating monitoring systems, engineers can catch issues early, reducing the risk of prolonged outages and ensuring smoother rollouts.
2Leverage the web-based UI of Micro Deploy for quick service deployments.This interface allows engineers to deploy their services instantly, promoting autonomy and speeding up the deployment process.
3Implement rollback strategies as a standard practice in deployment workflows.Having a rollback mechanism in place ensures that any faulty deployments can be quickly reversed, maintaining system stability.
Common Pitfalls
1
Relying solely on manual monitoring can lead to prolonged outages during deployments.
Without automated systems like Micro Deploy, engineers may miss critical issues, resulting in extended downtime and inefficient rollbacks.