Earlier in this chapter, we discussed the role of the network in speeding up adoption of cloud services, providing solutions to the fundamental concerns that businesses have about wholeheartedly embracing the cloud. Cloud providers can leverage their network assets to enable their customers to confidently start moving more and more of their critical workloads to the cloud. On top of this, what if cloud providers could also directly monetize their network assets? What if networks and network services could be offered by the provider as a service; that is, network-as-a-service (NaaS)?
Along with compute and storage, networks and network services can be offered as a service, to be consumed, metered, and billed, based on usage. The economics of this model provide network vendors and cloud providers with strong incentives to innovate on compelling network services that add significant value for their customers.
The following are methods to offer networks and services for consumption.
The discussion on cloud service management in Chapter 3, “Cloud Taxonomy and Service Management,” explained how cloud services, defined in the service catalog, are offered to customers through self-service portals or via application programming interface (API) access. In addition to including various predefined cloud services, the service catalog enables the flexibility to add or modify optional features for those services. The same service catalog provides a means to define and offer networking for consumption (ranging from a basic VLAN service to a complex network service that provides security across multiple data centers).
To include network services in the service catalog, they need to be abstracted and presented in a simplified manner to the customer who may not be a networking expert. The intricacies and complex operations involved in enabling the network service must be hidden from the customer. Simplification is key, and ordering NaaS should be as easy as a few clicks on the cloud portal or a small number of intuitive API calls.
Here are a few examples of data center networking services, both basic and premium, that a provider could offer in their service catalog:
- Traffic isolation between tenants
- Access control between virtual machines (VM) of three-tier apps
- Load balancing across tiers of the three-tier apps
- Virtual private network (VPN) termination to isolated segments
- Quality of service (QoS) inside the data center fabric
The service catalog does not need to be restricted to network services inside the data center. After all, the end user consumes the cloud service from across the WAN (Provider IP NGN) or Internet. Cases where the cloud provider owns or controls network assets in the IP NGN present an opportunity to abstract network services available in the IP NGN bring it up to the service catalog. Examples of such services include the following:
- Virtual Private LAN Service/Multiprotocol Label Switching (VPLS/MPLS) VPN for private access to cloud
- WebVPNs for public access to cloud
- App performance enhancement with WAN acceleration, web caching
- Security through firewall, deep packet inspection (DPI), and distributed threat detection services in the NGN
- Optimal cloud services placement based on network proximity and performance
Not only do these NGN services open up additional revenue streams for the cloud provider, they also enable the provider to offer end-to-end security and performance capabilities. Certain network services such as firewall, QoS, and WAN application acceleration could potentially be distributed across the NGN and data center networks.
Network Services à la Carte
One option for monetization is to offer network services à la carte. Here network connectivity and services can be individually ordered by the consumer. The exact needs are conveyed as part of the API call or via a portal. For instance, if the developer needs to simply connect the database VM to an isolated virtual network segment that is not routable from the Internet but reachable from the web servers, those network attributes would be specified as part of the API invocation, as shown in the following pseudo API example:
- Create a DB network, specifying the following address range:
- Attach the DB VM to the network created in Step 1:
- Create a route to allow web servers to access the DB servers:
A well-designed API enables the users to easily describe what they want out of the network: for example, a network that supports a certain amount of bandwidth, a network with QoS, or perhaps a network with monitoring services. The APIs represent a contract to provide a certain service. While the underlying networking devices may differ, the functionality delivered by the API call is expected to be the same. In essence, a network hypervisor is needed. Analogous to the compute hypervisor, the network hypervisor would provide the ability to abstract the underlying networking hardware into services that can then be consumed by the user.
Not too long ago, though, developers did not have any visibility or control over the network, with infrastructure-as-a-service (IaaS) offerings focusing primarily on compute and storage, as illustrated in Figure 4-5. The network was there only to provide connectivity. Each VM would have a very flat view of the world, and there would not be any topology at all. Obviously, network services would not be available for consumption in such architectures.
Figure 4-5. IaaS Offerings Lacking API Access to the Network (Source: Cisco, Lew Tucker)
OpenStack is open source software that enables any organization to build their public or private cloud stack. It aims to deliver a massively scalable cloud operating system, along the lines of the software that powers colossal clouds such as Amazon EC2 today. OpenStack has been gaining momentum, with contributions from a growing global community of developers, vendors, and service providers helping it grow in functionality and maturity.
Initially, OpenStack started off as a platform underpinned by three major services: the Nova compute service, the Swift storage service, and the Glance virtual disk image service. The OpenStack development community has been actively engaged in developing additional services, some of which are shown in Figure 4-6. One such service, named Quantum, aims to provide network connectivity as a service. Along with requesting VMs and storage, developers can now request network connectivity, as well, using the Quantum API.
Figure 4-6. OpenStack Services
Figure 4-7 shows how Quantum has a pluggable framework with plug-ins offered by multiple networking vendors, including Cisco and Nicira/VMware. This is key to adoption; customers do not have to fear being locked into a particular vendor. The plug-ins map the API abstractions to the actual networking device underneath. In addition to offering basic Layer 2 virtual network segments, the Quantum API has an extensible architecture allowing advanced network services to be offered through the API extensions. And this extensible architecture is important, as the Quantum API is still evolving, and new network features such as firewalls, VPNs, and load balancers can be offered through the extensions first, before they get baked into the core Quantum API over time. Cloud providers have an opportunity to differentiate themselves by offering advanced networking features via the extensions.
Figure 4-7. Quantum API Architecture
Services such as OpenStack Quantum represent a fundamental shift in cloud networking. Networks are no longer hidden beneath the hypervisor, and network services are no longer limited to providing basic connectivity for the VMs. Applications can interact with network services via the API, bypassing the hypervisors.
Network containers provide a representation of the data center network infrastructure that is dedicated to a tenant for the provisioned time. As compared to ordering individual network services, containers enable a higher level of abstraction, encompassing the set of network connectivity and network services allocated to a tenant service. Figure 4-8 shows an example of a tenant network container for a three-tier web application. Separate network containers have been created for the Web, App, and DB tiers, nested inside the tenant network container and separated by firewall services. External connectivity is provided for the container to be reachable from the corporate VPN for management purposes, while the Web container is reachable from the Internet through a load balancer.
Figure 4-8. Network Containers with External Connectivity for a Tenant’s Three-Tier App
If the entire topology in Figure 4-8 can be saved as an abstract model, it could be offered through the services catalog for consumption. That would significantly ease the deployment of the tenant’s application, freeing the tenant from the lengthy process of individually ordering these network services and managing the interdependencies. A sophisticated network abstraction system such as the Cisco Network Services Manager (NSM) enables such use of network container models to define the behavior of the network services as a holistic virtual network infrastructure.
Cisco Network Services Manager
Cisco NSM provides model-based policy-driven abstraction and orchestration of the cloud network environment, leading to increased flexibility in terms of what can be done in the network, what services/capabilities can be exposed from the network, and what tenant container environments can be provisioned on the network. A REST-based API allows orchestration and other systems to interact with NSM and access the abstractions.
Comprehensive network container models, such as the three-tier web application in Figure 4-8, can be instantiated on diverse cloud network infrastructures, with NSM abstracting away the platform-specific behaviors of the underlying networks. Figure 4-9 shows an NSM system managing three cloud infrastructure stacks or pods. One of the pods could be based on Nexus networking platforms, the other may be leveraging existing Catalyst-based networking, and the third may be based solely on virtual network services. The NSM service controller associated with a pod understands the specific devices and platforms in the pod, and when it receives a directive to instantiate a particular abstract topology model, it interacts with the networking devices in that pod to stitch that topology together.
Figure 4-9. Cisco NSM and Instantiated Network Containers for Multiple Tenants
In addition to the abstraction, this model enables the mobility of network containers. Instantiated network containers, including the application and data residing in them, can be moved from one cloud pod to another, as needed, without any changes.
Various types or tiers of container model can be included in the service catalog, addressing different requirements such as security, performance, or application delivery. The customer can then pick one or more of these containers, and then select the VMs, which will be placed inside the container. The cloud administrator designs these container models to address the varied network service needs of their customers and enable the provider to offer differentiated pricing on these containers based on the density, complexity, and perceived value of the included network services.
Even though the service catalog allows the tenant to easily pick and choose from a variety of network services and predesigned topologies, tenants might need to customize and fine-tune their logical network in the cloud to meet their goals. Providers that can offer the tenant admin increased flexibility on day 2 operations, such as runtime configuration and modification of network services, will be able to further differentiate their offerings from the competition.
Through our discussion about OpenFlow Quantum service and the Cisco NSM system, you saw how network services can be offered in a simplified manner to spur consumption (either as individual network connectivity services or as network containers). These offerings enable cloud providers to gain access to additional revenue streams, realizing improved returns on their infrastructure investments.