Head in the Clouds
Nearly everyone in software development has been aware of the year-long discussion of the "cloud." The ill-defined term originally meant a pool of hardware computing resources from which systems could be quickly provisioned and torn down. Scalability testing would be a perfect use of the cloud, as would be hosting a website that suffers sudden spikes in traffic. Today, though, even this definition is evolving, and the cloud increasingly refers to an offsite hosting platform that has flexible deployment characteristics. That is, companies are increasingly examining and adopting the cloud as a place to host applications and data. Some of the clouds are private (so, within the firewall), others are public.
So far, so good. The problem developers face is that programming for the cloud, especially public clouds, is no simple task. The main providers of cloud services — Amazon EC2, Google App Engine (GAE), and Microsoft Azure — all use different, proprietary APIs that tie applications fairly tightly to the cloud platform. In most cases, the principal hooks that block migration are the database APIs. Amazon and GAE both use highly distributed data stores, which have different architectures and distinctly different APIs. Microsoft offers modified versions of its SQL Server for a fee in its cloud instances.
The programming issues extend beyond databases, however. GAE, for example, supports Java, but not the full set of standard Java libraries. If your application relies on a JAR file that's not on Google's white list, your app won't run. Similarly, if you use Python on GAE, you'll be locked into a fairly old implementation of the language. Many of the recent improvements made in Python will be off limits.
As developers, we could abide these problems if the information on how to deal with the APIs and cloud-specific issues were widely available. But it's not. There are precious few books on the topic (a situation I am sure will change) and much of the knowledge currently seems to be part of an oral tradition that is captured in bits and pieces in blogs and in forums.
At Dr. Dobb's, we are convinced that the cloud is fast becoming a game-changer in the way IT functions. In fact, we expect its effects will be felt way beyond IT: scientific computing and possibly even consumer-level computing are likely to find the cloud an agreeable home.
Because of this view, you'll start to see more coverage of the cloud in Dr. Dobb's. Next week, we'll run the first installment of a series of how-to articles that target the GAE. Also, on April 14th, we're presenting a half-day virtual event consisting of multiple webinars about developing for the cloud. We'll have presentations on the GAE and Microsoft Azure as development targets; and we'll also offer a session on doing testing and continuous integration in the cloud. Attendance at these webinars is free. Details will appear shortly on our site.
As we continue to poke our heads into the clouds, we hope you'll send us your feedback and thoughts and let us know how we can best align our coverage with your needs.
— Andrew Binstock, Dr. Dobb's Editor in Chief