Cloud Computing - Overview

Cloud Computing - Overview

ยท

11 min read

Overview

Cloud Computing or the cloud is the delivery of on-demand computing resources. Everything from applications to data centers, over the internet on a pay-for-use basis. Simply put it's a model for enabling convenient, on-demand network access to a shared pool of configurable PC resources like -

  • Networks

  • Servers

  • Storage

  • Applications

  • Services

History and Evolution of Cloud

1950s

1.webp

Large-scale mainframes with high-volume processing powers were used. The practice of time-sharing, and resource pooling. Multiple users were able to access the same data storage layer and CPU power.

1970s VM's were introduced. Mainframes started having multiple virtual systems or virtual machines on a single physical node. Each VM hosted a guest OS that behaved as though it had its own memory, CPU, and hard drive, even though these were shared resources.

Virtualization came to use

A huge catalyst for computing was shared hosting environments, virtual private servers, and virtual dedicated servers, which were enabled by *HyperVisors *. A hypervisor is a small software layer that enables multiple OS to run alongside each other, sharing the same physical computing resources. If one computer breaks other keeps working,

As these began improving, some companies began to make this public to users who have a physical abundance of physical servers to create their own infrastructures and hence Cloud Computing was born and users started paying-as-they-go or as-per-usage.

Essential Characteristics of Cloud

diagram-cloud-computing-characteristics.png

  1. **On-Demand Self Service ** You get access to cloud resources such as processing power, storage, and network you need, using a simple interface without human contact.

  2. Broad-Network Access Cloud Computing resources can be accessed via the network through standard mechanisms and platforms such as mobile phones, laptops, and workstations.

  3. Resource Pooling Gives cloud providers economic scales, which they pass on to customers making the cloud efficient for them to use. Resources are dynamically assigned based on their demands.

  4. Rapid Elasticity and Expansion You can access more resources when needed and scale back where you don't.

  5. Measured Service Pay only for what you use. The resource utilization is tracked for each application and occupant, it will provide both the user and the resource provider with an account of what has been used. This is done for various reasons like monitoring billing and effective use of resources.

Adoption History

As companies started seeing the growth of the cloud, they also began to implement them in theirs. Cloud method had switched business from Capital Expenditure(CapEx) to Operational Expenditure(OpEx), As CapEx had a high upfront cost whereas in OpEx you pay as you go, scale your workload during peak usage, and scale down when usage subsides.

Some Cloud service providers are AWS, MS Azure, SAP, IBM Cloud, Salesforce, etc.

Cloud Service Models

Cloud-service-models-diagram.png

There are typically 3 types of service models in the Cloud.

IaaS(Infrastructure as service)

  • It is a form of cloud computing that delivers fundamental: computer, network, and storage to consumers' "On-Demand", over the internet on pay-as-you-go basic.

  • The cloud provider traditionally hosts the infrastructure in an on-premise data center and virtualization on the hypervisor layer.

  • VMs are created according to the zones of customers via providers.

  • Providers provide the ability to track and monitor the performance and usage of their cloud services and manage disaster recovery.

  • IaaS provides and manages large data centers that require to power the various layers of abstraction on top of them. End users do not interact directly with physical infrastructure but experience it as a service.

*Use Cases - *

  • Enables teams to set up tests and development faster and helps developers focus more on business logic than infrastructure management.

  • Faster deployment of applications and scaling whenever needed.

  • High-performance computing power to solve complex problems involving millions of variables and calculations.

  • Can be used in Big Data Analytics as patterns and trends require a huge amount of processing power.

Lack of Transparency and dependency on third parties makes IaaS concerning.

PaaS(Platform as a service)

It's a form of cloud computing where the customer is provided with a complete application platform to Develop, Deploy, Manage, and Run Applications.

The cloud provider here manages and hosts these -

  • Servers

  • Networks

  • Storage, Installation, and App Infrastructure

  • APIs, Operating Systems, App Runtime, Middleware, and Databases.

The user here only manages the code of the application. PaaS has more advantages than IaaS like it provides High-Level Abstraction, Support services, APIs, Rapid Deployment Mechanisms, and Middleware capabilities. Use Cases

  • API Development

  • Internet of Things

  • Business Intelligence

  • Business Process Management

  • Master Data Management

Saas (Software as a Service)

A cloud offering that provides access to a service provider's cloud bases software. Here the cloud provider maintains and manages application, security, availability, and performance. The application can reside on remote providers' services. SaaS supports and offers varieties of features for users like Email Collaboration (Ex - MS 365 or Gmail), Customer relationship management(Salesforce), and likes of financial management.

Characteristics of SaaS :

  • Multitenant Architecture - Infrastructure and conde maintained centrally and accessed by all users

  • Manage privileges Monitor data usage and ensure everything is part of the offering.

  • User pay via a Subscription Model.

  • Scalable resources depending on service needs.

*Use cases - *

  • Reduce on-premise IT infrastructure and CAPEX.

  • Avoid ongoing upgrades, maintenance, and patching.

  • Apps can run reliably with minimum input and Business continuity is ensured.

Some concerns that can be caused by SaaS are data ownership and data safety are in the hands of third-party maintainers and Users need a good Internet Connection(Literally).

To sum up the above three service models this image from Google can be referred ๐Ÿ‘‡

2.21-1.png

# Cloud Deployment Models

cloud-deployment-model-types.png

Deployment models indicate where the infrastructure resides, who owns and manages it, and how cloud resources and services are made available to users

Public Cloud

As the name suggests users get access to servers, networks, security, and applications as services over the internet. Using web consoles and APIS users can provision the resources and services they need. The cloud providers own, manages, and maintain the infrastructure, renting it out to customer either for subscription or by a usage-based fee. Here users don't own the services. They just pay for the running of apps and what storage they use. Consider it like your own house utility bill, you don't own water or electricity you only pay for them.

Some providers of public cloud are

  • AWS

  • MS Azure

  • IBM Cloud

  • Google Cloud Platform

Private Cloud

Used mainly in Single organization business within the organization. It may be owned and managed by the company itself, it may exist on or off-premise. It can be implemented externally or internally. Some users of the private cloud may include modernizing and unifying in-house and legacy apps, integrating data and app services from existing apps, and having full control over critical security and compliance issues within a dedicated cloud.

Hybrid Cloud

It connects an organization, on-premise private cloud, and third-party public cloud into a single infrastructure. It's very flexible to choose, workloads are done more freely, choice of security and regulations, and with proper integration and orchestration between public and private clouds one can leverage both clouds for some workloads.

There are three tenants of Hybrid-Cloud -

  1. Interoperable - public cloud and private clouds understand each other's API, configuration, authentication, and authorization.

  2. Scalable - the private cloud can leverage public cloud capacity.

  3. portable - move app and data between on-premise, and cloud system service providers.

Now we have a cloud service model and cloud types but it's time for us to choose the infrastructure of the Cloud.

Cloud Infrastructure

The infrastructure layer is the foundation of the cloud, layers consist of physical resources that are housed in regions and zones in data centers. Isolation of zones increases fault tolerance, latency, and more.

Some concepts of infrastructure

  • Virtualization - is the "creation of a virtual (rather than actual) version of something, such as a server, a desktop, a storage device, an operating system or network resources".

In other words, Virtualization is a technique, which allows sharing a single physical instance of a resource or an application among multiple customers and organizations. It does this by assigning a logical name to physical storage and providing a pointer to that physical resource when demanded.

sensors-16-00246-g001.webp

  • Hypervisor - A Cloud Hypervisor is software that enables the sharing of the cloud providersโ€™ physical compute and memory resources across multiple virtual machines (VMs). Originally created for mainframe computers in the 1960s, hypervisors gained wide popularity with the introduction of VMware for industry-standard servers in the 1990s, enabling a single physical server to independently run multiple guest VMs each with their own operating systems (OSs) that are logically separate from each other. In this manner, problems or crashes in one guest VM have no effect on the other guest VMs, OSs, or the applications running on them.

Although there are multiple types of VMs, they all perform the same task, enabling a single set of physical server hardware (including CPU, memory, storage, and peripherals) and enabling the simultaneous use by multiple instances of OSs, whether Windows, Linux, or both.

Types-of-Hypervisors-1024x536.jpg

  • Bare Metal Services - is a single-tenant dedicated physical server. In other words, it's dedicated to a single customer.

  • Containers - Containers are executable units of software in which application code is packaged, along with its libraries and dependencies in common ways so that it can be run anywhere whether it's a desktop, traditional IT server, or the Cloud. This is vastly used in DevOps. Containers are small, fast, and portable and unlike VMs they do not need to include a guest OS in every instance and can instead simply leverage the features and resources of the host OS.

ll.png

Cloud Storage

This is the place where we save data and files in the cloud. Cloud Storage must be attached to a compute node before the storage can be accessed, whereas other storage types can be directly accessed through the public internet or a dedicated private network connection.

  • Cloud provider host manages, secures,s and maintains infrastructure to ensure you have access to your data when you need it.

  • The cost of storage will vary by type of storage in general, the faster the read/write speed of storage the higher the per-gigabyte cost.

Before we know the types of cloud storage take a glance at **IOPS **which is IOPS(Input/Output) operations per second is the speed at which disks can write and read data. The higher the IOPS value the faster the speed of the underlying disk, which ultimately means a higher cost

*Types of Cloud Storage *

  1. Direct Attached Storage - referred to as "Local Storage" is storage that is presented directly to a cloud bases server and is effective within the host server chassis or within the same rack. It's fast and used mainly to store Operating System

ll.png

  • But due to its physical form, it's empirical(temporary, which means it only lasts as long as the computer resource is attached to it).

  • Can't be shared with other nodes and while we can use raid techniques it's not resilient to failure.

  1. File storage - Like direct attached, file storage must be attached to a compute node before it can be accessed and have data stored on it. However, file storage can be less expensive, more reliant on failure, and involve lesser disk management. File storage is mounted from remote storage appliances and It's managed by service providers.

File storage also provides the best encryption technology which can be understood by the below image -

images.png

It is mounted on compute node via ethernet networks, but these networks are dedicated to storage referred to as Network Attached Storage, and Speed may be based on Network traffic. Therefore file storage tends to be used for workloads where consistently high network speeds are not a requirement. This can be purchased at a low price but we have to trade off speed with a price.

  1. Block Storage - breaks files into chunks or blocks of data, and stores each block separately under a unique address, like direct storage and file storage, block storage must be attached to a compute node before it can be utilized. It is mounted from remote storage appliances which are extremely resilient to failure and data is more secure or encrypted. It is mounted as a volume of computer nodes using a dedicated network of optical fibers, through which signals move at lightning speed, and as it is using fiber optics it has a higher price point. Unlike file storage block storage can only be mounted to 1 compute node because it has high speed.

  2. Object Storage - can be used without connecting a particular node to use it, instead, we can provide an API. It is less expensive than others (per GB COST is 1 cent/month in USD). Object storage is effectively infinite and comes with pay per size model which literally means keep uploading and storage will never run out.

Resources to learn Cloud Computing

Job Roles In Cloud Computing

  • Cloud Developers(Software Engineering)

  • Cloud DevOps Engineer

  • Cloud Solutions Architect

  • Cloud Data Engineer

  • Cloud Security Engineer.

This was all of the introduction to learning cloud computing, there are more advanced topics like Cloud monitoring and Security but that comes as you keep doing things in the field. Hope you liked the article, if there can be any addition please say I will add them. Peace!!๐Ÿ˜Š๐Ÿ˜Š

ย