Flow Intelligence Is Key to Cloud Performance

In January, I introduced the concept of Flow Intelligence as a building block of Application Defined Networking (ADN). And what I mean by the concept is essentially flow-based infrastructure intelligence.
With Application Defined Networking, applications can control and adapt their networking environment to optimize their own delivery and performance across public and private cloud networks without sacrificing portability or security.
As the first building block of ADN, Flow Intelligence is the ability of a network of resources to collect and analyze end-to-end monitoring data. Flow Intelligence captures the communication patterns and issues of an application and detects anomalies such as bottlenecks or oversizing. With that information, users or applications can make real-time decisions to remediate the problems. Flow Intelligence enables the cloud system to reach or return to fluid and efficient performance quickly in a very dynamic and ever-changing environment.
The three critical problems that Flow Intelligence helps to solve are:
- Latency issues, which affect the quality of data transmission
- Bottlenecks, which impact overall application response time
- Oversizing, which increases cloud infrastructure cost.
This raises some questions: Why is it so important for cloud infrastructure users to quickly remediate these issues, and is over-provisioning the wrong approach to dealing with bottlenecks in a cloud environment. To answer these questions let’s look more closely at bottlenecks issues.
Cloud bottleneck
In cloud infrastructure, a bottleneck is a shortage of computing, storage or networking capacity somewhere within the network of resources of an application. This constriction of capacity then causes one or several queues, which can have cascading impacts on application performance. Everybody has experienced the bottleneck phenomenon, whether it was waiting in line at the grocery store check-out or getting stuck in traffic during rush hour.
In a distributed cloud application, all the resources are cooperating to accomplish a given task in a minimum time—for example, responding to a user request—and any waits resulting from bottlenecks in the system may lead to a delay for the end user. When queues build up in a collection of related resources, resources further downstream experience a wait to get the data they have to process and will take more time to finish.
Cloud infrastructure oversizing
You have probably experienced oversizing when it comes to your monthly subscription on your mobile or Internet service—paying for more minutes or data than you would ever use. In terms of the cloud, oversizing entails putting in more capacity than you need because, in general, you don’t know precisely how much you really need. This oversizing results in unnecessary expenses for infrastructure and services. These extra expenses are counter to the goal of cloud computing—which is to save costs—and obviously not good for your IT budget.
Often, cloud infrastructure users or network operators attempt to solve or prevent performance issues by over-provisioning their environments. But attempting to solve a bottleneck problem this way can result in having an excess of resources (oversizing), which results in extra costs or extra power utilization.
Moreover, over-provisioning may be the wrong idea. When you have a complex task to accomplish, for example, adding more people will not always accelerate the work. You need to select the right talents and put them together in an effective team! It’s not just a question of numbers.
The same concept holds true for the cloud. A virtual infrastructure behaves like a team of cloud resources cooperating to support an application, and adding more resources won’t necessarily solve the problem. Fluid communications, accurate synchronizations and adequate configurations are required.
Imagine for example, that you have a tiny link between your Load Balancer and your Application Servers in a multi-tiered deployment. Under heavy load you observe an increase in end-users response time and you decide to add a pair of Application Servers. Now you have more resources to process your requests but you eventually increase the pressure in the shared link and the latency will start to increase dramatically and unpredictably. All Application Servers will start to wait for the job and increase their respective response times, impacting many different end customers.
Bottlenecks and oversizing are harmful not only for the cloud infrastructure customer but also for the Infrastructure as a Service (IaaS) provider. Providers all want to have well-provisioned and satisfied customers. An unhappy user is potentially volatile, and could cause the provider to lose a customer or suffer harm to its reputation.
Consider the example of an e-Commerce application that is deployed in the cloud and relies on analytics to select various brands of shoes in response to a user request for “performance jogging equipment.” It is well known that a delayed response of even a few second in a situation like this has a very bad impact on business. According to Gomez.com, the eCommerce conversion rate increases 74 percent when page load time decreases from 12 to 8 seconds. The reverse has the opposite effect!
Flow Intelligence is Key
Flow Intelligence enables cloud users to automatically collect, correlate and analyze network, system and communication metrics. The user discovers the communication patterns of its application, and locates immediately the bottleneck or latency issues. In the example of the application server, the Flow Intelligence will have pointed out the shortage of bandwidth in the tiny link and have alerted the user of this as soon as the load is increasing. One of remediating actions would have been, for example, to move the instances to a less-crowded zone.
In the coming blog post, I will detail our unique approach to Flow Intelligence: Moving beyond DPI, SDN monitoring and APM to accelerate prevention, detection and resolution of bottlenecks and oversizing in a Multi-Cloud context.