Cloud Computing: The New Timesharing

Cloud Computing

Clouds reflected in a building facade.

In the late 1980′s, timeshared computing resources allowed enterprises to gain reliable, high-performing computing services without the overhead of in-house computing infrastructure. Cloud computing targets the same enterprises, however, without the lock-in or inherent “stickyness” that timeshared computing service providers created and benefitted from.

The commoditisation of cloud services has been able to go further than timeshared systems because of a number of factors: high-speed, reliable and pervasive network infrastructure, the open source movement, smarter ways of deploying applications on shared infrastructure, operating system, server and software virtualisation; and a more mature entprise consumer who understands more about the true cost of system ownership.

The argument to get into the cloud is compelling and some large players are betting the farm on it. Marc Benioff, CEO of Salesforce.com, in an interview on CNBC this morning, cites that “software is dead” and that “the cloud just makes good  business sense, let alone environmental sense”. His large customer base is proof that others feel the same way he does. Salesforce.com has over 77,000 customers, including the US federal government and even Cisco and Google.

So why is cloud computing possible today and why is it likely to be an unavoidable and seismic shift in the enterprise computing services market? There are six factors making the cloud a sensible step. First, it makes pretty good business sense because it is elastic: you only pay for what you consume so the enterprise avoids creating cost sinks. You can consume services when you need them and dispose of them when you don’t. Second, the services can be charged for like a utility such as electricity or water. You only pay for services you consume. Services may be acquired under contract too, but often the elasticity is more important than predictability of the cost (predictability of the cost is often not an issue as an upper limit is usually easily calculable). Third, cloud based services reside on a well connected set of servers so moving information to other parts of your cloud or to the Internet is a trivial affair. Fourth, services can be provisioned on-demand and typically without human intervention. Fifth, and perhaps the most compelling, costs to provide the hardware, software and internetworking can be leveraged across many customers creating significant economies of scale, especially at the computing, services and administrative layers. Sixth and finally, the savings to the environment are likely to be huge. Concentrating systems into large data centres and sharing resources reduce the overall quantity of computing resources, including electricity for power and cooling, needed around the world.

There are essentially three service models for cloud-based services: software-as-a-service (SaaS), platform-as-a-service (PaaS) and infrastructure-as-a-service (IaaS). The highest level is SaaS, this is Salesforce.com and Netsuite. It provides software, a hosted operating environment and shared infrastructure in order to deliver one or more software services. SaaS might be to acquire CRM or an ERP system services – more SaaS providers are appearing everyday including Google with their suite of office productivity tools labelled Google Apps. The next level of service provision down is Platform-as-a-service and can be likened to a suite of tools for developers to write applications on and the required hosting environment for those tools to run on. One could buy Ruby on Rails, LAMP or a Microsoft toolset from a PaaS provider. Finally, the most basic configuration of service is the Infrastructure-as-a-Service which is effectively network accessible hardware, operating system and network administration tools. What a customer of IaaS buys is computing power, storage and bandwidth/throughput. The computing power can even be arranged as a virtual data centre when clusters of servers are bought as an IaaS offering.

Apart from making good business sense for enterprises here in developed countries, there will be a raft of less developed countries that will stand to benefit significantly if their enterprises and governments can connect to cloud-based infrastructure, platform and software offerings. In some countries the engineers and experts that design, construct and maintain data centres simply don’t exist. It could be because of “brain drain” or years of civil war or an education system that is still developing – for whatever reason, without these critical human resources, the data centres cannot exist there. Consequently without cloud-based savings, enterprises there cannot attract the same cost savings that enterprises in the more developed countries will attract, making their products/services cost more and themselves as enterprises less globally competitive.

Other issues pertaining to the environment on-the-ground in less develped countries will further solidify the role of cloud-based service provision. In less developed countries, issues affecting the security of high-tech infrastructure may arise, for example in Papua New Guinea security problems are common among mobile operators and their cell phone base stations which are often vandalised. The provision of utility electricity may be unreliable due to poor energy infrastructure like the case of some Pacific island countries. In some cases, software is not available due to holes in national policy on intellectual rights protection or poor legal systems which prevent software authors from bringing their wares into the country, as was the case in Indonesia a decade ago. Finally, we have to remember that over 3 billion people live in BRIC countries and as these countries continue developing, their growing need for stable enterprise services will force them to turn to the clouds.

In my opinion, the clouds are rolling in are already overshadowing the desktop paradigm – this will continue as the Internet becomes ubiquitous.

Differentiating Between Google Products

There are a number of Google products that sound like they share the same name and as such confusion may arise between what’s what. So here is a brief of explanation of the most commonly confused Google offerings.

Google Apps: This is a set of online office productivity tools like email, chat, word processing, spreadsheets and presentation software. It runs great in Google’s browser (called Google Chrome), but is not to be confused with Google’s App Engine.

Google App Engine (GAE): This is a sandboxed hosted environment to run computer programs written in Python and Java. The sandbox disallows applications from accessing the server hardware directly and enables Google to marshall and proxy certain resource calls so that it can charge for utlisation of the infrastructure on which the application is hosted (CPU, disk, network bandwidth).

Google Web Toolkit (GWT): This is a Java-based API which allows you to create client-side AJAX-based software linked to server-side Java servlets using pure Java code. The server-side can be hosted as a Google App Engine, but need not be – it can be hosted on any web server running the Java Servlet API.

Google has done a good job of simplifying the software development and deployment process and using one or more of the development environments they provide makes it easy to write software and deploy it for the world to use. We are likely to see more offerings from Google in this product space as it moves into the operating system market and “dukes it out” with Microsoft in the years to come.

Google Goggles: An Android-based application, i.e. available on mobile phones only (at this time), which augments what the phone’s camera sees with Google search results. Effectively, you can use the phone’s camera to lookup information on Google’s search engine. For example, point the Android-phone to the Golden Gate Bridge and press search and Google Goggles will recognise what it is seeing through the camera and use that information to conduct a Google search – the result is information about the Golden Gate Bridge retrieved from Google’s search engine. Goggles will, in time, also enable visual language translation. Simply point the Android-phone’s camera to text written in say German and the Google Goggles will lookup the text, translate it and feed it back to you audibly or visually in English.