Testers, are you ready to go where no testers have gone before? Then let's go to the cloud! Cloud computing, also...
known simply as the cloud, is a service model in which computing resources are shared and maintained on the Internet rather than internally and purchased and consumed as needed. The cloud offers many advantages including lowering costs and scalability. Organizations eliminate infrastructure costs and pay only for what they use, and since cloud environments can be built quickly, the solution adds value through flexibility. The IDG Enterprise Cloud Computing study of 2014 found that investments in cloud technology have increased by 19% in large-scale enterprises which spend approximately $3.3 million a year (per company). Cloud testing strategies become increasingly important as the adoption of cloud computing continues to grow.
Since cloud testing strategies require an understanding of cloud architecture and the terminology associated with it, we'll look at this brave new world in two parts. In this article, we'll learn about the cloud service delivery model. In part two, we'll look at cloud testing, including the challenges, important considerations and cloud testing strategies.
The structure of the cloud
Cloud architecture is based on the "as a service" delivery model. The "as a service" model is not new; we use it in our activities on an almost daily basis. Let's use swimming as an example. I enjoy swimming. In order to swim, I must own or have access to the assets such as a pool (preferably a clean pool) that is filled with water. If I choose to "own," I can install a pool in my backyard. I will need to pay not only for the pool itself, but also the ongoing maintenance and cleaning, and the water.
Alternatively, I can purchase "swimming as a service." In this scenario, I purchase a gym membership which entitles me to swim "on demand," basically whenever I want. The gym owns the pool and pays for the maintenance, the cleaning and the water. Or, I can purchase the beach parking permit and swim in the ocean.
In cloud computing, "as a service" refers to the delivery model in which organizations purchase the use of assets required for computing on demand rather than purchasing and maintaining these assets themselves. As with swimming, there are several types of assets needed for computing. They are structured in three layers in the cloud: infrastructure as a service (IaaS), platform as a service (PaaS) and software as a service (SaaS).
In our swimming example, IaaS is the pool. In cloud computing, IaaS refers to hardware resources including servers, network and storage devices. These are located in facilities managed by the IaaS provider and accessed through the Internet.
PaaS is the water in the pool. In cloud computing, PaaS refers to the middle layer which encompasses the complete runtime environment. These are spun up on demand on virtual machines. A virtual machine contains an operating system and runs software in the same way that physical hardware would. These environments offer lots of value in providing easy access to test environments, so we can not only test the cloud but also test in the cloud.
SaaS is the top layer; it is the applications or software through which computing takes place. Software is provided to organizations through the purchase of licenses, usually based on the number of users who will need to access the application. The applications are access through the Internet. In our swimming example, I could hire a swim instructor and pay only for the numbers of lessons I need.
There are three types of clouds: public, private and hybrid. A public cloud provides services to everyone and allocations are made by request on a pay per usage basis. Amazon EC2, Microsoft Azure and Google's AppEngine are examples of public clouds. A private cloud is a data center that is owned by an individual company. It provides "as a service" only to who have access to the organization's firewall. A hybrid cloud is a mix of public and private clouds; it provides the benefits of "as a service" allowing the organization to use the public cloud as needed while maintaining some services within the organization's firewall.
As a tester, the cloud is a brave new world that will continue to grow and likely become the predominant service delivery model in most IT organizations. As testers, we have no choice but to embrace this brave new world. From the tester's perspective, the brave new world of cloud computing comes with not only challenges but also advantages. It is "as a service" for us, too. Access to test environments has never been easier. So, now that we understand cloud architecture, let's move on to cloud testing strategies.
So, how do we do that? First, by understanding the "as a service" model. Dev, test and production code are in the cloud today. Second, by knowing that our testing isn't local, and understanding where those environments exist. Third, by knowing that the answer will no longer be, "It works on my computer."
Stay tuned for part two of this series.
Beware the cloud testing pitfalls.
Get started with the Brave New World of Testing series.
Excited by the idea of testing in the cloud? Keep reading.