This article explains the below
- Overview of cloud computing
- Cloud characteristics
- Cloud service models
- Deployment models
Overview of Cloud computing
Technology has evolved so much in the past decade. The computing power of servers is increasing, there are new applications evolving, need for larger storage capacity has increased and security mechanisms are becoming important so the IT is going through a transformation journey. Similar to the IT transformation, we have witnessed companies and enterprises growing exponentially using digital technologies. We can see companies expanding their geographical presence, increase in the customer base and consequently load on the IT systems increases. With this revolutionary shift in IT, managing the IT infrastructure and data centres as a whole became tedious, and this challenge gave rise to the technology called cloud computing.
Cloud computing is a technology where the computing is happening at the data centre over internet leveraging a pool of resources built on virtual infrastructure and usage is per the need/demand and pay as you use model. Like utility say electricity or mobile/telephone we don’t have to worry about from where and how the electricity is generated, but we pay as per what we use. The same concept is the key of cloud computing, where the companies don’t have to worry about the IT management and it’s taken care by the cloud service provider. This has helped companies focus on growth of their core business rather than worry about IT components.
In the legacy data centre as shown in figure 1, each application is deployed in silos with dedicated storage resources, dedicated server resources and dedicated network resources, in other words the compute resources are dedicated for a specific work group.
Figure 1 – Legacy Data Centre
With technology evolving, the data centre architecture has gone through virtualization and consolidation across each layer. Virtualization and consolidation at network layer has eliminated the need for dedicated switches as and when new applications are added and provided dynamic assignment of network resources using protocols such as Dynamic Host configuration protocol (DHCP) and clients could access the any applications via switched LAN. Similarly with virtualization and consolidation of storage layer, the storage is dynamically assigned to applications as and when required. The Virtual storage area network (VSAN) introduced storage arrays on common infrastructure. Similarly the compute layer consolidation and virtualization connected server resources using clustering technology and server resources were dynamically assigned using cluster area network (CAN)
Figure 2 – Traditional Virtualized Data Centre
Whenever a new application like ERP /CRM or any application gets added to the system, there is a need to purchase the servers, storage, networking devices etc required for the application to run. All the components related to that application are tied to each other. As the systems keep getting upgraded and as the user base increases the infrastructure capacity has to be increased and when there no load on the system, the computing resources are idle. The inefficiencies led to evolving the loud computing. The cloud computing architecture consists of horizontal layers of shared pool of resources. All the computing infrastructure like servers, storage, networking devices etc are bundled together in the bottom most layer. Similarly all applications and software are bundled together and another layer the development software, operating system and other platforms are bundled together.
Figure 3 – Evolved Cloud
In other words, in the cloud computing all the IT components that make the datacentre have been virtually separated out – Infrastructure, Platforms and Software. Businesses can use the resources as per their demand and pay as per usage. Maintaining, upgrading and end to end management of resources is the responsibility of cloud service provider. Users select the service provider and pay for the resources you use and based on how much you actually use.
Every IT resources access virtually over internet does not mean being accessed over cloud. NIST has come up with five major attributes of cloud computing. According to the official NIST (National Institute of Standards and Technology’s) definition, “cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”
Figure 4 – NIST Visual Model of Cloud Computing
Characteristics of cloud computing
The five fundamental characteristics of cloud computing according to NIST are
- On Demand Self-service – A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider
- Broad Network Access – Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, tablets, laptops, and workstations).
- Resource Pooling – The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacentre). Examples of resources include storage, processing, memory, and network bandwidth.
- Rapid Elasticity or expansion – capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.
- Measured Service – Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.
NIST also lists three “service models” (software, platform and infrastructure), and four “deployment models” (private, community, public and hybrid) that together categorize ways to deliver cloud services.
Cloud Service Models
- Infrastructure as a Service (IaaS) – Provides virtualized computing resources like servers, storage, network, over the internet. It can be virtual servers, virtual storage, virtual memory etc. The customers will deploy their own software on the infrastructure. In this model components (Data centre, networking, storage, servers, and virtualization) is responsibility of service provider and (operating systems, databases, security, applications) is responsibility of client themselves.
- Software as a Service (SaaS) – third party software are available as shared resources over the internet like Gmail. In this case all the components (Data centre, networking, storage, servers, virtualization, operating systems, databases, security, and applications) is responsibility of service provider.
- Platform as a Service (PaaS) – Platform software and hardware is offered as a service that is required for application development to users over the internet like API’s, middleware, operating system, and database. The platforms are used to design, develop, build, and test applications. In this model components (Data centre, networking, storage, servers, virtualization, operating systems, databases, and security) is responsibility of service provider and only applications is responsibility of client themselves.
There is other model called “Anything as a service model”- specific components which are not as part of any of the above models are part of this like database as a service, desktop as a service, project management as a service etc.
|Service Model||Primary Users||Description||Examples|
|IaaS||System Administrators||Infrastructure like servers, storage etc is oferred as a service||Amazon Web Services (AWS) EC2, Cisco Metapod, Microsoft Azure, Google Compute Engine (GCE), Rackspace, Joyent, Go Grid|
|PaaS||Developers||Platforms like database, Application servers, web servers, operating system etc are offerred as a service||AWS Elastic Beanstalk, Microsoft Azure , Force.com, Google App Engine, Heroku, Apache Stratos|
|SaaS||end users /Customers||Software like email are offerred as a service||Gmail, Google Apps, Salesforce, Workday, Concur, Citrix GoToMeeting, Cisco WebEx, Netsuite, Acrobat.com|
Cloud Deployment Models
The deployment of services is fast and at the lower cost and the components of data centre are accessed using a thin client. There are four deployment models
- Public Cloud – It is accessible to public over the internet and have unlimited resources. It’s like utility and deliver pay as you go model. The same hardware, storage and network devices are shared by other tenants in the cloud, hence also called Multi-tenant environment. Mostly used where security and compliance is not an issue. Public clouds are owned and managed by service providers. They provide economics of scale as infrastructure cost is spread across multiple users and they scale as per demand.
- Private Cloud – It is for a single organization and accessible over the intranet. It is single tenant and owned by the organization, where hardware, software and other resources are dedicated to single organisation. A virtual private cloud hosting can be multi-tenant is achieved by network isolation. This model ensures high level of security and compliance as the hardware, software, networking and other resources are dedicated to single company. On-premise private clouds, also called internal clouds are hosted within “own data centre”. Externally hosted Private Cloud is hosted externally with a cloud service provider who manages the cloud environment with full guarantee of privacy.
- Community Cloud – provided for a community of likeminded users or organisations with shared interests and is managed by one or more organizations.
- Hybrid Cloud – This is a combination of two or more of the above mentioned deployment models (Public, private, community, Virtual private cloud). Customers who want high scalability of public cloud and high security of private cloud will go for Hybrid cloud.