Application Testing basics - Migrating to the Cloud
Migration to the cloud is all about moving data, storage, databases, and applications from legacy systems to a modern cloud infrastructure, whether it's private, public, or hybrid, depending on customers preferences.
Businesses control compliance, costs, and security through a private cloud service based on an internal network behind a firewall.
In contrast, the public cloud is a type of on-demand computing service where infrastructure is hosted by third parties and shared with multiple organisations.
A hybrid cloud enables businesses to scale and reduce costs by sharing resources between public and private clouds without exposing mission-critical data to external threats. The use of multi-cloud services is also widespread among the biggest corporations to spread their workloads and increase availability during times of outage.
In terms of cloud migration, the approach varies considerably depending on the target architecture compared with legacy applications, business needs and dependencies.
Similarly, a variety of testing approaches can be defined based on requirements, system functionality, business process, integrated systems, and cloud solutions. Regardless of the cloud deployment services used, it is vital to conduct some essential testing when migrating to cloud to minimise the risk of failure during deployment and user acceptance.
Types of Migration and Testing approaches:
In lifting and shifting, applications and their data are moved from internal servers to cloud-based virtual machines without modifying any code. Code is less likely to be broken when rehosts. This may, however, result in complex application dependencies or long outages in the future. Services include virtualisation, servers, storage, and networking as part of IAAS (Infrastructure as a Service).
During the testing, Data Migration is validated, confirming the data from source to target is moved without any data loss. Testing for network security that examines user access, data protection, and server vulnerability. When an application is loaded, testing compares its behaviour when there is low, normal, and high traffic.
Next, it would be user acceptability testing. End users test the solution to make sure application can do critical activities under realistic conditions.
The goal of refactoring is to optimise an existing application for cloud-native features, to convert monolithic applications into microservices, and to improve performance. The Platform as a Service (PAAS) is a type of platform on which developers can build cloud-based applications or customise them. As in IAAS, here the vendor covers runtime, operating system, computing, storage, and networking.
It is a fast and easy way to create and delete re-usable applications on demand, in the API marketplace and Dev Ops. Among the risks are lack of control, vendor lock-in, inability to switch to another competitor supplier, etc.
Replace/re-purchase - The cloud provider manages all aspects of the application environment, including virtual machines, networking resources, data storage, and applications, with this Software as a Service (SAAS) model. Data is only provided to cloud vendors by businesses. The benefit is that application can be accessed from anywhere in the world, although requires high-speed bandwidth and secure network coverage.
Refactoring, rebuilding with new code, and replacing the database model require a system test to ensure that each component functions correctly.
Since businesses have more than one application, the countless dependencies between the various components need to be thoroughly tested using a system integration testing process to ensure their compatibility and functionality.
Serverless Rest APIs are developed with cloud computing. APIs are scalable, fast, and help with caching. The API is also used to test performance, authenticate access, and protect against malicious attacks.
During peak traffic, a stress test determines the maximum users load an application can handle to maintain stability, performance and usability on desktops, remote connections, and mobile devices. A latency measures how long it takes data to move between networks in nanoseconds.
If an event of disruption or downtime occurs, a fault tolerance check ensures workloads remain operational and available from multiple geographical locations around the world.
The process of testing applications that have been migrated, or are in the process of being migrated, greatly help an organisation to improve user experiences and business decisions. The cloud offers greater testing efficiency when the number of users grows at an unpredictable rate, or the deployment environment varies based on client requirements. Besides, there are cost effective benefits that include on-demand flexibility, freedom from holding assets, enhanced collaboration, higher efficiency levels, and most importantly, reduced time to market for key business applications.
This is an overview of Zarka Sultana’s presentation at Womentech Global Conference June 2022.
Watch the full presentation on Womentech Global Conference 2022