It's hardly news in networking and IT circles that a converged approach to building out infrastructure holds the promise of great flexibility and economies of scale. Convergence on IP has already harmonized network equipment and practices, and convergence on platform architectures like Linux and commercial-off-the-shelf options have done the same for computing. But these are only necessary steps, not final solutions, for the cloud as the grand unifier. In short, we're not quite there yet.
The cloud provides three important lessons on fully converged infrastructure solutions:
- First, convergence starts with the concept of virtualization, which creates an abstract view of a resource that can then be easily mapped to a wide variety of "real" resources.
- Second, convergence embraces all IT resources at once -- not just networking, storage or compute individually.
- Third, the practical implementation of convergence is dependent on networking. And while the network may be one of the targets for convergence, it is also the glue that binds the physical resources to the critical central abstraction that virtualization is based on.
From the mile-high view, the cloud creates the need for a virtual abstraction, which includes the following components: virtual servers that can run applications and support users, attached storage systems, and network connections to users. In the broadest sense, virtualization enables users to write and deploy applications to a virtual server, and then it supports committing the underlying server and storage resources to fulfill the "virtual resource" mission that the application expects.
Cloud users shouldn't have to care what or where the servers are, how the storage capabilities are actually provided, or what network devices are used. Instead, users need to manage the virtual abstractions. OpenStack's application programming interfaces (APIs) provide user access to virtual compute services, virtual network services and virtual storage services. These APIs assign distributed resources from a pool to an application, and the network is the medium that connects the elements in the cloud resource pool to the users. So the network plays a dual role as both a virtual resource and as the real connecting tissue of the cloud.
Virtualization-based convergence demands more of networks than ever before because of the requirement for the effective use of virtual resources of any sort. When resources need to be allocated from a pool of hardware elements of various types from various vendors, the cloud's abstraction has to make all of the resources of the same type look the same to applications.
Storage, no matter what hosts it, has to be accessed in the same way. Cloud middleware is responsible for accomplishing some of that, but cloud middleware can't overcome the differences in the availability or performance of resources that are created by differences in the network performance of the connections located between the resources and the applications. A storage or compute element pulled from a national or global resource pool has to work the same way, no matter where it is located in that pool, whether a mile away from the application or thousands of miles away.
Cloud economics breaks down if the network isn't performing
The cloud-driven convergence-by-virtualization mission is creating pressure to change how networking is done. Traditional best-effort IP connections don't provide uniform communications performance over the range of geographies that a cloud's resource pool could likely span. As distances increase, so does delay and packet loss, and at some point these two combine to degrade network access to cloud resources. If the resources in a cloud's pool are not truly equivalent in performance, then applications can't draw any resource from the pool. Instead, they have to draw only from resources that are close by, resources that can offer stable performance. That makes the effective resource pool smaller, which leads to the cloud being less economical. At some point, the lack of stable network performance can so erode the economies of scale for the cloud that it becomes a barrier to adoption of cloud technology.
Another challenge that convergence-by-abstraction creates is that applications using compute or storage resources don't expect to manage communications performance. How do you tell compute users they had a network failure when there's no "network" in compute in most cases? All of the network activity that relates to connecting real resources to abstract resource users in the cloud must be managed by the cloud itself. The more complex that process is, the more expensive it is to build clouds. Again, the very economic foundation of the cloud is threatened if the network isn't performing as it should. Every improvement in network performance and stability will drive down resource and operations costs, as well as improve cloud adoption.
The bottom line is that the cloud is driving the future of networking, in particular, the evolution of software-defined networking. Because networking is both a cloud "Resource as a Service" element and the glue that binds all resources to services, changes in the network's mission are reshaping the technology used to build them.