Cloud Computing, Principles and Architecture

As Rountree and Castrillo explain, there has been a lot of debate about what the cloud is. Many people think of the cloud as a collection of technologies. It’s true that there is a set of common technologies that typically make up a cloud environment, but these technologies are not the essence of the cloud. The cloud is actually a service or group of services. This is partially the reason that the cloud has been so hard to define.

So, what is cloud computing?

Cloud Computing is a paradigm that allows on-demand network access to shared computer resources.  It is a way for managing, storing and processing data online via the Internet.

Some cloud computing characteristics include:

  • On-Demand Self-Services – A consumer can request and receive access to a service offering, without an administrator or some sort of support staff having to fulfill the request manually
  • Broad Network Access – Using Internet as your medium, it should be easily accessible
  • Resource Pooling – It is based on the fact that clients will not have a constant need for all the resources available to them
  • Rapid elasticity – Describes the ability of a cloud environment to easily grow
    to satisfy user demand
  • Measured Service – Cloud services must have the ability to measure usage

It is also important to mention that there are 4 Cloud Deployment Models:

  • Public – All the systems and resources that provide the service are housed at an external service provider
  • Private – The systems and resources that provide the service are located
    internal to the company or organization that uses them
  • Community – Community clouds are semi-public clouds that are shared between members of a select group of organizations.
  • Hybrid – A hybrid cloud model is a combination of two or more other cloud models

Cloud computing provides different services based on three delivery configurations. When they are arranged in a pyramid structure, they are in the order of SaaS, PaaS, and IaaS:

The Cloud Pyramid

  1. SaaS or Software-as-a-Service — This is the layer the end-users face and it provides the functionality these users demand: social media communication, collaboration on documents, catching a taxi or booking a room for a night. This layer offers a limited set of functionalities and literally no control over the computing resources. Nevertheless, the end users get what they came for — functionality.
  2. PaaS or Platform-as-a-Service — an underlying level of APIs and engines allowing the developers to run their apps. This is a layer where the AWS or Azure users leverage the platform functions (like the latest batch of tech AWS introduced during their re:Invent week 2017). This level of the cloud pyramid allows the developers configure the resources needed to run their apps within the limits set by the cloud platform. This level demands to have some understanding of the processes and structure of your cloud, at least to be able to tick the appropriate boxes in the dashboard of said cloud service provider (CSP).
  3. IaaS or Infrastructure-as-a-Service — the lowest level of the cloud services, where the DevOps engineers work with the tools like Terraform, Docker, and Kubernetes to provision the servers and configure the infrastructures, processes, and environments, enabling the developers to deploy their software, APIs, and services. This layer might work with the hardware provided by cloud service providers like AWS or GCP or with on-prem bare metal Kubernetes clusters running in private or hybrid clouds. This level provides the most capabilities (like load balancing, backups, versioning and restoration of an immutable infrastructure) yet requires the most skills to be operated correctly.

As the Ecourse suggests, here are some companies that offer Cloud Computing services:

iCloud – Cloud from Apple is for Apple products. You can backup and store everything from multimedia to documents online. The content is then smoothly integrated onto your devices.

Amazon’s AWS – When you talk about companies using cloud computing, Amazon Web Services leads the pack. It offers IaaS and PaaS to all their customers.

Google Cloud – This cloud platform is universal for Google’s enormous ecosystem and for other products such as Microsoft Office. It provides storage of data and collaboration along with other services that are included in their cloud computing suite.

Microsoft Azure – Offered by Microsoft, it provides SaaS, PaaS, and IaaS for its software and developer tools. If you have used Office 365, then you have used SaaS.

IBM Smart Cloud – This offers private, public, and hybrid distribution platforms providing a full range of SaaS, PaaS, and IaaS cloud computing services for businesses. The pay as you go platform generates profits for IBM.

Now that we have a better idea of the Cloud, let’s take a look at the architecture and see  how the modules and layers/levels are designed for combination.

According to Organization for the Advancement of Structured Information Standards (OASIS),
the cloud computing reference model is an abstract model that characterizes and standardizes the functions of a cloud computing environment by partitioning it into abstraction layers and cross-layer functions. This reference model groups the cloud computing functions and activities into five logical layers and three cross-layer functions.

Cloud Computing Layers:

Physical Layer 

  • Foundation layer of the cloud infrastructure.
  • Specifies entities that operate at this layer : Compute systems, network devices and storage devices. Operating environment, protocol, tools and processes.
  •  Functions of physical layer : Executes requests generated by the virtualization and control layer.

Virtual Layer

  • Deployed on the physical layer.
  • Specifies entities that operate at this layer : Virtualization software, resource pools, virtual resources.
  • Functions of virtual layer : Abstracts physical resources and makes them appear as virtual resources (enables multitenant environment). Executes the requests generated by control layer.

Control Layer

  • Deployed either on virtual layer or on physical layer
  • Specifies entities that operate at this layer : control software
  • Functions of control layer : Enables resource configuration, resource pool configuration and resource provisioning. Executes requests generated by service layer. Exposes resources to and supports the service layer. Collaborates with the virtualization software and enables resource pooling and creating virtual resources, dynamic allocation and optimizing utilization of resources.

Service Orchestration Layer

  • Specifies the entities that operate at this layer : Orchestration software.
  • Functions of orchestration layer : Provides workflows for executing automated tasks. Interacts with various entities to invoke provisioning tasks.

Service Layer

  • Consumers interact and consume cloud resources via thos layer.
  • Specifies the entities that operate at this layer : Service catalog and self-service portal.
  • Functions of service layer : Store information about cloud services in service catalog and presents them to the consumers. Enables consumers to access and manage cloud services via a self-service portal.

Let’s take a look at the cross-layer functions:

Business continuity

  • Specifies adoption of proactive and reactive measures to mitigate the impact of downtime.
  • Enables ensuring the availability of services in line with SLA.
  • Supports all the layers to provide uninterrupted services.

Security

  • Specifies the adoption of : Administrative mechanisms (security and personnel policies, standard procedures to direct safe execution of operations) and technical mechanisms (firewall, intrusion detection and prevention systems, antivirus).
  • Deploys security mechanisms to meet GRC requirements.
  • Supports all the layers to provide secure services.

Service Management

Specifies adoption of activities related to service portfolio management and service operation management.

Sevice Portfolio Management:

• Define the service roadmap, service features, and service levels

• Assess and prioritize where investments across the service portfolio are most needed

• Establish budgeting and pricing

• Deal with consumers in supporting activities such as taking orders, processing bills, and collecting payments

                                                                                                                               

References:

Vladimir Fedak. The Medium, What is the Cloud Computing Pyramid: The layers of DevOps Services – https://medium.com/@FedakV/what-is-the-cloud-pyramid-the-layers-of-devops-services-730ac137e8b8

Derrick Roundtree and Ileana Castrillo. The Basics of Cloud Computing: Understanding the Fundamentals of Cloud Computing in Theory and Practice. Amsterdam; Boston: Syngress / Elsevier, 2014.

Cloud Computing Services Models – IaaS PaaS SaaS Explained (EcoCourse)

Nayan B. Ruparelia, Cloud Computing (Cambridge, MA: MIT Press, 2016)

https://cloudman.fr/2017/10/31/the-cloud-computing-reference-model/