The ubiquitous 24x7 availability of high-speed internet has made the prophecy “network is the computer” a reality, and this phenomenon is being increasingly referred to as “Cloud Computing”. Cloud Computing can be loosely defined as the concept of leveraging the Internet to access computing, storage and software resources as services that are generally shared and are dynamically scalable. The term cloud is used as a metaphor for the Internet and is an abstraction for the complex infrastructure it conceals behind the offered services.

The traditional IT model involves on premise installation of expensive hardware and software resources within an organization, which has several disadvantages including:

  • Heavy upfront investment in hardware infrastructure and software licenses
  • Long and expensive planning and implementation cycles
  • Scaling issues as the organization grows
  • Complexities in implementing patches and new releases for the various software resources
  • Obsolescence of hardware and software infrastructure

Cloud computing has opened new ways of addressing the above issues, including reducing the total cost of ownership (TCO), by not owning the IT infrastructure and software but renting it on the cloud as services. The resources in the cloud are most often rented to and shared amongst several organizations and hence cloud computing is typically based on the multi-tenancy model. The organizations pay for the services on subscription or pay-as-you-go basis.

With reliable cloud computing providers, the platform and the infrastructure exposed as services are, in most of the cases, highly reliable, scalable and secure. When you subscribe to an application in the cloud you do not have to go through a long and expensive implementation cycle, instead the application can be configured in a much shorter duration by consultants who may not even be present on your site. The best part is that you do not need to be worried about the patches and upgrades; they get automatically available to all the end users as and when the service provider releases them. This model also allows the capacity to increase dynamically on the fly, without customers investing in the new infrastructure.

Classification of Services on the Cloud

The concept of services on the cloud is relatively a new phenomenon but already a wide variety of services have become available and the adoption of these services is progressing at a rapid pace. The current services on the cloud have been classified primarily into the following groups- Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as s Service (SaaS).

Infrastructure as a Service (IaaS)
Infrastructure as a Service, as the name suggests, offers computing infrastructure as a service to an organization. This is often referred to as platform virtualization, or the virtual machines, which differs from traditional hosted environment in terms of scalability and pay per use pricing. In a traditional hosted environment you pay for a dedicated physical machine, and as you scale you keep hiring more physical machines. In case of IaaS you are allotted virtual machines, through platform virtualization, and you can scale up and down dynamically based on your requirements.

Amazon Elastic Compute Cloud (Amazon EC2) is the best example in this category. EC2 (http://aws.amazon.com/ec2/) is a web service that provides resizable compute capacity in the cloud.

Amazon EC2’s simple web service interface allows you to obtain and configure computing capacity with minimal effort. It provides you with complete control of your computing resources. It reduces the time required to obtain and boot a new server instance to minutes, allowing you to quickly scale capacity, both up and down, as your computing requirements change. Amazon EC2 changes the economics of computing by allowing you to pay only for capacity that you actually use.

In addition to compute resources there are some infrastructure clouds that simply offer data storage as service, which is referred to as cloud storage. The data model offered by these services may be different, and the billing model is generally pay per GB per month. The best known examples of storage services are Google BigTable, Amazon SimpleDB and Amazon Simple Storage Service (Amazon S3).

Platform as a Service (PaaS)
Platform as a Service is a comprehensive application development environment available as a service over the Internet that lets you develop, test, deploy, host and maintain applications. It is a level above IaaS.

PaaS offers several advantages to Independent Software Vendors (ISVs) and their customers. The ISVs need not invest in expensive hardware and software resources for development, and instead can use the services offered by PaaS. Distributed collaborative development with team members spread across continents becomes much easier. The biggest advantage of PaaS is that it takes care of thorny issues like performance, scaling, reliability, robustness, security and multi tenancy; letting you focus on the business functionality. This cuts down tremendously on the application development time and automatically takes care of aspects that generally lead to application failure.

Some of the common examples of PaaS are Force.com, Google App Engine, and Microsoft Azure.

Software as a Service (SaaS)
Software as a Service refers to business applications that are offered as services over the Internet to the end users. SaaS so far is the most visible form of cloud computing. The organizations opting for SaaS again don’t have to invest in IT infrastructure and simply need client machines with browsers through which they can access the applications that are available in the cloud. The customers neither have to go through long expensive implementation cycles, nor they have to deal with complexities associated with deploying the patches and new releases.

Salesforce was the first and most successful example of SaaS, which offered CRM application as a service. Google Apps has also fast emerged another very successful example of SaaS and it offers a wide spectrum of collaboration and messaging applications including mail, calendaring, document sharing, word processing, spreadsheets, presentation tools and intranet sites. Zoho is another cloud that is offering several common applications as service.

Other than the applications that are used by end users, there are applications in the cloud that can be used by other applications, i.e. interoperable machine to machine operations over the network. Examples include payment services like Google checkout, Paypal, etc, Mapping services like Yahoo maps, Google maps, etc, Identity services like OAuth, OpenID.

Our Cloud Experience

Metacube has identified cloud computing as its central focus for growth in the coming years; and we are fully committed to help organizations adopt solutions over the cloud, as well as to develop new business applications on the cloud.

Even before the industry at large took notice of this momentum building around cloud computing Metacube has been engaged in helping its customers develop applications based on multi tenancy model that are being offered as service over the Internet. It was in early 2007 that we started working as a development partner on the Salesforce platform for a highly innovative, dynamic and fast growing company in the cloud computing space. We have not only been helping them in implementing custom Salesforce solutions for a large number of customers, but have also been working with them on building some very exciting products that span across the Salesforce, Google and Amazon clouds.

We are currently reengineering a fairly complex proprietary product of one of our ISV customers from .Net onto the Force.com platform. It is expected that this will turn out to be one of the most extensive ISV product to be migrated to the Force.com platform till date.

We have also leveraged Google App Engine, Google APIs, Amazon Simple Storage Server and Amazon EC2 for developing tools that help in provisioning users on Google Domain, migrate mails to GMail, provide backup for Google docs etc.

We are also developing tools that will make it convenient for the K-12 schools to adopt Google as the one stop collaboration, knowledge sharing and messaging solution. Our tools will glue the solutions offered by Google, and present them in a form familiar to various actors in a school milieu. For instance we intend to bring in familiar artifacts like Assignments, Notice Boards, Teacher Remarks, Parent Remarks, Class Timetable etc.