State of the Cloud

Cloud Attributes

There is much talk about private cloud, public cloud, hybrid cloud and any other variation that people can think of. To my mind this just adds confusion. Anything but a public cloud is really a way of relabelling existing services such as virtualization. This doesn't help bring clarity to the matter at all. So what does makes a cloud (or public cloud if you will)?
  • Utility pricing
  • Instantly scalable
  • (Almost) infinitely scalable
  • Accessible from anywhere, anytime
If you look at those attributes you will see that these can bring real flexibility to an organisation. Services provided in this manner will allow the IT systems to adapt to a business rapidly changing. Let's examine these attributes individually.

Utility pricing

Put quite simply, if you double your usage then your bill will double, if you cut your usage in half, you bill will be cut in half. This enables your organisation to trial things without a massive commitment upfront and therefore bring innovation through without financial risk. It also means that there is predictable costs if you grow, and if your business has to make adjustments in certain areas your costs will also drop.

Instantly and infinitely scalable

A cloud needs to allow you to grow very rapidly. What happens if your product or service you launched takes your hits from 100 a day to 1 million (or more!) per day. Can you add capacity very quickly? Most traditional hosting providers or in-house IT departments can't grow like this. You should also be able to reduce the capacity just as quickly if you are catering for a special event and you don't need ongoing capacity.

Accessible from anywhere, anytime

Cloud resources should be delivered over the Internet so that they can be accessed from wherever you or your customers do business. Ideally this should be from any device as well, but this has yet to be delivered by many cloud vendors.

Current Cloud Offerings

This section gives a broad overview of where vendors are at with the cloud and discusses Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS) and outline where vendors sit.

Amazon was one of the early pioneers of the cloud and Jeff Bezos has been quoted as saying that they are a technology company that also happens to sell goods. Amazon sell a range of storage offerings in the cloud and a range of servers in the cloud with different variations on this. Virtual machines such as Linux and Windows can be started up and a price is paid per hour, which is known as EC2. These can be used for long term virtual machines or where compute resource is needed for intensive tasks as hundreds or thousands of machines can be started up in minutes. It should be noted that EC2 by default doesn't have persistent storage (i.e. your changes are lost when you terminate the machine) so something such as Amazon EBS should be used to store data if needed. EBS is similar to a SAN in some ways. Amazon also have S3 storage which is replicated and highly available, but is not designed to be used to store things such as traditional databases.

Amazon has virtual machines and the storage such as EBS in multiple data centres around the world (Availability Zones in Amazon speak) but it is up to you to generally look at how you configure it to spread across these - Amazon can be considered a Lego set where you choose what you want to build. However this is all starting to change quite rapidly and they are moving into the PaaS space as well. They started with their MySQL database offering - RDS - being able to do geographic replication, although this is just on a one virtual machine basis. They have now also added Elastic Beanstalk and Simple Email Services. Elastic Beanstalk is designed to run Java code (more languages coming) and you can choose to let it autoscale/adjust as required to cope with load, or tinker as much as you like. The biggest thing you'd need to watch is the data/filesystem tier as these will not instantly scale. At Symbian Foundation we had one of our programmers (Mike Heald) write a loosely synchronised filesystem to help with this scaling.

Google has a range of offerings. They are probably most well known for Google Apps which combines both email, office suite and other productivity tools (e.g. calendar, intranet). The email is their Gmail which is well known and can connect to any email suite or be used from the web. The office suite (Google Docs) is aimed to be a competitor for Microsoft Office in the medium term and is totally web based. At present this is not 100% Microsoft compatible but is rapidly improving. A big advantage of Google Docs is that it is fully searchable (no surprise there!) and that multiple collaborators can work on any document simultaneously.

Google App Engine offers an environment that allows Java and Python code to be run on infrastructure provided by Google. It abstracts away individual machines and provides a scalable platform for your application. The application does need to be written specifically for the Google App Engine though.

Microsoft's cloud service that allows hosting of servers and software is called Azure. The primary focus of this is to allow .NET programs to run on a utility cloud, but this can also be used to host Windows Server. .NET programs do need to be altered slightly to run on Azure, but Azure is one of the more forward thinking IaaS/PaaS providers as it is designed to help your application scale, where generally Amazon is more virtual machine centric. There's a good article here from ZDNet which summarises where Azure is at. Go to page 2 to see some nice diagrams.

One of their latest moves is to allow individual server apps to run on Azure as discussed on my blog here.

Microsoft also have cloud offerings such as BPOS which is hosted Exchange and Sharepoint, and Microsoft Dynamics CRM online. As part of Office 2010 there is a web access to office documents and this can be used at http://office.live.com. This show Office documents very well and allows simultaneous editing for Excel and OneNote but not Word and PowerPoint. Microsoft have stated that they intend to offer versions of most of their products and servers on the web.

Microsoft have also recognised that small businesses don't want to have to run their own servers and have announced a version of Small Business Server that does Exchange and Sharepoint in the cloud. For slightly larger businesses they have announced InTune which allows management of PCs from a cloud based server (NB This is only for Windows 7).

Rackspace is rapidly becoming a thought leader in cloud and have very quickly rolled out cloud computing offerings, including file storage in the cloud such as JungleDisk that does full drive mapping across Windows, Mac OS X and Linux. They were also behind the launch of OpenStack.org which is building open source behind the cloud and is supported by organisations such as Nasa and Citrix.

There are numerous SaaS websites available. One of the pioneers in this area was Salesforce with Salesforce.com and there are many, many offerings now including big names such as SAP with Business by Design. The big advantage of SaaS is that the chore and costs of installing, running and maintaining an application are done by someone else.

Most of the cloud vendors provide ways to link back into your infrastructure via VPNs or web interfaces so you can start deploying piece by piece, rather than having to change your whole infrastructure.

NB There are plenty of other cloud vendors and this is serving as a general introduction rather than a comprehensive view and it should be noted that it is a rapidly changing field also.

Copyright (c) 2010-11 Ian McDonald

Sign in  |  Recent Site Activity  |  Terms  |  Report Abuse  |  Print page  |  Powered by Google Sites