Andromeda: Google Cloud Platform’s Network Virtualization Stack

As more and more organizations are adopting cloud computing in several areas such as computing power, storage, networking for their mission critical IT systems. The need for virtualization has grown tremendously in the past couple of years. Virtualization in the networking domain is an area of high interest as cloud companies are trying to design superior architectures which provide high performance, isolation, scalability, rapid provisioning, low latency, and rapid feature availability. 
Today we look more in detail about Andromeda, a Google Cloud Platform network virtualization stack, its architecture, features and advantages. 
About Andromeda 
Andromeda is designed for Google cloud network virtualization. Its architecture is based on highly flexible hierarchy flow paths and it uses a combination of software and hardware acceleration for processing of packets. 
Andromeda: Architecture
Let’s look at its architecture a bit more in detail. Below diagram depicts Andromeda architectural components. 

Flow Processing Hierarchy
It has a flexible hierarchy of processing paths. Network traffic streams or flow are dynamically assigned specific programming paths based on requirements. Different flow paths are processed optimally based on specific needs of features, performance requirements, and isolation. 
Hoverboard Model of Programming
Long tail of flows having low bandwidth are handled by the Hoverboard component in Andromeda. It leverages gateways to manage flows and enable control planes to program network connectivity for virtual machines in a few seconds. It requires rapid provisioning and connectivity for virtual machines with efficient utilization of network resources.
On-host Data Plane
It is responsible for packet processing for virtual hosts individually. It is meant for high performance and utilizing the operating system bypass software packet processing path. It achieves lower latency by bypassing the OS system network stack. 
Coprocessor Thread
Andromeda offload CPU intensive per packet operation having high latency target to coprocessor thread. The coprocessor thread handles specific tasks which need additional processing, such as encryption, cryptography, deep packet inspection, and other advanced network security functions. By separation of additional processing required by these functions from the main processing path Andromeda provides efficient processing of packets without much impact on overall performance.
Hardware Acceleration
Leveraging hardware acceleration is done to enhance performance. Including use of specialized hardware features such as dedicated network cards (NICs), hardware offloading etc. Andromeda achieves higher packet processing while reducing burden on CPU. 
All packets which do not have route to Hoverboard gateway (Which maintains forwarding information for every virtual network) sent by virtual machine hosts.
Related: Server Virtualization vs Network Virtualization: Detailed Comparison
Features of Andromeda

Performance Isolation – performance isolation is performed among customer networks. Dynamically assigned flows to different programming paths based on specific needs , network traffic from different tenants is isolated in order to prevent performance degradation and congestion.
Scalability – it is designed to scale effortlessly with rapid provisioning of virtual hosts. The Hoverboard programming model with efficient flow paths enables the control plane to handle connectivity to hundreds of virtual machines in a couple of seconds. 
Latency and Bandwidth – using high performance bypass of OS software packet processing and hardware acceleration , Andromeda provides low latency and higher bandwidth. This enables virtual networks delivering performance par with physical infrastructure.
High Availability and Speedy Feature – its de-coupled feature growth with fast path performance by implementation of features and coprocessor threads. This enables rapid feature deployment and maintains high performance levels and network service availability.
Software Based Architecture with Flexibility – using programmable flow processing hierarchy and software defined approach it can adapt to evolving and new requirements. Its flexibility allows efficient management and provisioning of network resources in a cloud environment.