Perhaps the biggest issue facing developers in 2008, and certainly moving into 2009, is the cloud. How should developers gear up to take advantage of the cloud computing environment? Who’s doing what, and what trends do developers have to look out for?
As one of his major predictions for 2008, Forrester analyst John Rymer said he believes more and more enterprises will move to the “cloud for commodity workloads.”
“Virtualization and cloud computing are the key architectural breaks driving a massive transformation in the world of computing,” said Patrick Kerpan, CTO and co-founder of CohesiveFT (Cohesive Flexible Technologies), a cloud infrastructure software provider. “It is computing ‘gone through the looking glass.’ We will look back and not be able to remember how we used to do things. It will be similar to the world of five years before Netscape to five years after Netscape.”
At its Professional Developers Conference in Los Angeles in October, Microsoft made its entry into the cloud space known with an offering intended to compete with Amazon EC2 (Elastic Compute Cloud), Google’s Google App Engine and others.
Ray Ozzie, Microsoft’s chief software architect, announced Windows Azure, the cloud-based service foundation underlying its Azure Services Platform, and highlighted this platform’s role in delivering a software-plus-services approach to computing.
Microsoft said developers can use the familiar Microsoft Visual Studio tools to build applications for the Windows Azure platform. Indeed, Visual Studio will have four new cloud templates to support development of Windows Azure applications, Microsoft said.
Most of all, Microsoft’s presence in the space will legitimize it for everybody else, much as the company did for the ALM (application lifecycle management) space with its delivery of Visual Studio Team System a few years ago.
Microsoft also announced its Live Mesh offering in April. Allowing users to sync data and applications from all of their devices in tune with a cloud operating environment, this could be just the boost developers need, enabling them to write an application once and target it to multiple places.
Amazon Web Services, which currently leads in the cloud space in terms of real deployments, made several key announcements in 2008. Just prior to Microsoft’s announcement of Windows Azure, Amazon.com announced plans to support Windows Server and SQL Server on its EC2 platform in what amounted to a preemptive attack on Microsoft.
The Future of Development: Waste
In November, Amazon.com announced the launch of Amazon CloudFront, a self-service, pay-as-you-go Web service for content delivery. With the release of CloudFront, Amazon delivered a way for developers to distribute content through a worldwide network of edge locations that provide low latency and high data transfer speeds.
For its part, Google earlier in 2008 brought out Google App Engine, which enables developers to run their Web applications on Google’s infrastructure. Applications run in a secure sandbox environment.
“You can serve your app using a free domain name on the appspot.com domain, or use Google Apps to serve it from your own domain,” according to a Google Web page describing the company’s cloud computing offering for developers. “You can share your application with the world, or limit access to members of your organization.”
The Google App Engine features dynamic Web serving, persistent storage, automatic scaling and load balancing, APIs for authenticating users and sending e-mail using Google Accounts, and a “fully featured local development environment that simulates Google App Engine on your computer,” Google said.
Meanwhile, at its Dreamforce annual conference in San Francisco in November, Salesforce.com, which refers to itself as “the enterprise cloud computing company,” announced to thousands of its users and developers that its Salesforce CRM Winter ’09 release had gone live. And for developers, Salesforce.com delivered the Force.com IDE (integrated development environment) for Winter ’09.
CohesiveFT’s Kerpan said: “Think back to the ‘relatively’ simple trick of virtual memory. Many IT people remember life before virtual memory. Those who are younger, take it as a research project. We went from sweating every byte of memory used and fussing with overlay files to virtually unlimited memory. This transformed the development of software systems. Developers who couldn’t get used to ‘wasting’ memory hurt their projects by slowing them down. It was a rough shift for people who were ‘memory management heroes’ a mere year or two earlier.”
Kerpan added, “Virtual memory meant nearly unlimited memory for your application-virtualization combined with public clouds like Amazon EC2, FlexiScale and ElasticHosts means a world of nearly unlimited computing devices.
Developers who understand that ‘wasting’ servers, assembling a huge number of servers, deploying a huge number of servers and discarding them at will are a good thing will have the advantage over their peers who still nurture, script and sculpt lumps of land-based metal [physical servers].”