[フレーム]
BT

InfoQ Software Architects' Newsletter

A monthly overview of things you need to know as an architect or aspiring architect.

View an example

We protect your privacy.

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Unlock the full InfoQ experience

Unlock the full InfoQ experience by logging in! Stay updated with your favorite authors and topics, engage with content, and download exclusive resources.

Log In
or

Don't have an InfoQ account?

Register
  • Stay updated on topics and peers that matter to youReceive instant alerts on the latest insights and trends.
  • Quickly access free resources for continuous learningMinibooks, videos with transcripts, and training materials.
  • Save articles and read at anytimeBookmark articles to read whenever youre ready.

Topics

Choose your language

InfoQ Homepage News Uber Migrates 4000+ Microservices to a New Multi-Cloud Platform Running Kubernetes and Mesos

Uber Migrates 4000+ Microservices to a New Multi-Cloud Platform Running Kubernetes and Mesos

This item in japanese

Oct 18, 2023 2 min read

Write for InfoQ

Feed your curiosity. Help 550k+ global
senior developers
each month stay ahead.
Get in touch

Uber moved most of its containerized microservices from µDeploy to a new multi-cloud platform named Up in preparation for migrating a considerable portion of its compute footprint to the cloud. The company spent two years working on making its many microservices portable so that they can be migrated between different compute infrastructure and container management platforms.

Uber started as a monolithic application in 2014 but, with growth, transitioned to a microservice architecture. The company created µDeploy to help standardize application service deployments at scale. The move abstracted away host management and placement aspects, but service management and placement remained highly manual, meaning that service engineers still had to decide in which zone (physical data center) in a specific region the service should run.

Mathias Schwarz, a senior staff engineer, and Andrew Neverov, an engineering manager at Uber, explain the reasons for Uber’s decision to detach engineering teams from the infrastructure completely:

Operating our on-prem data centers, we experienced long lead times due to chip shortages and supply chain issues. On February 13, 2023, Uber partnered with Oracle and Google, aiming to diversify and decrease the company’s exposure to supply chain issues. Executing on this strategy would be impossible without having a system in place to abstract away the underlying infrastructure from thousands of Uber engineers working on hundreds of various services powering the business.

In 2018, Uber’s platform team started working on a new multi-cloud, multi-tenant federation control plane responsible for automating service placements and infrastructure-level migrations. The new platform, named Up, was meant to become the primary tool for service engineers to interact with the infrastructure systems. It would also manage and enforce best practices to drive towards safe code rollouts.

Up: High-Level Architecture (Source: Uber Engineering Blog)

Up platform has a layered architecture with the experience layer responsible for user interactions and system housekeeping, including workload management and scaling. The platform layer provides common abstractions and the conceptual model for the experience layer components to use, and it is used to express service placement constraints based on the capabilities of host machines and compute capacity. The federation layer implements integration with compute clusters and is responsible for exercising service placements based on available capacity and defined placement constraints. The change management component delivers gradual rollout capabilities supported by health monitoring. The bottom-most layer contains the actual cluster instances, using Peleton (Uber’s own open-source container orchestration platform, built on top of Apache Mesos) and Kubernetes.

In preparation for the move to the cloud, the company spent two years working towards making all stateless microservices portable so that their placement in zones and regions can be managed centrally without any involvement from the service engineers. The team used existing tooling to move services between zones in order to ensure they were portable. Firstly, they allowed services to be moved back to the original zone to resolve any portability issues, but once resolved, services would be moved periodically to validate portability and prevent regressions.

Once portable, microservices have been gradually and mostly automatically migrated to Up, resulting in substantial monetary savings due to autoscaling and efficiency efforts and reducing the maintenance burden on the service teams considerably. With most of Uber’s microservices platform now managed by Up, the company is free to kick off its cloud migration effort without much impact on the service teams. They also want to focus on automated continuous delivery and deployment safety.

About the Author

Rafal Gancarz

Show moreShow less

Rate this Article

Adoption
Style

Related Content

The InfoQ Newsletter

A round-up of last week’s content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example

We protect your privacy.

BT

AltStyle によって変換されたページ (->オリジナル) /