The IT industry is very much about generating buzz. The buzz around Cloud Computing has reached deafening volume lately. There are many definitions of what Cloud Computing is but for an average Joe or Jane things are very simple. When they think of Cloud Computing they they most likely imagine using a web browser to access application hosted on the Web.
If you are the one who has to deliver this experience to the Joe and Jaine things get a bit more complicated. Maybe you are a CIO who is thinking that delivering IT infrastructure on-premises is getting to be expensive and you want to give Cloud Computing a try. Or, maybe you are a start-up who can do much better than spend the seed money on computers and storage. You have some choices in the Cloud and some decisions to make. Some may see the cloud as just the way to get out of buying the hardware and storage and just rent some hardware capacity instead. Let’s call this “utility computing”. Amazon EC2 and S3, Joyent and many others are great examples. Others may look to the Cloud to get data as a service or DaaS. Others look higher up in the value chain and see cloud as a platform that has everything they need to build their applications. Google App Engine and Force.com may very well be described as Platform as a Service (PaaS). Yet others want the whole stack including the application itself. SalesForce.com has been the poster child for Software as a Service (SaaS).
For a CIO faced with the escalating costs of delivering and maintaining IT infrastructure are daunting. Take a look at the table below. A low-end $2,500 server can cost as much as $15,000 to run. And that is in an optimal cost location in the U.S. it can easily cost twice as much to run the same server in high cost centers like New York or San Francisco.
Now, compare that to a 10 cent per compute hour that Amazon charges for EC2. Low price, however, is not the most attractive attribute of the Cloud. For most people, it is ability to get resources immediately and whenever they need them, and ability to pay only for what they actually use represents the most attractive. Our current economy has added another very important consideration. Getting on-premises IT infrastructure means “capital expenditure”.
In today’s uncertain environment there is a lot of pressure to cut capital outlays and use controllable expenses instead. That is exactly what Cloud Computing does for the CIO. It allows one to pay for computing resources as a recurring expense as opposed to going to the CEO, CFO and the board for an approval of large capital budget. You get a monthly bill from your cloud provider and you pay it. You no longer need or can’t afford the resources, stop using the service. And that is why I believe that the current economic crisis (yes, it is a crisis) is going to be a huge accelerator for all things “Cloud”.
I think application servers and databases are going to be the first beneficiaries. Right now, there is a lot of Cloud-inspired curiosity in the enterprise but the real adoption is with the start-ups. In the climate where VC funding has all but dried up, start-ups are turning to the Cloud as a quick way to get in to business with just “friends and family” funding. It costs next to nothing to host an application in the Cloud and you don’t really start paying until your customers show up and you need to scale capacity. So while larger enterprises may be cautious and are mulling over security, privacy, performance and other concerns, many start-ups have no choice but to embrace the Cloud. And what are the very first things that a start-up needs to get their application out there? Well, it is one or more application servers and a database of some kind.
And what about databases? Well, it turns out that running a database server in the Cloud is not at all different than running it on your own server. Let’s take Amazon EC2 for example. It offers a number of instance types i.e. a number of server sizes that you can rent from Amazon. The least expensive one is the “Small Instance” at 10 cents per compute hour plus network bandwidth expenses. Basically, you are getting an server with 1.7 GB of memory, 160GB disk drive and an equivalent of a single core Intel/AMD processor. So, what would you do if you wanted to run a database server if this machine was on premises? You would go and install an operating system on it and then your DBMS software. That is exactly what you would do in the Cloud. And just like in the real world your server may have already come with the OS pre-installed, you can find a pre-created instance in the cloud. In the world of Amazon Web Services (AWS) such a pre-configured machine called Amazon Machine Image or AMI. Many of the AMIs have more than just OS; they may be pre-configured with function-specific software such as Ruby on Rails environment or PHP server etc. Some may even have DBMS installed. This is a FreeDB2.com blog after all so you would expect that I would talk about DB2 in the Cloud. Well, DB2 is dead simple to deploy in any cloud and in the AWS in particular. One of our DB2 Express-C team members, Bradley Steinfeld, recorded a short screen cast that will take you from a complete neophyte to a cloud-happy DB2er in no time at all. I recommend you take a look at the screen cast even if you don’t have an immediate project. It really is really easy.
Find more videos like this on ChannelDB2
So, let’s say you watched the screen cast (I recommend you watch it on ChannelDB2.com if you want to download the scripts that you will need to create your AMI) and decided to go for it and claim your own little piece of DB2 real estate in the Cloud. How much will it cost? You will have to pay Amazon for the rental of their server and storage capacity. So, let’s say you brought your server up on a small instance and kept it running for 5 hours. Amazon will bill you $0.50 for the instance usage, plus some money for the data that you transferred in to your database (at $0.10/GB). And since databases are all about keeping data around, you will want to follow our advice and get some EBS (Elastic Block Store) to store your data. Trust me, you will want to use EBS as opposed to 160GB of instance storage that you get with your 10 cents/compute-hour small image. More on “why” in a future post. So, for roughly the price of a Starbucks latte, you can get your “virtual hardware”. Your OS can be free if you choose one of the free Linux distributions or you can pay $0.025/compute hour to run on Windows. And, DB2 Express-C is, as you would expect is completely free. If you want support and extra features and capacity, you can purchase DB2 Express-C 12-Month License and Subscription for about $2,995 per year; it is entirely optional.
Personally am completely sold that Cloud is the future. Utility computing just makes good economic sense. Most of us would not think of buying a generator to power our houses; we get our electricity from the grid. I don’t see why we should not be thinking about getting our computing capacity the same way. Today, there are some impediments to running larger scale databases in the Cloud but I have to believe that this is a problem that will get solved just like the electricity transmission issues were resolved at the beginning of the 20th century. On the small scale, DBMS can be deployed in the Cloud very easily today and, I think, this is a perfect time to create a test instance just to get a feel for what a future may look like. And this glimpse will cost you about the same as a cup of Starbucks.

Follow me on Twitter


This is certainly interesting, and worth looking into. But *bucks? C’MON. J/K.
Let me get this str8 though. You can “rent” the server up-time by the hour? I can really just rent 5 hours of up-time? There must be quite an infrastructure behind the service!
Where does one go (beyond amazon.com) to read more about this service, its options and offerings? I’d really like to know.
I was unable (my system seems a bit persnickity) to view the video, so if this is all covered in the video, pardon my redumdant question(s).
Mairhtin
Yes, you can indeed rent servers by the hour. That is the in my mind the best feature of the cloud, not just price. You only pay for what you use.
Cloud is still more of a curiosity in the enterprise because there is a great uneasiness of taking your data an putting it in some data center that you can’t even visit. However, one area where enterprises are piloting it is for development and test systems. Instead of going an buying gobs of servers to do a stress test you can just ramp up to the capacity that you need (say 20 servers) and when you are done with the test shut them down. You will only pay for the time that you used (e.g. a 5 hour test run) and for the data transfers. I bet it would take 3 months of approvals for the capital budget in most companies and another 6 months for the delivery and set-up of the servers. And, you typically need to do the budget in the previous year. On the cloud, all you can start your test run in a couple of hours after you decide that you need to do it. To me, this flexibility is priceless.
We are working to build some data warehouse applications in the cloud. There was oddly less resistance from security and risk folks with Amazon as a vendor for infrastructure than with the traditional ISP/Hosting folks because there are financial issues with many of the ISP/Hosting facilities that open other risk factors. But the cost model is a very postitive argument. It would be great to get the benchmarks from the cloud computing resources to understand what the real trade-off will be. One side note on things we noted off the bat was that you can’t use Oracle RAC in the cloud configuration which is a bit of a challenge since then you can’t take advantage of all the scalability. But I think they will resolve that with a bit of engineering.
Personally, I believe that data warehousing (more on the data mart side) and BI are a good fit for the cloud once you can overcome the trust issue. Scalability is one of the things that will be a challenge. Every public cloud out there is built for horizontal scalability i.e. you scale out by adding more really small inexpensive servers. For databases this is an issue. As you pointed out Oracle RAC for example is not available. In DB2 we have clustering technology specifically designed for warehousing we call Data Partitioning Feature. We are exploring its applicability to cloud deployments.
Sounds wonderful from an application standpoint, and after all, most new development is being done for the web anyway.
A glitch or two might be encountered on the database side when compliance issues come up. Sarbox and its spawn, e-discovery, PIPEDA — all become “cloudy” when you don’t have the data locked down somewhere on a server that you own and keep behind a locked door.
Perhaps some sort of reverse on-line backup could solve the first two, but I don’t see how even big firms like Amazon or Google can expose themselves to the liabilities possible with the last one.
Uhm DB2’s data partitioning isn’t rac nor clustering.
Think XPS shared nothing.
And if you’re going to go on about DB2’s free version don’t forget about Informix, or their free version on the IIUG website. (read the fine print on the t’s and c’s.)
As to putting a DW in the cloud, not really the smartest thing.
Cloud computing is reminiscent of Timenet and mainframe computing where companies couldn’t afford to have IT in house. Seems like everything old is now new.
Rick, compliance is the number one issue that comes up in any Cloud conversation. However, while many people fear that they would not be compliant, these fears are rarely justified. I am very familiar with PCI-DSS requirements for example. There is no place in the PCI-DSS spec where it says that all equipment must be dedicated or have to reside on site.
Cloud Computing is not much different than outsourcing from that point of view.
I know that this s not a compliance issues but from security point of view deploying in the Cloud is actually much more secure than most on-site deployments. Majority of security breaches are perpetrated not by evil hackers but by insiders. By moving systems off-site you greatly reduce the accessibility of critical data to rogue insiders. Anyway, I think this is too big of a subject for a comment. It s time for a new post.
Gumby, to your point of putting a DW in the cloud not being the smartest thing. The most useful data warehouse I’ve ever had an opportunity to use is Google Analytics and guess what, it is as everything else Google, cloud based.
I’d like to make a prediction, in a couple of years, much of analytical applications will be browser based, and, we will have no clue of where the actual warehouse servers are. In many cases they will not be located on customer premises.