RAS design

The jobs of RAS are to continuously optimize server assignments and provide guaranteed capacity to services during random and correlated failures, diverse capacity requests, heterogeneous hardware resources, and other such events.

A detailed architecture of RAS is explained in the following section.

Two-level architecture

Our goal is to isolate container placement from capacity allocation in order to enable region-wide optimizations for capacity allocation. The following figure shows the two-level architecture that describes the working of RAS and Twine.

The first level consists of two main components of RAS; the Async Solver and Online Mover. Async Solver uses Mixed-Integer-Programming (MIP) for region allocation and generates a Solver output. The Solver output is propagated to the Resource Broker that is going to perform the mapping between hardware resources that belong to certain MSBs to the service. This is the abstraction of reservation. If a failure occurs over the reservation and maintenance event then another component called the Mover is going to take a look at the reservation and move transparently the service to another allocated resource across another MSB.

Twine Allocator and Scheduler create the second level of the architecture. They place containers on the top of each reservation in real-time and manage its lifecycle through the process. The Health Check Service monitors all servers in the reservation.

Create a free account to access the full course.

By signing up, you agree to Educative's Terms of Service and Privacy Policy