Robert's Blog

Monday, January 5, 2009

Databases in the clouds?

A few years ago, I put together a presentation in which I included a simplified diagram of an application system. It was an end-to-end depiction, with users (external to the application-owning organization) on the one side, the company's IT infrastructure on the other side, and in between, a cloud, representing the Internet, through which said users interacted with the application.

For years, people have used a cloud in diagrams to represent the Internet - something that is physically implemented on hardware (routers, servers, switches, communication links) that is outside the control of an enterprise but which plays an absolutely vital role in the end-to-end functioning of applications that are the lifeblood of a great many organizations. Lately, the cloud in more and more application system diagrams has shifted: instead of being something that's located between users and a server infrastructure, the cloud is the server infrastructure.

The move to so-called "cloud computing" is a natural progression in the ongoing adoption of Internet technologies. If a business leader is willing to trust the Internet, as a communications conduit, to provide the reliability and security (provided through things such as encryption and virtual private networks) needed to make an application viable, is it such a stretch to entrust the application itself - and its associated data - to a server infrastructure that is owned, operated, and managed by an extra-enterprise entity? In increasing numbers, companies are choosing to go this route.

While the buzz around cloud computing has recently become quite loud, the concept is not all that new. It's been the foundation of the business plan for (and other such companies) since day one: "Hey, prospective customer. Instead of buying the code for a CRM (customer relationship management) application, why not let us run the application code at our data center, and you just pay for the value delivered by the application service?" Popular Web-based e-mail applications such as Google's Gmail are another example of cloud computing in action. I use one of those e-mail offerings, and the e-mails in my in-basket are data, and that data is not stored on my PC - it's stored at some data center located who-knows-where.

So why all the current buzz around a concept that's been around (and operational) for some time? I believe that cloud computing is much on people's minds these days because companies are now giving serious thought to having applications that they have developed (as opposed to packages they've bought) run in a cloud-provider's server infrastructure (and a fair number of organizations have in fact already pulled that trigger). The appeal of cloud computing is fairly straightforward, and it has a lot to do with saving money. Think about it: cloud computing providers want to sell server and data storage capacity the way utility companies sell electricity. Most folks who can connect their home to a reliable electrical grid would prefer to do so, versus generating the electricity themselves.

Do hurdles remain? Sure. One is performance. If your application is characterized by relatively complex transactions that must complete (from the user's perspective) in less than one second, can an in-the-cloud server infrastructure deliver the goods? What about quality of service? If you have service level agreements (SLAs) with your customers, can a cloud computing provider deliver the quality to you that will enable you to deliver the level of service quality to which you've committed? Then there's data protection. Storing e-mails in the cloud is one thing. How about data pertaining to your customer accounts or to information that you consider to be intellectual property? Can a cloud computing provider lock that down to the extent that you can with your own server infrastructure?

My feeling is that these challenges will be surmounted by cloud computing providers (and indeed, they already have been to the satisfaction of some organizations, at least in regard to particular applications that are already hosted in clouds), leading to accelerated use of cloud computing services. What does that mean to DB2 people? Well, to a lot of DB2 people it won't mean much, because a whole lot of large legacy applications built on DB2 will continue to be hosted by the organizations that developed and own them - newer applications, I believe, are more likely than legacy apps to be thought of as cloud candidates, at least for the next few years. As for those newer applications, it will be interesting to see what cloud computing providers offer, and what potential cloud consumers want. Perhaps some organizations will develop cloud-based apps using non-DBMS-specific data request interfaces (e.g., JDBC) and will let the cloud computing provider make the DBMS choice. In that case, I'm thinking that DB2 should be well positioned as a DBMS-in-the-cloud, given its core strengths with regard to reliability, availability, manageability, and scalability - all traits that should appeal to companies that aim to provide compute power along the lines of a utility (and don't forget DB2's best-of-breed data compression capabilities). To the extent that cloud computing providers choose DB2 (when the DBMS choice is theirs), it could be that a lot of DB2 DBAs and systems programmers end up working for the cloud outfits.

Other organizations might specifically request the use of DB2 in a cloud-based server infrastructure. In such cases, the cloud computing consuming organization might employ its DB2 people pretty much as it does now - it's just that these people would work with servers (probably virtual machines) that are physically located on the premises of another company (and that shouldn't be a big deal - I know lots of DB2 people who work with servers located hundreds of miles away from their work location).

In any case, DB2 folks shouldn't see cloud computing as a threat. Sure, it's a different paradigm, but cloud computing could very well end up being an environment in which DB2 (and the people who work with it) thrive. Change is opportunity, if you're ready for it.

Note: as pointed out by Leon Katsnelson in a recent entry on his FreeDB2 Web site, IBM decided to partner with Morph Labs to make a cloud-hosted DB2 system available to people interested in taking on "The XML Challenge."


Blogger AlainYap.MorphLabs said...

We, here at Morph Labs are also waiting feverishly for the results of the XML Challenge, Robert. Part of it is seeing how the Morph AppSpaces perform to the demands of the participants. You can say, we're just as anxious to how we can contribute towards 'cloud' development and making it a really viable option for ISV's and companies to use this year.

Best wishes for a fruitful new year to you!

Alain Yap

January 5, 2009 at 7:31 PM  
Blogger Robert Catterall said...

Thanks for the comments, Alain. You and your colleagues are riding a technology wave that looks to be a big one. I wish you well in your cloud-enabling efforts.

January 6, 2009 at 1:44 PM  

Post a Comment

Subscribe to Post Comments [Atom]

<< Home