Principles of Cloud Computing
Studying the principles of cloud computing will help you understand the adoption and use of cloud computing. These principles reveal opportunities for cloud customers to move their computing to the cloud and for the cloud vendor to deploy a successful cloud environment.
The National Institute of Standards and Technology (NIST) said cloud computing provides worldwide and on-demand access to computing resources that can be configured based on customer demand. NSIT has also introduced the 5-4-3 Principle of Cloud Computing which includes five distinctive features of cloud computing, four deployment models, and three service models.
Five Essential Characteristics Features
The essential characteristics of cloud computing define the important features for successful cloud computing. If any feature is missing from the defining feature, fortunately, it is not cloud computing. Let us now discuss what these essential features are:
1. On-demand Service
Customers can self-provision computing resources like server time, storage, network, applications as per their demands without human intervention, i.e., cloud service provider.
2. Broad Network Access
Computing resources are available over the network and can be accessed using heterogeneous client platforms like mobiles, laptops, desktops, PDAs, etc.
3. Resource Pooling
Computing resources such as storage, processing, network, etc., are pooled to serve multiple clients. For this, cloud computing adopts a multitenant model where the computing resources of service providers are dynamically assigned to the customer on their demand.
The customer is not even aware of the physical location of these resources. However, at a higher level of abstraction, the location of resources can be specified.
4. Sharp elasticity
Computing resources for a cloud customer often appear limitless because cloud resources can be rapidly and elastically provisioned. The resource can be released at an increasingly large scale to meet customer demand.
Computing resources can be purchased at any time and in any quantity depending on the customers' demand.
5. Measured Service
Monitoring and control of computing resources used by clients can be done by implementing meters at some level of abstraction depending on the type of Service.
The resources used can be reported with metering capability, thereby providing transparency between the provider and the customer.
Cloud Deployment Model
As the name suggests, the cloud deployment model refers to how computing resources are acquired on location and provided to the customers. Cloud computing deployments can be classified into four different forms as below:
1. Private Cloud
A cloud environment deployed for the exclusive use of a single organization is a private cloud. An organization can have multiple cloud users belonging to different business units of the same organization.
Private cloud infrastructure can be either on or off, depending on the organization. The organization may unilaterally own and manage the private cloud. It may assign this responsibility to a third party, i.e., cloud providers, or a combination of both.
2. Public Cloud
The cloud infrastructure deployed for the use of the general public is the public cloud. This public cloud model is deployed by cloud vendors, Govt. organizations, or both.
The public cloud is typically deployed at the cloud vendor's premises.
3. Community Cloud
A cloud infrastructure shared by multiple organizations that form a community and share common interests is a community cloud. Community Cloud is owned, managed, and operated by organizations or cloud vendors, i.e., third parties.
Communications may take place on the premises of cloud community organizations or the cloud provider's premises.
4. Hybrid Cloud
Cloud infrastructure includes two or more distinct cloud models such as private, public, and community, so that cloud infrastructure is a hybrid cloud.
While these distinct cloud structures remain unique entities, they can be bound together by specialized technology enabling data and application portability.
Services Offering Models
Cloud computing offers three kinds of services to its end users, which we will be discussing in this section
Software as a Service (SaaS), here cloud service provider offers its customer to use applications running on cloud infrastructure over the Internet on a subscription basis. Service providers provide servers, storage, networks, virtualization, operating systems, running environments, and software with this capability.
Users can access cloud applications on or off-premises. The customer can extend or extend the offered services based on their demands. The customer need not worry about the maintenance and updates as it is the service provider's responsibility.
The most popular examples of SaaS are Google Dropbox, Microsoft OneDrive, and Slack.
Platform as a Service (PaaS), where cloud service providers provide their consumers with the infrastructure a runtime environment that leverages web-based development and deployment of software or applications.
The PaaS customer is not required to manage or control the cloud infrastructure, although they have full control over the deployed software. The most popular PaaS services are Google App Engine, Windows Azure, and Heroku.
Infrastructure as a Service (IaaS), here cloud service provider provides server, storage, network services to its end users through virtualization. The consumer can access these virtualized computing resources over the Internet.
The IaaS customer is not required to manage or control the cloud infrastructure, although the customer has control over the run time environment, middleware, operating system, and deployed applications. The most popular IaaS services are Google Compute Engine, Rackspace, and Amazon Web Services (AWS).
Principles to Scale Up Cloud Computing
This section will discuss the principles that leverage the Internet to scale up cloud computing services.
Cloud resources are always unlimited for customers, but each cloud has a limited capacity. If customer demand continues to grow, the cloud will have to exceed its potential, for which the form federation of service providers enables collaboration and resource sharing.
A federated cloud must allow virtual applications to be deployed on federated sites. Virtual applications should not be location-dependent and should be able to migrate easily between sites.
Union members should be independent, making it easier for competing service providers to form unions.
Cloud computing services should provide end-users complete freedom that allows the user to use cloud services without depending on a specific cloud provider.
Even the cloud provider should be able to manage and control the computing service without sharing internal details with customers or partners.
We are all aware that a cloud service provider provides its computing resources to multiple end-users. The end-user must be assured before moving his computing cloud that his data or information will be isolated in the cloud and cannot be accessed by other members sharing the cloud.
Cloud computing resources should be elastic, which means that the user should be free to attach and release computing resources on their demand.
5. Business Orientation
Companies must ensure the quality of service providers offer before moving mission-critical applications to the cloud. The cloud service provider should develop a mechanism to understand the exact business requirement of the customer and customize the service parameters as per the customer's requirement.
Trust is the most important factor that drives any customer to move their computing to the cloud. For the cloud to be successful, trust must be maintained to create a federation between the cloud customer, the cloud vendor, and the various cloud providers.
So, these are the principles of cloud computing that take advantage of the Internet to enhance cloud computing. A cloud provider considers these principles before deploying cloud services to end-users.