| By Robert Le Moine | Article Rating: |
|
| June 17, 2009 02:45 PM EDT | Reads: |
2,502 |
Before getting into detail on how we used Skytap to improve our agile development process, it's worth noting what types of testing the Cloud is not suitable for. Most Infrastructure-as-a-Service vendors offer standard infrastructure; however, some limit the configurability of processors, amount of memory, and network settings of machines (for instance, Amazon only offers Small, Large, and Extra Large specifications of machines). This can be an issue for specific test cases where low-spec machines need to be created. Other types of test scenarios include unit testing, functional testing, system testing, integration testing, and load testing of applications and the Cloud is suitable for these tests assuming your Cloud provider supports your application platform.
There are a few use cases where the Cloud is not recommended for testing (see Figure 1). These include tests that require specific x86 hardware (e.g., BIOS driver tests) and some types of performance and stress testing. If an application requires an onsite Web Service behind a firewall, this can usually be accessed using a VPN connection.
Extending Agile Methods to the Cloud
We follow an agile development philosophy and were keen to explore ways to improve our development process and quality using the Cloud. Since we made the move, we've seen numerous ways to improve our agile approach. Here's what we've learned:
Faster Iterations
The cloud is inherently self-service, which allows developers to get immediate access to development resources whenever they're needed. Activities such as buying, installing, and configuring physical machines are a thing of the past and we can now deploy a new development environment in a matter of minutes versus several hours (or days) previously.
Developers are rarely blocked because an IT operations request is taking too long and they can scale virtual machines up and down as needed. We've found that by removing these friction points in our development process we've reduced our iteration time by about 25%.
Customer Feedback
We've always tried to get customer feedback early and often in our development process. The challenge we had was providing customer access to applications easily. Typically we'd have to find a test stack (several machines), install a new build, and give a customer detailed instructions on how to RDP into these machines using a VPN connection. Usually, these machines couldn't be used for anything else while a customer was testing a build, which tied up machines and was inefficient.
Using a Cloud-based virtual lab, we can publish an entire development stack and give a customer a URL to access these machines. We only pay for the hours a customer uses the machines and can set auto-suspend rules after a period of inactivity. This not only improves the ease of getting customers involved earlier in the development process, but also cuts costs and improves flexibility.
Test Contexts
Many of our projects involve very specific test contexts, such as named domains, active directories with specific user accounts, and SQL server installations with users and data that closely mirror production. Our test cases include changing active directory entries, updating database entries, and changing configuration settings and we found setting up an isolated test environment very challenging.
Spinning up a test environment in the Cloud solves many the issues involved with replicating a complex multi-machine environment. Network fencing ensures environments are isolated, but that they still retain domain names, subnets, IP addresses, etc. We can run multiple copies of the same test environment side-by-side and roll back changes to a clean state quickly and easily. This capability has saved many tedious hours of trying to replicate test contexts and ensure test cases are adequately covered.
Team Interaction
We have a regionally distributed development team and this poses challenges with team communication. We've found many of these challenges have been solved with a Cloud-based virtual lab. We can now easily instant-message a URL to each other to collaborate in real-time on an application stack or to get advice. These "configuration URLs" point to entire multi-machine stacks and can only be accessed by approved team members.
In addition, our QA team can now snapshot entire multi-machine configurations and save them in the Cloud. This practically eliminates the "it works on my machine" complaint developers often pass back to the test team. Just like a TiVo can pause and replay TV programs, a tester can pause an application at the point of failure using the virtualization capabilities of the Cloud and shoot this over to the development team. This saves hours of trying to replicate issues for complex bugs.
Benefits
Overall, moving our development and test environments to the Cloud has been very successful for Buildingi. I'm often asked how to quantify the benefits of adopting a Cloud-based development environment. Every team is different, but analyzing total cost of ownership (TCO), time savings, and quality of code are good areas to focus on. Here are some of the specific benefits we've measured:
- Deployed the complete virtual lab solution in two days (including developer training)
- Saved $100,000 in capital expenses
- Reduced time to reproduce complex bugs by 80%
- Cut development iteration cycle time by 25%
- Improved set-up and tear-down of new test environments by 75% (two hours versus eight+ hours)
- Reduced time to deploy a customer user acceptance testing (UAT) environment from six+ hours to a few minutes
In summary, I'd definitely recommend looking into a Cloud-based lab environment to augment or replace your existing development and test infrastructure. We found Skytap worked best for us, but it's always important to complete a thorough evaluation based on your company's requirements. I'd recommend looking carefully at the capabilities of the Clouds you evaluate, especially with respect to supported operating systems, Web-based UIs, virtual lab automation, and configurable networking. It's a leap of faith moving to the cloud, but I'm confident you'll find significant benefits for typical .NET application development. Given Cloud vendors don't have any upfront charges and can be cancelled at any time, there's very little to lose and a lot to gain!
Published June 17, 2009 Reads 2,502
Copyright © 2009 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Robert Le Moine
Robert Le Moine is a Senior Consultant with Buildingi, helping people transform ideas into actual tools. With a background in both computer science and engineering, he has designed and implemented solutions ranging from complete IT Infrastructure designs to customized software applications. Fifteen years of experience in leading teams through the ever-changing IT and development worlds has provided Robert with the skills to guide his team through delivering solutions for small business as well as corporate environments.
- 4th International Cloud Computing Conference & Expo Starts Today
- Cloud Expo New York Call for Papers Deadline December 15
- Wave on Ulitzer: Confessions of a Google Wave Fanboy
- GovIT Expo Highlights Cloud Computing
- Google Wave
- Adaptivity & Cloud Computing: Exclusive Q&A with CEO Tony Bishop
- Cloud Computing Can Revitalize Your Career as Software Developer
- Oracle+MySQL Opponents Take to the Barricades
- Virtualization Expo Call for Papers Deadline December 15
- Vivek Kundra: "Engage the American People in their Daily Digital Lives"
- Instant Professionalism Online Despite Yourself...with Ulitzer
- Software Should Be Creative
- 4th International Cloud Computing Conference & Expo Starts Today
- Yahoo! Named “Platinum Sponsor” of Cloud Computing Expo
- Deputy CIO of the CIA to Keynote 1st Annual GovIT Expo
- Cloud Expo New York Call for Papers Deadline December 15
- Cloud Computing Expo: Exclusive Q&A with Yahoo! SVP Cloud Computing
- Wave on Ulitzer: Confessions of a Google Wave Fanboy
- GovIT Expo Highlights Cloud Computing
- Google Wave
- Live Demo of Yahoo! Query Language to be Given at 4th Cloud Computing Expo
- Adaptivity & Cloud Computing: Exclusive Q&A with CEO Tony Bishop
- Cloud Computing Can Revitalize Your Career as Software Developer
- IBM Goes After Gmail
- Where Are RIA Technologies Headed in 2008?
- Personal Branding Checklist
- The Top 250 Players in the Cloud Computing Ecosystem
- Wal-Mart To Sell $399 Ubuntu Linux-based Laptop with Google Operating System
- Google's OpenSocial: A Technical Overview and Critique
- Why Microsoft Loves Google's Android
- Web 2.0 Is Dead And It's Time To Get Out Of This Mess!
- i-Technology Blog: Google Trends on Java, McNealy, AJAX, and SOA Give Pause For Thought
- Android: Who Hates Google Over the Phone?
- Google Sales Surge 57% and Net Income 46% in Quarter 3
- i-Technology Blog: Is There Life Beyond Google?
- Social Network Wars: Google + Everyone Else vs Facebook





























