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 3rd 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. There’s 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 cloud’s 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, it’s 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 isn’t 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.
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.
Testing should simulate the most real world conditions as possible. This can get complex when the application you’re testing needs access to backend databases, mainframe systems, 3rd party API’s, 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.
You’ve 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 testers and developers can be a part of building quality applications, faster. Perhaps you are part of a Center of Excellence and are looking to standardize on a particular test platform that meets the needs of both teams. A testing platform can bring you this type of democratization.
There is also a need to shift testing to the left so that testing starts much earlier in the development process. Without a test platform, this type of frequent testing is more difficult because monitoring the various checkpoints cannot be easily automated. Many single purpose testing tools were not architected with digital transformations to the cloud in mind. They serve a single function and probably do it well, but do not provide the ability to collaborate.
When viewed as a whole, a comprehensive testing platform will have the following elements where each function (or more) can be handled by individual teams. The beauty of this approach is that critical aspects of application testing will be included in your sprints, allowing you to shift testing to the left.
Make your journey to the cloud easier
If your testing tools look more like a cluttered grab bag of expensive single-purpose gizmos, then it’s probably time to consider how a testing platform can be a better solution as you move your legacy applications to the cloud. Using a cloud-based testing platform to test cloud applications just makes sense regardless of how you are structuring your digital transformation.
Content provided by SD Times and Broadcom.
Credit: Source link