Welcome!

Government Cloud Authors: Elizabeth White, Liz McMillan, Pat Romanski, Dana Gardner, Gopala Krishna Behara

Related Topics: @CloudExpo, Containers Expo Blog

@CloudExpo: Article

Testing Considerations for Application Migration to Cloud Computing

Cloud application testing

Cloud computing adds a new dimension to conventional models of testing services delivery. Gartner highlights the five attributes of cloud computing as service-based, scalable and elastic, shared, metered by use, uses internet technologies (1). Cloud computing characteristics such as virtualization, on-demand scale up/down of infrastructure resources, self service capabilities and pay per use pricing models are allowing cloud platform vendors to provide infrastructure and software services at lower costs to organizations utilizing cloud computing services (2).

There is a growing trend of organizations taking up cloud computing initiatives to consolidate infrastructure that is geographically spread in multiple data centers to a single cloud platform vendor. Minimizing upfront infrastructure investment, ability to scale up/down quickly, high availability and disaster recovery are the other key factors contributing to early cloud adoption. Organizations are interested in having greater visibility into how infrastructure resources are consumed, aligning infrastructure needs to actual demand and lowering infrastructure management and support costs. Organizations should be aware of the application considerations for migration to cloud platforms to ensure a smooth transition to cloud environment (3).

Testing considerations and focus areas
The following are the key considerations that are helpful in locating areas that would require focus during test planning:

  • Application changes and on-premise interfaces - Moving an application to the cloud may require changes to the application to suit with the environment available on the cloud platform. For example, if the application is running on Solaris on-premise and the operating systems available on the cloud platform are RedHat Linux and Suse Linux, the application will require additional testing on the cloud platform. In addition, requirements such as authentication against on-premise active directory and new interfaces built with on-premise systems lead to additional areas for application testing.
  • Data migration - The data migrated from on-premise to cloud to take advantage of the storage services available on the cloud platform for additional storage needs, backup and archival requires new test cases to be developed as part of test planning.
  • Security - Organizations may decide to enforce access to application features utilizing on-premise user directories for authentication and authorization. In addition, web applications being migrated from with-in the firewall to a public internet on cloud require transport security mechanisms such as SSL. Data stored in cloud storage may have to be encrypted for security and compliance needs. The best practice is to secure the data in transit as well as the data at rest (4). Security testing of these new features has to be incorporated in to overall test planning.
  • Performance - The application needs to be load and stress tested on the cloud platform to ensure that system response is as per SLAs. As cloud platforms are often used for consolidating infrastructure in multiple regions to a specific region, special attention is needed to ensure that system performance is at optimum levels. This will require testing the latency in system response in comparison to response from on-premise environment for taking appropriate steps for performance improvement.
  • Scalability - Applications are usually migrated to cloud to take advantage of the elasticity features provided by cloud platforms for quick ramp up/down of computing resources to align with actual demand. The ability of the cloud environment to meet the on-demand needs of the application requires careful planning of the test scenarios and load for performance testing.
  • Availability and Disaster Recovery - Load balancers and elastic computing features for auto-provisioning play a critical role in ensuring high availability on the cloud. The ability of the cloud environment to withstand peak load and server failures has to be tested prior to releasing the application for producing use. Cloud platforms such as Amazon EC2 allow placing multiple instances in different availability zones in a region to protect applications from failure of a single location (5). The availability of the application has to be tested by simulating the failure of an application instance in a location. Also, data recovery mechanisms in place have to be tested for ensuring proper disaster recovery.

Cloud computing aspects conducive to testing
Testing an application being migrated to a cloud platform requires the test environment to be setup in the cloud environment. The following are some aspects of cloud computing that are conducive for setting up test environments on cloud platforms:

  • Reduce the lead-time for procuring infrastructure - Less time to provision infrastructure resources using self-service interfaces
  • Optimal use of hardware resources - In-house test environments require hardware, which most of the time goes unused. With cloud, the resources can be scaled  up or down to keep pace with demand which leads to efficient utilization of resources
  • Pay-per-use - With cloud, there is no need to budget for extra hardware. Additional resources can be procured easily for the test environment using pay per use models
  • Quick resource ramp-up - Cloud is ideal for quickly ramping up resources for the following testing needs: Testing an application on multiple operating systems, multiple browser types and multiple software versions (JVM, App Server etc.)
  • Setting-up multiple test regions - Cloud makes it cost-effective for creating separate test regions for system testing. Often, minimal infrastructure is enough for testing functional aspects of an app location. Large infrastructure needed to simulate production environment can be procured quickly for the duration of testing
  • Reduce software licensing costs - On-demand testing tools on cloud are cost effective and the pay per use models provide relief from costly one-time licensing of testing tools (6)

Enhancements to Testing Methodology for Cloud Testing
The enhancements proposed to the conventional software testing methodology are based on our experience with deploying and testing J2EE, .Net applications, and commercial as well as open source packages on Amazon EC2 and Microsoft Azure cloud platforms.

A typical cloud testing methodology is comprised of the following phases: Test Planning, Test Design, Cloud Setup, Test Execution, Remediation and Closure. The methodology for testing applications on the cloud platform requires additional activities in the following phases:

  • Cloud Setup - The setup of test environment on the cloud requires familiarity of the target cloud platform. Testing teams need training on key functions such as setting up a cloud account, provisioning cloud resources (Virtual Machines (VMs), storage, load balancers, software licenses). An understating of the cloud monitoring tools is essential to monitor system response and resource usage.
  • Test Execution - Based on the test requirements for the application, additional resources may have to be procured for computing as well as storage. For example, performance testing of the application will require a true representation of the production data for effective results. It may also require additional VMs to simulate computing support for handling larger loads. Testing application security will require understanding of the firewall rules, routing of requests and data access rules.
  • Closure - Cloud platforms provide storage at low cost and are ideal for archiving test cases, test results and test data. The VMs used for testing can be saved as images in cloud storage and can be restored later to recreate the test environment quickly for subsequent releases. Once the testing phase is complete, all the cloud resources can be released to keep the overall testing costs low.

Conclusion
Testing applications that are being migrated to the cloud requires a careful assessment of the testing considerations from the perspective of what application changes are undertaken for cloud deployment. This will help testing members in understanding application areas that need specific focus during testing on the cloud platform. In addition, knowledge of the cloud platform capabilities for scalability, availability and disaster recovery is useful for test planning. Testing teams should get acquainted with the cloud platform for accessing the test environment, monitoring and perform all test related activities. An understanding of the innovations cloud computing brings to testing services, especially test environment on the cloud and cloud based testing tools, will enable better utilization of the cloud computing capabilities by organizations for effective gains.

References

  1. Gartner Highlights Five Attributes of Cloud Computing, http://www.gartner.com/it/page.jsp?id=1035013
  2. The Five Characteristics of Cloud Computing, Maria Spínola, Cloud Computing Journal, http://cloudcomputing.sys-con.com/node/1087426
  3. Application Migration Considerations for Cloud Computing, Rajagopal Sattaluri, Cloud Computing Journal, http://cloudcomputing.sys-con.com/node/1686320
  4. Architecting for the Cloud: Best Practices, http://media.amazonwebservices.com/AWS_Cloud_Best_Practices.pdf
  5. Amazon Elastic Computing Cloud, Features - Multiple Locations, http://aws.amazon.com/ec2/
  6. HP and Amazon Web Services, http://aws.amazon.com/hp/

More Stories By Rajagopal Sattaluri

Rajagopal Sattaluri currently heads the Solution Architecture Team at Mahindra Satyam. He is a TOGAF certified enterprise architect. He has over 20 years experience in software development with expertise in Solution Architecture Consulting, Technology Evaluation, New Technology Research and Development, Product Development and Offshore Software Development. He is a staunch promoter of Agile, Cloud Computing and SOA. Rajagopal has a Masters degree in Management from North Carolina State University, USA and an under graduate degree in Computer Engineering from Andhra University, India.

IoT & Smart Cities Stories
Dion Hinchcliffe is an internationally recognized digital expert, bestselling book author, frequent keynote speaker, analyst, futurist, and transformation expert based in Washington, DC. He is currently Chief Strategy Officer at the industry-leading digital strategy and online community solutions firm, 7Summits.
Digital Transformation is much more than a buzzword. The radical shift to digital mechanisms for almost every process is evident across all industries and verticals. This is often especially true in financial services, where the legacy environment is many times unable to keep up with the rapidly shifting demands of the consumer. The constant pressure to provide complete, omnichannel delivery of customer-facing solutions to meet both regulatory and customer demands is putting enormous pressure on...
IoT is rapidly becoming mainstream as more and more investments are made into the platforms and technology. As this movement continues to expand and gain momentum it creates a massive wall of noise that can be difficult to sift through. Unfortunately, this inevitably makes IoT less approachable for people to get started with and can hamper efforts to integrate this key technology into your own portfolio. There are so many connected products already in place today with many hundreds more on the h...
The standardization of container runtimes and images has sparked the creation of an almost overwhelming number of new open source projects that build on and otherwise work with these specifications. Of course, there's Kubernetes, which orchestrates and manages collections of containers. It was one of the first and best-known examples of projects that make containers truly useful for production use. However, more recently, the container ecosystem has truly exploded. A service mesh like Istio addr...
Digital Transformation: Preparing Cloud & IoT Security for the Age of Artificial Intelligence. As automation and artificial intelligence (AI) power solution development and delivery, many businesses need to build backend cloud capabilities. Well-poised organizations, marketing smart devices with AI and BlockChain capabilities prepare to refine compliance and regulatory capabilities in 2018. Volumes of health, financial, technical and privacy data, along with tightening compliance requirements by...
Charles Araujo is an industry analyst, internationally recognized authority on the Digital Enterprise and author of The Quantum Age of IT: Why Everything You Know About IT is About to Change. As Principal Analyst with Intellyx, he writes, speaks and advises organizations on how to navigate through this time of disruption. He is also the founder of The Institute for Digital Transformation and a sought after keynote speaker. He has been a regular contributor to both InformationWeek and CIO Insight...
Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settlement products to hedge funds and investment banks. After, he co-founded a revenue cycle management company where he learned about Bitcoin and eventually Ethereal. Andrew's role at ConsenSys Enterprise is a mul...
To Really Work for Enterprises, MultiCloud Adoption Requires Far Better and Inclusive Cloud Monitoring and Cost Management … But How? Overwhelmingly, even as enterprises have adopted cloud computing and are expanding to multi-cloud computing, IT leaders remain concerned about how to monitor, manage and control costs across hybrid and multi-cloud deployments. It’s clear that traditional IT monitoring and management approaches, designed after all for on-premises data centers, are falling short in ...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
Dynatrace is an application performance management software company with products for the information technology departments and digital business owners of medium and large businesses. Building the Future of Monitoring with Artificial Intelligence. Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more busine...