test environments

How to create templates of Amazon EC2 environments

Sometimes, when you’re developing an application (or even in the testing stage), it’s really useful to be able to regress back to a previous iteration or even branch off into several unique environments. You might also want to set up identical environments to send off to other people, such as team members, clients or even sales teams. Cloud platforms like Amazon Web Services and its Elastic Compute Cloud (EC2) service offer a cost effective solution to this problem, especially compared to traditional (“tin”) infrastructure, but managing all these environments and machine images in the Amazon Management Console can quickly become confusing. It would be easier if you could set up a template for each environment iteration and fire up said environments directly from the templates.

This is actually very simple to achieve – even for those without deep technical knowledge of AWS or similar IaaS offerings – by using a neat application called CloudFlex (disclosure: yes, it’s made by Intechnica, but we find it very handy).

Step 1: Set up the template

CloudFlex uses a step-by step wizard to guide you through the process of defining what your environment should look like. This includes the number and type of AMIs (Amazon Machine Images) that should be deployed, their security groups, elastic IPs, load balancers and everything else you might need. You can also give it a descriptive name to help you identify each template at a glance. All of your templates are shown in one place so you can see what you have saved and launch environments from them easily.

Step 2: Launch an environment

Once you have your template set up, you can start an environment from it. You can either do this manually or schedule it to start up whenever you like, or as frequently as you need (such as every morning at the start of the working day). When you start an environment manually, all the details are pre-populated by your chosen template, which keeps everything consistent across multiple environments. After the environment has finished spinning up, CloudFlex gives you quick access to details such as its public DNS; you can also connect to a machine image’s remote desktop through this screen. From there you can do whatever work you need to do on said machine.

Step 3: Save environment snapshots

Now that you’ve connected to your AMI and done your work, you might want to keep a snapshot of that image, in its current state, to go back to later (or to distribute to team members etc). You might not want to allow access to the AMI you’re working on in case something gets changed. The best solution is to create a new template from a snapshot of your AMI. To do this, from the details page of your environment in CloudFlex, click “Create Machine Image” (after giving it a name) and the AMI will be copied in its current state to your AWS account. Now, repeat steps 1 & 2, this time choosing your new AMI as the machine image for your template. You can then start up as many concurrent versions of the environment as needed and send remote desktop files for each to whoever needs access.

CloudFlex is available from Intechnica from £99 per month. If you want to know more, visit the website where you can sign up for a trial or leave a comment below.

Advertisements

What are the options for testing in the Cloud?

I’m in the final stages of preparing my presentation and workshop session for the UK Test Management Summit next week in London and its making me think more about cloud computing in general as well as performance testing. Either testing in cloud environments or using the cloud to deliver more scalable performance tests.

Intechnica’s research paper last year, entitled “How Fast Is The Cloud?” investigated the relative performance of a simple eCommerce application on various different cloud platforms including IaaS and PaaS options. We demonstrated that a well implemented cloud solution could out-perform traditional hardware but that poor implementations would confirm cloud-sceptics suspicions about poor performance in the cloud.

At Intechnica, as well as using cloud environments to functionally and performance test code that we’re developing for clients, we use cloud based performance test tools to test our customer’s own test environments. By using cloud based load generators (injectors) and the Intechnica TrafficSpike product, we can quickly provision tens of load generators, use them for a few hours and then decommission the servers. This allows for highly scalable, comparatively low cost performance testing particularly when compared to trraditional models where multiple servers sit idle waiting for the one day per week or month where they’re used to their full potential.

The trend in performance testing seems to be a move away from traditional performance test tools and towards cloud-based load generation. This is demonstrated by the growth in companies such as SOASTA, LoadStorm, blitz.io and BlazeMeter. Our workshop at TMF will give test managers the opportunity to discuss these different test technologies and obtain a better understanding of cloud performance and the implications for their business. As well as this we’ll be giving attendees the opportunity to use Intechnica’s Cloudflex product to see how easy it can be to provision multiple, identical test environments for themselves.

I’m looking forward to meeting attendees next week to discuss the implications of cloud computing for those of us in the testing industry.