Testing the Cloud: Assuring Availability
Cloud computing is changing how IT services are delivered and consumed today. The ability for enterprises large and small to centralize and outsource increasingly complex IT infrastructure, while at the same time consuming cloud-based IT services on an on-demand basis, promises to transform the economics of doing business.
But, note that I state “promises” as even though there are many success stories amongst early adopters, the real test will come when cloud computing becomes the de-facto model for IT service delivery and consumption. By all accounts, mainstream adoption of cloud services is close at hand.
In essence, cloud computing is entering a new phase in its development, where assuring the availability and quality of cloud services will become a major challenge. Preparing for this now will ensure that cloud computing continues to deliver on its “promise”.
From excess to scarce resources
Cloud computing was initially driven by excess computing capacity. Large web companies, such as Amazon and Google, that had to build large data center capacity for their own business, saw an opportunity to provide their excess capacity as a service to others. This has been so successful that these cloud services, such as Amazon Web Services, have become a business in themselves.
Yet, as these services become more popular, demand will tend to outstrip supply, especially as some of the enablers of cloud service adoption, such as higher speed access connections, continue to grow in capacity. Simply adding more servers and higher speed networks is effective, but costly and can undermine one of the main reasons for using cloud services, namely cost reduction. Cloud service providers will thus face the dilemma of managing demand for scarcer computing resources while at the same time maintaining a low, or at least competitive, cost level.
In other words, how can cloud service providers meet mainstream demand cost-effectively?
Efficiently Assuring Service Availability
Cloud services come in many shapes and sizes, from private clouds to public clouds with software-, platform- and infrastructure-as-a-service. Nevertheless, all these flavors of cloud service have a common need to assure service availability and do so as efficiently and cost effectively as possible.
Many cloud services already provide service availability monitoring tools, but these are often limited to monitoring of server or service up-time. Server or service up-time is but one of the aspects of service availability that need to be addressed as cloud services are dependent on much more than just the physical or virtual server on which they reside. Increasingly, the data communication infrastructure supporting the cloud service from the provider to the consumer also needs to be assured even though this might be outside the direct control of the service provider.
To ensure mainstream adoption of cloud services, consumers must be confident that the services that are required or the data that is hosted by cloud services is available quickly when and where they need it. Otherwise, why not continue with current approaches? Mainstream consumers are noted for being more conservative and pragmatic in their choice of solutions, so addressing this concern must be a top priority for continued expansion of cloud service adoption.
Therefore, building the infrastructure to test and monitor cloud services is essential.
Testing and monitoring cloud services
From a testing and monitoring perspective, there are a number of layers one can address:
• The Wide Area Network (WAN) providing data communication services between the enterprise customer and the cloud service – fundamental to service assurance and testing of end-to-end service availability
• The data center infrastructure comprising servers and data communication between servers (LAN), where service availability and uptime of this equipment is key as well as efficient use of resources to ensure service efficiency
• The monitoring infrastructure in the data center that is the basis for service assurance which itself needs to efficient
• The individual servers and monitoring appliances that are based on servers that must also follow efficiency and availability principles to assure overall service efficiency and service availability
The first test that can be performed is testing end-to-end availability. At a basic level, this involves testing connectivity, but can also involve some specific testing relevant for cloud services, such as latency measurement. Several commercial systems exist for testing latency in a WAN environment. These are most often used by financial institutions to determine the time it takes to execute financial transactions with remote stock exchanges, but can also be used by cloud service providers to test the latency of the connection to enterprise customers.
This solution requires the installation at the enterprise of a network appliance for monitoring latency, which could also be used to test connectivity. Such an appliance could also be used for troubleshooting and SLA monitoring.
Typically the cloud service provider does not own the WAN data communication infrastructure. However, using network monitoring and analysis appliances at both the data center and the enterprise, it is possible to measure the performance of the WAN in providing the data communication service required. The choice of WAN data communication provider should also be driven by the ability of this provider to provide performance data in support of agreed SLAs. In other words, this provider should have the monitoring and analysis infrastructure in place to assure services.
From reaction to service assurance
Network monitoring and analysis of the data center infrastructure is also crucial as cloud service providers need to rely less on troubleshooting and more on service assurance strategies. In typical IT network deployments, a reactive strategy is preferred whereby issues are dealt with in a troubleshooting manner as they arise. For enterprise LAN environments, this can be acceptable in many cases, as some downtime can be tolerated. However, for cloud service providers, downtime is a disaster! If customers are not confident in the cloud service provider’s ability to assure service availability, they will be quick to find alternatives or even revert to a local installation.
A service assurance strategy involves constant monitoring of the performance of the network and services so that issues can be identified before they arise. Network and application performance monitoring tools are available from a number of vendors for precisely this purpose.
The power of virtualization
One of the technology innovations of particular use to cloud service providers is virtualization. The ability to consolidate multiple cloud services onto as few physical servers as possible provides tremendous efficiency benefits by lower cost, space and power consumption. In addition, the ability to move virtual machines supporting cloud services from one physical server to another allows efficient use of resources in matching time-of-day demand, as well as allowing fast reaction to detected performance issues.
One of the consequences of this consolidation is the need for higher speed interfaces as more data needs to be delivered to each server. This, in turn requires that the data communication infrastructure is dimensioned to provide this data, which in turn demands that the network monitoring infrastructure can keep up with the data rates without losing data. This is far from a given, so cloud service providers need to pay particular attention to the throughput performance of network monitoring and analysis appliances to ensure that they can keep up also in the future.
Within the virtualized servers themselves, there are also emerging solutions to assist in monitoring performance. Just as network and application performance monitoring appliances are available to monitor the physical infrastructure, there are now available virtualized versions of these applications for monitoring virtual applications and communication between virtual machines.
There are also virtual test applications that allow a number of virtual ports to be defined that can be used for load-testing in a cloud environment. This is extremely useful for testing whether a large number of users can access a service without having to deploy a large test network. An ideal tool for cloud service providers.
Bringing virtualization to network monitoring and analysis
While virtualization has been used to improve service efficiency, the network monitoring and analysis infrastructure is still dominated by single server implementations. In many cases, this is because the network monitoring and analysis appliance requires all the processing power it can get. However, there are opportunities to consolidate appliances, especially as servers and server CPUs increase performance on a yearly basis.
Solutions are now available to allow multiple network monitoring and analysis applications to be hosted on the same physical server. If all the applications are based on the same operating system, intelligent network adapters have the ability to ensure that data is shared between these applications, which often need to analyze the same data at the same time, but for different purposes.
However, for situations where the applications are based on different operating systems, virtualization can be used to consolidate them onto a single physical server. Demonstrations have shown that up to 32 applications can thus be consolidated using virtualization.
By pursuing opportunities for consolidation of network monitoring and analysis appliances, cloud service providers can further improve service efficiency.
Preparing for mainstream adoption
Mainstream adoption of cloud services is just around the corner and to take full advantage of this demand, cloud service providers can use the existing tools and concepts described above to assure service availability in a cost effective and efficient manner.