Ryan Pelerin is the founding partner and COO of WSM International, a web and data server migration service company.
The motivation behind performing a cloud migration varies from one company to another. It might be a desire to upgrade an operating system or aging infrastructure, or simply to improve performance and scalability. However, the one constant involving cloud migration remains rigorous performance testing.
Unfortunately, testing is commonly misunderstood and too often dismissed. When it comes to cloud computing, many IT decision makers may not appreciate that cloud scalability does not eliminate application performance problems. The reality is that applications cannot always scale up correctly, even when running on appropriate infrastructures. Consequently, businesses moving to the cloud without performance testing are prone to server breakdown issues, including database errors, and application and website crashes that can be extremely costly in terms of time, resources and customer goodwill.
With that in mind, businesses and IT decision makers planning to perform a cloud migration should make it a priority to understand the critical role testing plays in a cloud migration regardless of environment.
Benefits of Testing
Conducting load and stress testing in a cloud environment is not the same as testing in a traditional physical environment. For enterprise organizations, assuming that the applications and DevOps tools that worked in a physical server environment will automatically work in the cloud is a recipe for disaster. There are myriad points where the potential for instability, incompatibility and technical breakdowns can cause slowdowns or crashes, and rigorous testing that pushes your software and servers to the limit will help ensure that your systems are well equipped to handle peak loads. Errors or issues that come to light during the migration can be resolved before the new environment goes live. Testing should not be considered completed until comprehensive load testing has been performed and all applications and operations are running flawlessly in the new environment.
Types of Testing
To ensure a fully functional, stable and secure environment, testing protocols should include general performance and compatibility testing, stress and load tests, and vulnerability testing. Functionality tests should occur once the data and applications have been moved to the new cloud environment, paying particular attention to any software involved in tool chains and scalability.
Load testing and security reviews are the next steps in the process. Load testing puts pressure on the new environment to ensure that it operates smoothly at and above anticipated user volumes. This process ensures that auto-scaling is functioning as intended and — when done correctly — should be able to clarify the maximum number of concurrent connections that workloads, applications and websites can handle before failure. It can also provide valuable information such as average page load times and application performance metrics used to fine tune performance.
Server and application-side security reviews should be a part of vulnerability testing: assessing the new environment to make sure there are no obvious server or application liabilities and that any sensitive data is full protected. It should also include basic security and malware scans (which can be performed during the migration process).
Testing Best Practices
Once decision makers accept that testing should be a part of the cloud migration process, it is then important for them to familiarize themselves with industry best practices for undertaking it in a way that provides critical insight and a better awareness about capabilities of their environments.
Have the right personnel and resources in place. Remember that testing is just the first step. If problems are identified, they need to be addressed. It is important to have experts on hand to handle any programmatic issues that arise. When working with a migration services firm, ask if it can provide that particular service. Additionally, to avoid unnecessary delays or expenses, be sure to schedule any personnel or resources ahead of time so they can be available when you need them.
Engage with end users. Whenever possible, end users should undertake comprehensive functionality testing. Avoid third parties during this stage, and make sure that those most intimately familiar with the systems in question are involved in the testing process. Their insight can be invaluable.
Perform ongoing testing. Testing is a process, not an event. Ongoing performance, security and load testing are essential, particularly for those businesses that frequently change their websites or update applications. Implement a plan to conduct regular testing at least once a quarter. However, once a month is highly recommended to ensure that your systems remain functional, robust and secure for a long time to come.
Cloud computing’s promises of reduced costs, flexibility and scalability make moving to the cloud an appealing proposition for more and more businesses. But, scalable cloud infrastructure is not a cure-all: testing still matters. Instead of letting “broken” applications and website dysfunction teach them the hard way, businesses and decision makers would be wise to adhere to testing best practices and avoid the disruptive and sometimes damaging downtime that can result when appropriate testing is not performed.
Industry Perspectives is a content channel at Data Center Knowledge highlighting thought leadership in the data center arena. See our guidelines and submission processfor information on participating. View previously published Industry Perspectives in our Knowledge Library.