Many cloud applications need predictable completion of application tasks. To achieve this, they require predictable completion time for network messages. We identify three key requirements for such predictability: guaranteed network bandwidth, guaranteed per-packet delay and guaranteed burst allowanace. We present Silo, a network architecture for public cloud datacenters that offers these guarantees. Silo leverages the fact that guaranteed bandwidth and delay are tightly coupled: controlling tenant bandwidth yields deterministic bounds on network queuing delay. Silo builds upon network calculus to determine how tenants with competing requirements can coexist, using a novel packet pacing mechanism to ensure the requirements are met.
We have implemented a Silo prototype comprising a VM placement manager and a Windows Hyper-V network driver. Silo does not require any changes to applications, VMs and network switches. Through testbed experiments and large scale simulations, we show that Silo can ensure predictable message latency for competing applications in cloud datacenters.