GDPR Declaration !!

I am not collecting any personal information of any reader of or visitor to this blog. I am using Blogger, provided by Google to host this blog. I understand that Google is using cookies to collect personal information for its Analytics and Adsense applications.

Thursday, December 31, 2020

What is Cloud Computing?

This is the sixth of a series of articles that I am writing in my blog. I intend to cover 21 technologies / ideas. Here is my publishing history.

  1. Artificial Intelligence
  2. Machine Learning 
  3. Deep Learning 
  4. Robotic Process Automation (RPA) 
  5. Industrial Internet of Things (IIOT)

Introduction to Cloud Computing

Let us look at GMail for a moment. All of us use it. All your emails are stored on the Google Server. You access the mail through a browser, read it and respond to it. You are not maintaining any hardware or software on your computer. Through a browser (or App) you access your data stored in a server on the internet and perform computing actions (reply, delete, move it to another folder etc) on it and log out of the system. Assume that you pay only for the time you logged in to the email.

Expand that to your business applications. Your payables applications is on the internet. You login and create and invoice, make a payment and download a few reports and log out. And pay only for the time that you used the application.

Assume a Small Business that want to go digital. They do not have the wherewithal to invest in platforms, networks, servers, operating system, storage space or database. Today they can get all these on subscription model from Cloud Vendor and start their digital journey quickly and without any hassle.

That is Cloud Computing in a nutshell. Let us define it formally.

Cloud Computing: A Formal Definition

As per NIST (National Institute of Standards and Technology),  "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.

Cloud computing consists of five characteristics, four deployment models and three service models"

Characteristics of Cloud Computing 

  1. 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.  
  2. Broad network access. Capabilities are available over the network and accessed through different devices like mobile phones, tablets, laptops, and workstations
  3. Resource pooling.The provider’s computing resources like storage, processing, memory, and network bandwidth are pooled to serve multiple consumers through virtual dynamic assignment. 
  4. Rapid elasticity. Ability to scale up or down resources rapidly. This gives an impression of unlimited resource availability thus boosting customer confidence.
  5. Measured service. Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.

Cloud Computing Deployment Models

  1. Private cloud. The cloud infrastructure is provisioned for exclusive use by a single organization comprising multiple consumers (e.g., business units). It may be owned, managed, and operated by the organization, a third party, or some combination of them, and it may exist on or off premises.  
  2. Community cloud.The cloud infrastructure is provisioned for exclusive use by a specific community of consumers. It may be owned, managed, and operated by one or more of the organizations in the community, a third party, or some combination of them, and it may exist on or off premises.  
  3. Public cloud. The cloud infrastructure is provisioned for open use by the general public. It may be owned, managed, and operated by a business, academic, or government organization, or some combination of them. It exists on the premises of the cloud provider.  
  4. Hybrid cloud. This consists of two or more distinct cloud infrastructures (private, community, or public) that remain unique entities, but are bound together by standardized or proprietary technology.
  5. Multi-Cloud: This is not a deployment model as per NIST definition. Multi-cloud means the same customer running different applications on different cloud service providers. You could have a few applications running on AWS, and a few on Azure with the AI and ML Services from Google Cloud being used for analytics.  (I call this 'Appification', where customer's IT landscape will look like a Mobile Screen with different Apps serving different purposes and none talking to each other. Sooner or later, the customer's IT Landscape is going to be cluttered just like the screen of your mobile phone)

Cloud Computing Service Models

  1. Infrastructure as a Service (IaaS). This provides the maximum control to the customer. Customer is provided the Cloud Infrastructure where they can provision
    processing, storage and other computing resources. The customer is free to deploy their Operating Systems and Custom Applications in the infrastructure provided by the Cloud Vendor. Please note that customer do not manage the cloud infrastructure.
  2. Platform as a Service (PaaS). This provides more control to the customer. Customer can deploy their custom applications onto the cloud infrastructure. These application must be created using programming languages, libraries, services, and tools supported by the provider. Customer has no control over the cloud infrastructure but can deploy a few custom applications.
  3. Serverless Computing:  This is a variant of PaaS where the customer only focuses on developing applications. The server and infrastructure management is done by the cloud vendor. This helps customer focus on developing applications without the hassle of server provisioning and scaling. 
  4. Software as a Service (SaaS). In this model, the customer accesses the provider's applications running on a cloud infrastructure. The customer has no control on the underlying cloud infrastructure or the applications. The customer has limited flexibility to configure the applications to suit their specific requirements. An example of SAAS offering is Oracle Fusion Cloud ERP Application (or even Gmail). 

Cloud Computing Architecture

Cloud computing architecture has the following characteristics
  1. Simultaneous Provisioning
  2. Scalable
  3. On-demand service
  4. Instant sharing of resources

As shown in the diagram, Cloud Architecture consists of two parts. In the 'Front End', we have the user machines, Thin Clients that access the resources that are installed on the Cloud Servers. These servers are known as the 'Back End' and the customer accesses them through the internet. The resources are Applications, Operating Systems, Storage, Database, AI, Analytics, Security etc.

Reference: https://www.educba.com/cloud-computing-architecture/

Cloud Computing Vendors 

The main Cloud Vendors are:

  1. Amazon Web Services (AWS)
  2. Microsoft Azure
  3. Google Cloud 
  4. IBM Cloud
  5. Alibaba Cloud
  6. Oracle Fusion Cloud

All the vendors offer some or all of the following services

  1. Storage
  2. Operating System
  3. Database
  4. Network
  5. Software (SAAS)
  6. Artificial Intelligence
  7. Machine Learning. 
  8. Analytics

Reference: https://www.zdnet.com/article/top-cloud-providers-2019-aws-microsoft-azure-google-cloud-ibm-makes-hybrid-move-salesforce-dominates-saas/

Business Benefits of Cloud Computing

  1. Cloud Storage: No need to store data in hard drives and tapes. 
  2. Faster disaster recovery
  3. Multiple ways to achieve cost savings. Customer do not have to maintain a fat IT Infrastructure and Team. Attrition costs are reduced. World class talent to solve issues means that cost due to delay is getting solutions to issues is reduced. Pay-as-use model ensures that the customer gets value for money. Finally, in a public cloud, the vendor is able to distribute economies of scale to the customers thus reducing their costs.
  4. Regular software and applications upgrade means that even the smallest customer will enjoy the benefit of the latest advances in technology.
  5. Cloud democratizes technology by making it available to every customer, big and small.
  6. By ensuring world-class disaster recovery, cloud vendors ensure business continuity for its customers. Unplanned outages are minimized.
  7. Cloud services can be scaled up or down quickly. This helps customers respond effectively to demand elasticity.
  8. Leading cloud vendors offer top of the line data security by offering features like encryption, access control etc.  

Challenges of Cloud Computing

  1. Dependence on Network Connectivity: In case of network outage, the customer cannot access the cloud resources  
  2. Loss of control: The client becomes dependent on the service provider to ensure adequate security to the data. The loss of control even extends to maintenance. The customer becomes dependent on the Cloud Vendor to speed up the maintenance activities. In addition, the client has less control over the maintenance schedules.
  3. More attractive to hackers: Since the cloud servers contain data of many customers, they become an attractive target for hackers. 
  4. Fake Clouds: Cloud computing is more than remote access to a data centre. It includes maintenance, security, availability and reliability. In addition, it will involve data redundancy and disaster recovery. However there are many cloud vendors who just make their application available on a cloud server and claim to be 'Cloud Enabled'. 
  5. Limits customization options: Cloud computing works like a quick service restaurant. The Cloud Vendor offers a limited set of services that are delivered efficiently. 
  6. Legal restrictions on location of data: Different countries have different rules relating to where data can be stored. For example, EU GDPR restricts data of European Customers to reside within Europe. This could be a challenge when evaluating second tier cloud vendors.

Use Cases of Cloud Computing

  1. Create Cloud Applications: Quickly build, deploy and scale web, mobile and API applications. This can be done by using cloud technologies like containers, Kubernets, Microservices and DevOps
  2. Store, backup and recover huge amount of data. 
  3. Stream audio and video to connect with audience anywhere, any time (Youtube live)
  4. Reduce testing lead time
  5. Data Analysis by using advanced technologies like AI and ML

References 

  1. https://www.zdnet.com/article/what-is-cloud-computing-everything-you-need-to-know-about-the-cloud/
  2. https://www.zdnet.com/article/how-the-cloud-wars-forced-ibm-to-buy-red-hat-for-34-billion/
  3. https://www.zdnet.com/article/moving-to-the-cloud-some-advice-to-consider/
  4. https://in.pcmag.com/networking-communications-software/38970/what-is-cloud-computing 
  5. https://www.infoworld.com/article/2683784/what-is-cloud-computing.html
  6. https://www.ibm.com/in-en/cloud/learn/cloud-computing
  7. https://www.salesforce.com/in/learning-centre/tech/cloudcomputing/
  8. https://www.accenture.com/in-en/insights/cloud-computing-index
  9. https://www.techiexpert.com/what-is-cloud-computing-with-example/
  10. https://www.edureka.co/blog/what-is-cloud-computing/
  11. https://www.cloudflare.com/learning/cloud/what-is-the-cloud/
  12. https://netcov.com/what-is-cloud-computing/
  13. What is the Cloud? Beginner's Guide to Cloud Computing Concepts
  14. The Adaptive Network: A Framework for Understanding the Networking Implications of the Edge Cloud - Ciena
  15. What is cloud computing? A beginner’s guide | Microsoft Azure 
  16. Cloud Computing Definition 
  17. What is Cloud Computing 
  18. Cloud computing - Wikipedia
  19. https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf
  20. https://www.lifewire.com/what-is-cloud-computing-817770  
  21. https://builtin.com/cloud-computing/cloud-computing-examples

No comments: