As businesses turn to the cloud as a primary resource in driving competitive advantage, migrating to this new environment should be undertaken in a deliberate and systematic manner. Although the promise of higher reliability coupled with a lower cost may lure businesses to the cloud, 41% of businesses find themselves poorly prepared for the migration and end up moving applications back to colocation facilities. For enterprises seeking to ensure success in their migration, and even those considering making the switch, the validation of cloud applications should be of primary concern.
Developing cloud applications or migrating to a cloud environment means adding a lot of variable conditions between client and server. Applications that perform adequately on a corporate headquarters’ local network are often sluggish, slow, or downright unresponsive once deployed. WAN conditions, such as bandwidth constraints, latency, jitter and packet loss, can bring an application to a screeching halt once deployed within a cloud environment where distance is taken into consideration. In fact, 47% of businesses returning to traditional colocation cite latency as the biggest contributing factor to their leaving the cloud.
What’s the deal with latency?
Legacy applications are often developed in relation to LAN connections and assume a short distance between client and server with delay less than 1ms and there can be many interactions between client and server to perform a single function. Since transport protocols like TCP don’t handle impairments very well, even a little bit of latency or packet loss can cause application throughput to drop significantly. For example, a dedicated 1Gbps link can result in 6Mbps of throughput with only 0.01% packet loss.
This makes accurately predicting application performance a difficult task prior to deployment, but there are several options available to validate these cloud applications before going live. One option is rewriting it to function in parallel with cloud features. Another is to replace the legacy application with a Software as a Service (SaaS) equivalent, which means essentially switching to an entirely new application hosted by a third-party.
Moving to a like-to-like computing environment seems to be the best solution. This assumes the original computing resources, storage, memory, and OS match those anticipated within provider, but even so, application performance can still vary considerably because WAN access will present the biggest challenge. Since these options can be impractical and time consuming, the most common and cost-effective solution is obviously just migrating existing applications to the cloud as-is, but that doesn’t address WAN related performance issues.
Testing cloud applications under real-world conditions
To establish an objective understanding of how applications will perform within the cloud, the most convenient solution lies in network emulation. By emulating a real-world cloud network for testing purposes, a network emulation appliance can be a critical tool in this process. A network emulator allows testers to measure the actual throughput and responsiveness of applications within a test network to which they can apply the conditions and impairments they expect to encounter in the cloud. This test network also helps in deciding how much WAN bandwidth is required and which vendors solution best suit the needs of a system. Maybe a workload isn’t prepared for a transition to a cloud based environment? Figure it out quickly within the lab using a network emulator.
Of course, properly addressing issues concerning application deployment within a cloud environment is going to require a combination of network tools specific to each system’s unique requirements and demands. Properly testing and benchmarking both the initial network and the target cloud environments will provide an accurate baseline for validating the performance requirements of a migration before going live.
This article was written by Zak Cole of Apposite Technologies and originally appeared in Network World.