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.
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.