I have commented previously in this column that I believe the best use case for the cloud is software development and, especially, testing. Clouds are ideal for running testing storms, in which every test is run on software on every platform.
This process, which used to take days and tie up large numbers of resources, can now be exported to clouds, where virtual machines are rented by the hour. There, they are spun up, the software and the tests are loaded and run, and the results are shipped back to the in-house servers, where they are analyzed to make a pass/fail determination.
This use case for the cloud has become even more popular as companies begin experimenting with the core concept behind continuous delivery (see the book by the same name from Jez Humble and David Farley). That concept suggests that the continuous integration process should be expanded to perform a complete build for all platforms, to deploy the app on all platforms and run all tests, and then to do all the final packaging of the app and test that too. In a later column, I’ll discuss this approach and its implications in more detail.
But there is another aspect of off-site systems that is steadily garnering acceptance: development that’s hosted off-site, essentially as a SaaS solution. A typical deployment of this approach might include defect tracking, collaboration tools and a CI server. Some options add SCM as well. This arrangement, in which the key development data repositories are off-site, will be familiar to developers who contribute to open-source projects.
The reasons this arrangement is beginning to look appealing to IT organizations are ease of administration, cost and security. Let’s look at these in greater depth.
Ease of administration goes hand-in-hand with cost. While administrators and system managers might be experienced in many areas, they’re unlikely to be experts in the details of defect-tracking systems, developer collaboration tools, CI servers, SCM or wikis. (Arguably, wikis might be familiar.) The options, then, are to hire and train admins and figure out how to get 24×7 coverage, or to have someone else handle it.
The latter course makes even more sense if the development teams are widely distributed. For example, how are you going to handle the CI server going down at 4 a.m. in the U.S. when your team in Asia is trying to validate the code? The Asian team is unlikely to find that waking an American administrator, waiting for him or her to get ready, dial in, diagnose, and fix the problem is a viable solution.
In a hosted environment, the host’s staff can respond right away with full knowledge of what the error codes and symptoms mean. The cost for these services is surprisingly low: around $300 per year per developer. When assessing this figure, it’s important to add in the hardware cost of and the (generally) substantial expandability of hosts.
Another benefit (although somewhat more mixed) is security. While IT organizations are versed in detecting attempts to break through the firewall or to penetrate the organization via the Web, they tend not to know what an attack on development servers might look like. This is true even at large development organizations.
Consider, for example, the break-in at the Apache Software Foundation in April. It took Apache almost four days to recognize that an attack on its JIRA system had occurred. Atlassian (the maker of JIRA) was hacked later, but its customers did not suffer compromised systems. In part, this result is attributable to luck and the benefit of being informed about the attack by Apache. That intelligence is a crucial benefit of hosted platforms, such as Atlassian’s Studio, since the providers are likely among the first to know when a vulnerability has been revealed.
Understandably, the fact that this break-in could occur at all will make some managers goosy about putting their source code on external servers. But they can place other tools, such as wikis, collaboration tools, dashboards and binary tests, on those servers and derive the benefits of SaaS.
Atlassian Studios is probably the most complete offering, with everything except SCM, for $25 per month per developer. CollabNet Codesion includes SCM, but has fewer collaboration features and no CI server at the same price. For smaller teams, GitHub and Bitbucket are viable options.
As the cloud gains momentum, I expect that more providers will be stepping into this space—and thereby making software development that much simpler.
Andrew Binstock is the principal analyst at Pacific Data Works. Read his blog at binstock.blogspot.com.