# Rethinking Networking Abstractions for Cloud Tenants

* 88% use two or more cloud providers&#x20;
* 92% use both public / private cloud deployment&#x20;
* **Architecture: workloads span multiple regions within the cloud, multiple clouds**&#x20;
  * Individual virtual networks&#x20;
    * Addresses? ACLs? routes?&#x20;
  * Connectivity in / out&#x20;
    * Internet? NAT? VPN?
  * Connect multiple virtual networks
    * Across clouds or across cloud regions&#x20;
    * Virtual network peering, ...
  * Dedicated connections&#x20;
    * Availability and consistent performance: reserve a link between cloud data center and an internet exchange point&#x20;
  * Appliances&#x20;
    * Load balancers, firewalls&#x20;
* Private data centers&#x20;
  * Physical network boxes: routers, firewalls, and load balancers&#x20;
    * Managing this is difficult --> move to the cloud&#x20;
  * Azure (similar abstraction): user-define router, firewall, load balancer&#x20;
  * Aws: learned ins and outs of these kinds of boxes&#x20;

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2F80YKd4iOcf690vpL2Py5%2Fimage.png?alt=media\&token=f59d880a-b8c1-409b-945c-06d3d51d78cf)

* We are not seeing higher-level abstractions (still dealing with low-level components when we manage our own infra)&#x20;

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2Fb2XpZ6fZUDvRGmF6f0iK%2Fimage.png?alt=media\&token=35a5e5a6-7899-4124-8845-8ecffc8dea13)

* Complex planning&#x20;
* Complex configuration&#x20;

Current solutions:

* Multi-cloud solutions: seek to give on management plane to this mess&#x20;
  * But it doesn't solve the underlying complexity, but handle it to shim layer instead&#x20;

Proposal:&#x20;

* Eliminating tenant networking layer all together!&#x20;

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2F7tdTevHpP78HjOIHNwIJ%2Fimage.png?alt=media\&token=a08f850d-bc6a-4bc2-95fb-a160d61ccfcf)

* Tenant goals: connectivity, availability, security, QoS
  * Provide a declarative API which allows tenants to specify these goals on a per endpoint basis abstracting away the networking details&#x20;
* Key idea: "publicly routable but default-off"
  * Routability vs. Reachability&#x20;
  * Endpoint: publicly routable, default-off (traffic destined for that address will be dropped by cloud provider unless specified otherwise) --> per end-point permit list&#x20;
* Proposed API&#x20;

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FLcBOjBCL3Jr0Sr8IhNws%2Fimage.png?alt=media\&token=6d913a75-bced-4620-81dd-5b09cf3e0a56)

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FGrl7uqvTFbnvDGqjiAo0%2Fimage.png?alt=media\&token=1d4a367d-99c9-43e4-897e-986a2fe24de3)

#### Open questions&#x20;

* Simple or simplistic?&#x20;
  * Feasibility?&#x20;
    * Is it scalable for cloud provider to keep consistent and dynamic per endpoint permit list to each tenant&#x20;
    * Security?&#x20;
  * Adoption?&#x20;
    * Proposal can exist in parallel to today's abstraction&#x20;
    * Simpler, low-risk deployment&#x20;
      * What tenants and workloads are the most likely early adopters for a new architecture such as we propose?&#x20;
  * Other question: is it the right one, what alternative solutions we should be considering&#x20;
    * Sufficiently high level that abstract details entirely?&#x20;

Paper: <https://sigops.org/s/conferences/hotos/2021/papers/hotos21-s02-mcclure.pdf>&#x20;

Main contribution:

* Right now the network virtualization as experienced by cloud tenants is overly complex&#x20;
* Propose: free cloud tenants entirely from having to build and operate virtual networks&#x20;
* Cloud networking exposed to tenants in a declarative and endpoint-centric manner&#x20;
  * Associated SLOs with endjoints&#x20;
  * Natural extension to what cloud providers already offer in compute and storage, and cloud providers can innovate below this interface without developing tenant-layer abstractions for every possible feature&#x20;
