the bumpy road of moving applications to the cloud

  • 28 Jul 2021
  • 44
the bumpy road of moving applications to the cloud
Everywhere you look, companies are involved in some sort of digital transformation. For some, it means moving their entire business to the cloud which may include building or purchasing software for payroll, ordering, fulfillment and many other activities. For larger firms, entrenched with legacy applications, it means migrating or rewriting hundreds or perhaps thousands of applications to the cloud . This is no small feat, given the complexity and brittleness of many legacy applications. These applications have existed in some companies for decades and have been duct taped and band aided along the way to keep them working and stable. Developers have bolted on upgrade after upgrade, adding 3 rd party security features, web and mobile capabilities and so forth. A digital transformation for many larger companies is an ongoing process, taking years to evaluate and move through the myriad complex applications, many mission critical and many very fragile. Theres a lot to consider as companies transform their business to the cloud. As organizations evaluate which apps to move to the cloud first, they must look at identity management, database architectures, cloud compatibility, and much more. Some organizations opt to place an application on the cloud through a lift and shift approach without doing any redesign of the application. This approach does not allow the application to take advantage of cloud benefits including performance, stability and possible cost savings. This was a common approach in the early days of cloud migrations. A quick fix was to simply move an application to the cloud with all its databases intact. The movement also failed because non-cloud native apps are generally more expensive on a software-defined infrastructure. However, most companies realize that many applications will need a complete rewrite to take advantage of the clouds performance and scalability benefits and to provide a much higher level of security for consumers of the application. As painful and costly as it is to rewrite an application, sometimes there is no other choice. Thankfully, cloud providers offer many features that make building an application much easier than before such as a wide variety of databases, security controls, on demand bandwidth, to name just a few. Regardless of path you take in your application transition journey to the cloud, its important to keep in mind that application testing is crucial. Testing never goes out of style Some may think that since an application is being migrated or completely rewritten for the cloud, that there isnt much need to do extensive testing. Afterall, the cloud is going to solve our scalability and performance challenges, right? However, ongoing testing is critical in either approach you take. Even smaller micro releases, associated with agile practices, don't remove testing/quality concerns. When an application is being migrated to the cloud, there are many areas that need to be checked after the migration to ensure the application is operating properly. Even smaller micro releases, associated with agile practices, don't remove testing/quality concerns. These areas include, but are not limited to, load testing to measure performance and response time and UI testing to ensure the application is still performing as intended for the consumer. There are simply too many unforeseen glitches of migrating an application to the cloud that cannot be discovered without proper testing. Comprehensive testing is also crucial to the success of applications being re written (or refactored) for the cloud and include the two previously mentioned factors along with others discussed below. Specific Test Data All applications require test data (credit card numbers, addresses, names, etc.) during testing. This data can either be gathered through masking of production data or by generating synthetic data from scratch. Where do you get this data and how much time will it take to build the right data? Data, or lack of, can be a real drag on building applications for the cloud. Unique Test Environments Testing should simulate the most real world conditions as possible. This can get complex when the application youre testing needs access to backend databases, mainframe systems, 3 rd party APIs, etc. Simulating responses from these systems (known as service virtualization) allows testers to receive a virtual response from these systems as if it were the real thing. This approach saves testers and developers countless hours and costs associated with accessing live systems. Youve convinced me I still need to test my cloud apps, now what? Chances are you and your team are already using a grab bag of testing tools. Some are open-source, some are purchased and some are probably home grown. But many companies are now evaluating the benefits of using an open-source, continuous testing framework that can span the DevOps toolchain. There is a need for a more automated approach to testing where both tester