Monday, March 3, 2014

Cloud Computing

                Since we have all heard about the new age of Cloud Computing, Some of us must be wondering what kind of testing we can perform on this platform? First let’s get some insight on what is Cloud Computing?  It is a type of computing that relies on sharing computing resources rather than having local servers or personal devices to handle applications.
 In cloud computing, the word cloud (also phrased as "the cloud") is used as a metaphor for "the Internet", so the phrase cloud computing means "a type of Internet-based computing," where different services -- such as servers, storage and applications -- are delivered to an organization's computers and devices through the Internet.
There are different kinds of Clouds
Public clouds
A public cloud’s physical infrastructure is owned by a cloud service provider. Such a cloud runs applications from different customers who share this infrastructure and pay for their resource utilization on a utility computing basis.
Private clouds
A pure private cloud is built for the exclusive use of one customer, who owns and fully controls this cloud. Additionally, there are variations of this in terms of ownership, operation, etc. The fact that the cloud is used by a specific customer is the distinguishing feature of any private cloud. A private cloud might be owned by the customer, but built, installed, and managed by a third party rather than the customer. The physical servers might be located at the customer’s premises or sited in a collocation facility.
Community clouds
When several customers have similar requirements, they can share an infrastructure and might share the configuration and management of the cloud. This management might be done by themselves or by third parties.
Hybrid clouds
Finally, any composition of clouds, be they private or public, could form a hybrid cloud and be managed a single entity, provided that there is sufficient commonality between the standards used by the constituent clouds

Clouds are divided into 3 components 
· IaaS(Infrastructure as a service): Is the hardware and software that powers it all. It provides you the computing infrastructure, physical or (quite often) virtual machines and other resources like virtual-machine disk image library, block and file-based storage, firewalls, load balancers, IP addresses, virtual local area networks etc.
 Examples: Amazon EC2, Windows Azure, Rackspace. 
· PaaS(Platform as a service): Is the set of tools and services designed to make coding and deploying , programming language execution environment, database, web server etc.
Examples: AWS Elastic Beanstalk, Heroku, Force.com, Google App Engine. 
·Saas(Software as a service) Applications are designed for end-users, delivered over the web. 
in this model you are provided with access to application software’s often referred to as on-demand software’s. You don't have to worry about the installation, setup and running of the application. Service provider will do that for you. You just have to pay and use it through some client
Examples : Google Apps, Microsoft Office 365.




What is the difference between Cloud and traditional Application







The difference between Cloud and traditional method of testing, People mostly think it’s the same. But going through many articles we realize nothing can be the same there is always something different. Testing in cloud is different than out traditional on premise testing where enterprise has to set up, maintain and verify the scenarios from end to end prospective in all aspects. Cloud-based software testing refers to testing and measurement activities on a cloud-based environment and infrastructure by leveraging cloud technologies and solutions. Cloud testing exemplifies testing on demand and is perceived as future of testing services.

The following are the various types of testing performed in general for cloud testing:
·SIT/UAT: The cloud platform must be integrated with all platforms and infrastructure services so that a user can build up his data online. Testing is done to verify the current provided cloud solution from the vendor meets the business needs of the organization.
·Security testing: Ensure that all sensitive and important information which are going to be stored in the cloud will be highly secure in nature. As privacy also a key area in cloud from the user point of view, it’s important to verify   the privacy of the application users and associated information when maintained in cloud.
·Performance/Load Testing: Testing technique that measures the system performances in cloud. Verify the network latency and response time, Load balancing, peak request count by hosting subscription in different data center across the globe. Adding to these, traditional load and stress testing are required to validate business scenarios in the cloud model in terms of varying dynamic load and stress on the application.
·Stress/Recovery testing: Verify the time it takes to recover from disaster in different scenario (system crashes under high load/volume of data, hardware failures, system failures, Network outrage, insufficient bandwidth) as per SLA. Also verify is there any data loss in this process and time takes to report failure. Services must be retrieved online with minimum adverse effects on clients’ business.
·Interoperability Testing: verify moving application from one cloud to alternate cloud provider should have the flexibility to run successfully. Basically there should not be any issue if business/user is migrating from one infrastructure to another one


The infrastructure requirement for test environment is another important consideration for cloud testing. Some option can be simulating in-house test environment and choosing the right cloud service provider.
Testers should also focus in the specific requirements of the application to be tested as it is based on the cloud environment:
Supporting multiple browsers, User session management related issue, security vulnerability, in a multi-tenant environment, restricting users to access their data only and many more.
There are Various tools available in the market for cloud testing SOASTA Cloud Test, Monitis, Loadstorm, YETI(York Extensible Testing Infrastructure)and many more


Limitations noticed in cloud computing 

 "What happens if the cloud fails?" This is no idle question; a recent Amazon.com Elastic Compute Cloud outage automatically brought down a half-dozen name-brand services, including Reddit and FourSquare. The bad press appeared on mass-media outlets including CNN and The Economist magazine. Many Web 2.0 companies have decided to live with apparently random downtime for apparently random intervals; will your company be one of them?
You'll also want to worry about backups. What happens if the cloud service fails and restores from a backup that is an hour old? A day?  A week? What if some of the data is just “lost”? Who owns it? How much risk exposure will your company take on, and how can you mitigate that risk? In addition to reliability, cloud computing suffers from another challenge in security. True "cloud computing" generally involves renting servers from some outsourced provider. That means migrating your data to the provider, which can involve questions of trust, security, and, in some cases, federal regulation. Some of these are compliance issues, some legal, but a good tester who can analyze and communicate risks could be invaluable to this process.
 Conclusion:
Cloud Computing is a term that doesn’t describe a single thing – rather it is a general term that sits over a variety of services from Infrastructure as a Service at the base, through Platform as a Service as a development tool and through to Software as a Service replacing on-premise applications. For a better cloud testing experience, test team should adopt a robust strategy which caters to their business needs. Cloud computing is growing because of its scalability, availability, robustness and the lower cost for service that attracts small medium business companies to a great extent. Hybrid cloud can be deployed together to leverage the best of both cloud computing which helps organization keep secured data in the private cloud and other data’s in public cloud. Cloud Computing is a rapidly accelerating revolution within IT and will become the default method of IT delivery moving into the future – organizations would be advised to consider their approach towards beginning a move to the clouds sooner, rather than later.
References










1 comment:

  1. Thanks for sharing information its relay very helpful

    ReplyDelete