The underlying tenet of Cloud Computing is that capabilities are delivered as a service. As mentioned earlier, Cloud computing model is created so that customers pay only for usage; not for investment in hardware, software licenses, upgrades, maintenance fees, and man-power cost to run the service in-house. A major reason for this shift is the increasing commoditization of IT. Internet has become cheaper and available everywhere, cost of IT platforms have reduced substantially, hardware could be commoditized, storage has become cheaper (for the same price, one can buy bigger storage capability –thus justifying Moore’s Law), virtualization technologies have become common and affordable, increasing adoption of open source software, abstraction for the users, and lastly increased standardization of IT. Additionally there has been a constant pressure to cut IT costs (largely because in most organizations, IT is still a cost centre rather than a profit centre).
From an architectural standpoint, Cloud computing includes dynamic delivery of capabilities (or services) in the form of applications (Software as a Service), Platform services (Platform as a Service), and Infrastructure services (Infrastructure as a Service).
Figure – Cloud Computing Architecture Overview
Cloud service provides expose these services mostly through a web interface. All the consumers need to do is have a stable internet connect, and subscribe to these services. Basically they are leasing the services and return them when they no longer need them.
From a cloud service provider point of view, Cloud Computing provisioning is made capable through major architectural innovations. Multi-tenant architecture helped providers to use the same infrastructure to provide services to multiple consumers. Multi-tenancy is fundamental to both public and private clouds; it applies to all three layers of a cloud: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS). Multi-tenancy is the fundamental technology that providers use to share IT resources with multiple applications and tenants (businesses, organizations, etc.) This enables the providers to spread the CAPEX across multiple consumers, thus driving down the cost of cloud services. According to an article on Multi-tenancy in Computerworld, Salesforce.com, for example, supports 72,500 customers who are supported by 8 to 12 multi-tenant IaaS/PaaS instances in a 1:5000 ratio. In other words, each multi-tenant instance supports 5,000 tenants who share the same database schema.
The second architectural characteristic of cloud computing is the increasing portability and interoperability between in-house applications and cloud solutions. “Portability and interoperability relate to the ability to build systems from re-usable components that will work together “out of the box”, as per The Open Group. The most common kinds of cloud computing portability are data portability, application portability, and platform portability. Data portability enables re-use of data components across different applications. Application portability enables the re-use of application components across cloud PaaS services and traditional computing platforms. Platform portability enables re-use of platform components across cloud IaaS services and non-cloud infrastructure, and re-use of bundles containing applications and data with their supporting platforms. Interoperability provides the ability to have different application components deployed on one platform communicate with similar application components deployed on different platforms. For example, an application deployed in-house in a traditional IT setup may communicate with another component deployed in a hybrid cloud or one deployed on private cloud. This aspect of portability and interoperability is critical to cloud computing success.
The third major architectural innovation in Cloud computing is virtualization. In simple terms, virtualization is the capability that separates physical infrastructure to create multiple dedicated resources. “Virtualization software makes it possible to run multiple operating systems and multiple applications on the same server at the same time,” said Mike Adams, director of product marketing at VMware, a pioneer in virtualization and cloud software and services. “It enables businesses to reduce IT costs while increasing the efficiency, utilization and flexibility of their existing computer hardware.” The technology behind virtualization is known as a virtual machine monitor (VMM) or virtual manager, which separates compute environments from the actual physical infrastructure. Virtualization separates the physical infrastructure, and cloud computing builds on that separation. The key benefits of virtualization are it helps to maximize infrastructure resources, provides multi-tenancy capability, and better rationalization of IT costs. Virtualization provides the basic building blocks to enhance agility and flexibility. So much so that businesses and organizations who are thinking of moving to cloud are advised to fully implement and leverage the virtualization capability in their IT environment.
Figure – Virtualized Cloud Model
The fourth architectural aspect of Cloud computing is load-dependent scalable architecture. Note the unique selling proposition of Cloud is its ability to scale based on demand. By definition, scalability is the ability of computer solution (software or hardware) to continue to function well and efficiently irrespective of the load on its infrastructure. It should provide the same performance and Quality of Service (QoS). This is usually made possible by using several servers and distributing the load between them according to the demand. This is typically done by Load Balancers that do the necessary scaling. Load Balancers provide the aggregation of new servers to distribute the load among several servers. Similar to server scalability, there is also network scalability. Network scalability allows bandwidth-provisioned network pipes and other network resources to handle the sudden increase in network bandwidth.