Newsletter sign-up
View all newsletters

Enterprise Java Newsletter
Stay up to date on the latest tutorials and Java community news posted on JavaWorld

Sponsored Links

Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs

What the cloud really means for developers

Software as a service and big data get the buzz, but the hottest area of the cloud is dev, test, and deploy -- at a faster and larger scale than ever

  • Print
  • Feedback

If indeed we are headed for a future in the cloud, developers are the big winners. And I'm not talking about that relatively small number of developers who frequent a PaaS (platform as a service) like Azure, CloudFoundry, Force.com, or Google App Engine. I'm talking about everyday dev and test infrastructure for whatever big new app needs to be built and deployed across hundreds or thousands of servers in private or public clouds.

Traditionally, developers have had a fraught relationship with operations. Sure, programmers do much of the coding on their own machines, but when it's time to get serious about an enterprise-grade application, someone has to stand up the testing environment to ensure availability, reliability, and scalability of the application, not to mention security. Operations people, who have other stuff on their plates, tend to be tasked with the job -- and sometimes they don't quite nail down the specific requirements needed for a real-world test.

[ InfoWorld's Matt Prigge asks, Moving data to the cloud? Read this first. | Get the no-nonsense explanations and advice you need to take real advantage of cloud computing in InfoWorld editors' 21-page Cloud Computing Deep Dive PDF special report. ]

That can lead to applications that are not properly tested before they're deployed. Yes, developers can be sloppy -- or sometimes too demanding -- in specifying their requirements, so I'm not saying that it's all ops' fault. But the point is: There has to be a better way than laborious manual deployment and configuration of such environments.

In fact, the most practical use of cloud computing today is to provide developers with the self-service tools they need to provision their own dev and test environments, either in a private cloud, a generic IaaS (infrastructure as a service) cloud such as Amazon Web Services, or in a PaaS cloud. On the private cloud side, HP and IBM even have appliance-like blade servers configured for precisely this purpose. Typically, you get a preinstalled app server, workflow tools, resource monitoring, and other stuff you need to get work under way.

But the advantages of the cloud run deeper than a turnkey dev and test environment. These days, development teams are often dispersed around the globe, and Web-based social media tools such as wikis provide a great way for developers to hash out issues, provide status reports, and otherwise keep the communication flowing. If there's a native cloud application, it's collaboration. You also want to put your source repository, build automation, and bug tracking in the cloud where everyone can access it.

Of course, many dev shops have moved to Web collaboration whether or not they work in a cloud environment. But think for a minute how well the bursty nature of the cloud fits the testing cycle. If you convince ops to scale up for regression testing or full-scale load testing, it's going to cost you a bundle. With the cloud -- particularly public cloud services -- you just fire up the VMs as needed and spin them down when you're done, pay-as-you-go style.


  • Print
  • Feedback

Resources