Cloud computing and software-as-a-service : the future of Software

Every time you search Google, you take advantage of cloud computing. Many of us use Gmail or other Google applications like Google docs and Google sites. These wonderful applications are a result of Google’s cloud computing infrastructure.

Before I write more about cloud computing, let me provide a perspective on what are web based applications and how they work:

Any program which is used over the internet through a web browser is termed as web application. Most commonly used web applications are Facebook, Google, Yahoo, Twitter etc. According to internet experts, in the next 10 years, 80% software will be used over the web.

A web application functions in a completely different way than your desktop software. With web application, information is processed and stored on the Web Server which runs the application.

When you send request to a Web Server it processes your request and returns appropriate result on your web browser. Therefore, your personal computer is free from the burden of storing and processing information, since all the action happens on the Web Server.

Despite the fact that using web application is fun and extremely productive, it also invites problems such as availability and reliability. With increase in the number of users, the number of requests a Web Server has to process also increases exponentially. If the number of request a server receives, increases than its capacity, it crashes. That’s when we see errors such as ‘Server down’ or ‘Server inaccessible’.

You must be wondering how all this is related to Cloud computing. So let me tell you the story of Google and how they solved similar problems faced by their web application (in this case their search engine).

In late 90’s when Google was gaining huge popularity world-wide, one of the biggest challenges they faced was scaling their Web Server to handle millions of requests. In order to ramp up their capacity, they vociferously installed hundreds and thousands of web servers at various locations across the globe. This capacity built up was done at an investment of millions of dollars. A similar problem was faced by other internet companies like Amazon.com and they did the same with their own infrastructure. With the capacity ramp up, they were able to handle large number of user requests very efficiently.

However, they faced another problem after doing this ramp up. They realized that the processing and storage capacity of these servers were not fully utilized all the time. They discovered that other than peak loads, most of their servers resources were utilized only up to 50%. A large pool of server resources was lying underutilized.

During this period, the concept of Virtualization had started gaining momentum. Virtual Servers are similar to a physical server in terms of performance and availability but the biggest difference is in the fact that a Virtual Server in itself does not posses processing or storage capability; but it utilizes the underlying hardware to store and process the information.

With the advancement in Virtualization technology, companies like Amazon and Google started thinking about their Server as a piece of software that provides necessary resources (like processing power, memory and storage) to run a web application. Instead of web application being directly installed on the physical hardware server, they inserted an intermediate piece of software on the physical servers which would provide processing, storage and memory to the web application. Gradually these companies realized that by using the Virtualization technology, they can combine the processing power of thousands of server into a big Virtual Server which can be used to distribute computing capabilities to a variety of web applications. This was the birth of Cloud computing. Cloud computing allows resources needed by a web application to be virtualized by using an intermediate software layer called Virtual Server.

Here is the web definition of cloud computing on Wikipedia:

“Cloud computing is Internet-based computing, whereby shared resources, software, and information are provided to computers and other devices on demand, as with the electricity grid.”

The use of Cloud computing provided immediate and long lasting benefits to these internet companies. They were able to scale up and scale down server resources much faster without worrying about the underlying hardware. A Virtual server normally uses resources of multiple underlying physical servers. So in case one particular physical hardware is down, the Virtual server can quickly switch over and use resources of other physical server. This allowed for 100% availability and almost zero down time.

With the growth of cloud computing, using software over the internet became more reliable, fast and secure. A lot of innovative companies started serving up web applications by using cloud based servers. Companies like Amazon.com now provide their own cloud computing infrastructure to individuals and business through their service offerings such as Amazon EC2, Amazon S3 and Amazon DB2. These services are very cheap and highly scalable, allowing even a small business to scale and grow their web application rapidly.

By using Cloud computing, many companies are now offering Software-as-a-service over the web. Salesforce.com is one such company which pioneered the use of serving software over the web. Salesforce.com’s flagship on-demand CRM (Customer Relationship Management) is now used by millions of people across the globe. Its annual revenues are to the tune of 1.27 billion US dollars in 2010. The growth of companies like Salesforice.com signifies the growing popularity of Software-as-a-service, which was the result of innovation in cloud computing.

Here is the web definition of Software-as-a-Service on Wikipedia:

Software as a service (SaaS, typically pronounced [sæs]), sometimes referred to as “software on demand,” is software that is deployed over the internet and/or is deployed to run behind a firewall on a local area network or personal computer. With SaaS, a provider licenses an application to customers either as a service on demand, through a subscription, in a “pay-as-you-go” model.

Google’s e-mail service and Google apps are a good example of Software-as-a-Service on cloud. Other popular services utilizing cloud computing is our own e-commerce platform http://www.39shops.com . We are using software-as-a-service and Rackspace cloud computing platform to power thousands of online stores.

Cloud computing and Software-as-a-Service, collectively represents the future of Software. Time is not far when our own desktops will be on the web and accessible from any computer connected to the internet. Possibilities are limitless…limited only by our imagination…

Advertisements