Your options for having a software development lab in the cloud are increasing. Here’s how to get your dev lab there.
Putting software through the paces of a cloud-based development, testing, and quality assurance lab is one of the best ways to try out a cloud environment without having to worry about the data control and security issues of production environments.
Public cloud environments like those from Amazon, Microsoft, Joyent, and soon Hewlett-Packard let developers rapidly scale lab infrastructure and deploy the needed tools without making big up-front capital investments. But if they're not carefully managed, public cloud lab costs can escalate, ratcheting the total cost of ownership higher than for on-premises or private cloud labs.
We found this out with a lab we ran in the Amazon Web Services cloud. At the beginning of the month, one of our developers stood up a new application that used a lot of CPU and storage, and he accidently left it on. Lab costs that month were up tenfold. Amazon kindly sent a note thanking us for relying on AWS for more of our needs, but more proactive management was what we really needed.
But private cloud labs are complicated and can be costly to set up. Ultimately, your organization's security requirements, budget constraints, and ability to deal with complexity will determine which way you go.
Why A Cloud Lab
From a business perspective, organizations can set up public or private cloud labs faster than on-premises labs and shift lab costs from capital to operational expenses. By putting your lab in the cloud, you give developers a self-service portal where they can create, replicate, change, and delete entire software development projects and test stacks on demand. Developers and testing engineers can use various databases, operating systems, browsers, application builds, and middleware combinations for the configurations they need--all without involving the IT folks. They also can create new release stacks on demand and ensure that they're consistent through release cycles.
With a cloud lab, developers also can quickly re-create a complex bug or production problem, take a snapshot, and then make changes, run tests, and compare the results to the original snapshot.
A cloud lab supports mobile workers more effectively than a conventional one, because development tools can be accessed from anywhere with a network connection. It also makes it easier to have a different mix of team members on various projects. You can easily implement customized access polices for each role on a team and give outside contractors restricted roles and rights compared. Team members can share configurations, templates, assets, and files specific to their projects, and collaborate during the entire development cycle.
Although the cloud model brings users together quickly, fosters collaboration, and maintains consistency while increasing productivity, it's still costly and time consuming to build all the software services you'll need. It's often better to use commercial off-the-shelf software in a private cloud or software-as-a-service tools in a public cloud. There are several vendors that offer cloud lab products, including CollabNet, Electric Cloud, eXo, and Skytap Cloud.