Introduction to Cloud Computing Fundamentals

Introduction to Cloud Computing Fundamentals

What is a Cloud?

The cloud is made up of servers(A server is a device that provides a service to another computer program and its user, also known as the client)in data centers(A data center is a dedicated space in a building that stores servers) all over the world.

Why it is called so?

A cloud means a visible mass of condensed water vapor floating in the atmosphere.

As long as you are on the earth, no matter where you go, you will always see clouds. They can be seen (accessible) from anywhere.

Similarly, no matter where you go, you will be able to access your data stored on the so-called "cloud" which is nothing but a bunch of servers that are supposed to be highly available to you 24/7.

What is Cloud Computing?

Cloud computing is the delivery of computing services like virtual machines, storage, databases, and networking over the internet. It also includes popular services like the Internet of Things (IoT), machine learning (ML), and artificial intelligence (AI).

Because cloud computing uses the internet to deliver services, it doesn’t have to be constrained by physical infrastructure i.e. if you need to increase your IT infrastructure, you don’t have to wait to build a new data center—you can use the cloud to rapidly expand your IT footprint.

IT footprint means the space occupied by your hardware resources so if you want to increase it according to your business requirement then you can always increase it using these cloud services.

For example: If you want to increase the number of servers for your business, you can create VMs as servers and use them on the go instead of buying servers, configuring them, and others efforts that are super time-consuming. Each step adds cost and effort.

Why do businesses want to migrate from the traditional approach to the cloud?

Traditional approach :

  • Businesses need to buy hardware and configure it on their own.

  • Employ staff who will handle procurement(the process of purchasing goods or services), accounting, and other stuff.

  • Each step requires employees, time, and effort.

  • more responsibilities

After migrating to the cloud :

  • create an azure account

  • purchase required subscription(only pay for what and how much you use)

  • start creating and using services, and scale in and scale out whenever you need to.

The process of migrating to the cloud is called lift and shift.

Consumption-based model

"You have to pay for what and how much you use" hence it is called a consumption-based model. Putting it another way it's called "pay as you go".

You also need to understand two types of expenses:

To understand this I would like to explain it with the help of a comparison table.

CapEx

OpEx

Capital Expenditure includes an upfront cost.

No upfront cost.

A new building, building a data center, or buying a company vehicle are examples of CapEx.

Renting a data center, or signing up for cloud services are all examples of OpEx.

Upfront cost: an amount of money paid before a particular piece of work or a particular service is done or received. For example: When you purchase a server, it needs an upfront cost to be paid before even you start using it. This term is not complicated at all we pay upfront cost for so many things in everyday life. You need to pay for cookies at the store even before opening the packet and eating it.

With cloud computing, you don’t pay for the physical infrastructure, the electricity, the security, or anything else associated with maintaining a data center. Instead, you pay for the IT resources you use. If you don’t use any IT resources this month, you don’t pay for any IT resources.

What are Cloud Deployment Models?

The cloud deployment models define the deployment type of cloud resources. It means whether you will deploy(locate) your resource(s) on a public cloud, private cloud, or hybrid cloud. The three main cloud models are private, public, and hybrid.

  • Public cloud: After reading public cloud, you should be able to understand/gather what that exactly means. With a public cloud, anyone that wants to purchase cloud services can access and use resources. The general public availability is a key difference between public and private clouds. A public cloud is built, controlled, and maintained by a third-party cloud provider.

    Disadvantage: Organizations don’t have complete control over resources and security as they are maintained by a third party.

  • Private cloud: It’s a cloud that’s used by a single entity like an organization. Users like us cannot access their private cloud unless we are the employees, owners, or any sort of stakeholder in that organization.

    Advantages: Private cloud can be hosted by the organization on their on-site data center. It means a cloud can be established on-premises(organization's building) and maintained by them. So no need to worry about security issues.

  • Hybrid cloud: It**'**s an amalgamation of public and private clouds. But why? What is even the need to combine them?

    The answer to this question is "Hybrid cloud provides the most flexibility".You can decide where you want to deploy your resources and organizations determine where to run their applications.

In addition to these deployment models, a fourth, and increasingly likely scenario is a multi-cloud scenario. In a multi-cloud scenario, you use multiple public cloud providers. Maybe you use different features from different cloud providers. In a multi-cloud environment, you deal with two (or more) public cloud providers and manage resources and security in both environments.

Cloud computing services

Cloud computing services are briefly categorized into these as-a-service options.

  • IaaS: It is the most flexible category of cloud services. In an IaaS model, the cloud provider is responsible for maintaining the hardware, network connectivity (to the internet), and physical security. You’re responsible for everything else: operating system installation, configuration, and maintenance; network configuration; database and storage configuration; and so on. With IaaS, you’re essentially renting the hardware in a cloud data center, but what you do with that hardware is up to you. It provides you with the maximum amount of control over your cloud resources.

  • PaaS: In a PaaS environment, the cloud provider maintains the physical infrastructure, physical security, connection to the internet, operating systems, middleware, development tools, and business intelligence services.

    For example, Google App Engine is a PaaS for developing and hosting web applications in Google-managed data centers.

  • SaaS: With SaaS, you’re renting or using a fully developed application. Email and messaging applications are common examples of SaaS implementation.

Now if you have read about IaaS, PaaS, and SaaS and still you are confused, take a look at the image below.

Shared Responsibility model

To explain this, in the case of IaaS, the physical data center, network and hosts are provided by Microsoft (it can be any other cloud provider like Amazon Web Services or Google Cloud Platform) and the rest should be taken care of by the customer. Sometimes a particular responsibility is shared between the cloud provider and the customer. Similarly, you can interpret for PaaS and SaaS.

Another visual that should make it crystal clear to you.

As-a-service options

Shared responsibility model

This model says that there is a shared responsibility between you and your cloud provider. You can refer to the first figure to understand some shared responsibilities like network controls, applications, identity, and directory infrastructure.

You’ll always be responsible for:

  • The information and data stored in the cloud

  • Devices that are allowed to connect to your cloud (cell phones, computers, and so on)

  • The accounts and identities of the people, services, and devices within your organization

The cloud provider is always responsible for:

  • The physical datacenter

  • The physical network

  • The physical hosts

Your service model will determine responsibility for things like:

  • Operating systems

  • Network controls

  • Applications

  • Identity and infrastructure

Benefits of using cloud services

  • High Availability: To ensure high availability, cloud providers created "regions". Each region has at least 3 Availability zones that are connected through a dedicated low-latency network. An Availability zone consists of multiple data centers. If one of the zones fails due to some natural disaster or power cutoff then there is a failover to another zone.

    Failover is the ability to switch automatically and seamlessly to a reliable backup system.

    Hence, you are never denied any service.

  • High Scalability: Scalability refers to the ability to adjust resources to meet demand. If you suddenly experience peak traffic and your systems are overwhelmed, the ability to scale means you can add more resources to better handle the increased demand. If demand drops off, you can reduce your resources and thereby reduce your costs.

    Vertical Scaling: you could vertically scale up to add more CPUs or RAM to the virtual machine.

    Horizontal Scaling: you could add additional virtual machines or other required services.

  • Reliability: Reliability is the ability of a system to recover from failures and continue to function. The cloud enables you to have resources deployed in regions around the world. So even if one region has a catastrophic event other regions are still up and running.

  • Security and governance: It ensures that all your deployed resources meet corporate standards and government regulatory requirements. If you want maximum control of security, infrastructure as a service provides you with physical resources but lets you manage the operating systems and installed software, including patches and maintenance. If you want patches and maintenance taken care of automatically, platform-as-a-service or software-as-a-service deployments may be the best cloud strategies for you.

  • Manageability :

    Management of the cloud

  • Automatically scale resource deployment based on need.

  • Deploy resources based on a preconfigured template, removing the need for manual configuration.

  • Monitor the health of resources and automatically replace failing resources.

  • Receive automatic alerts based on configured metrics, so you’re aware of performance in real time.

    Management in the cloud

  • Through a web portal.

  • Using a command line interface.

  • Using APIs.

  • Using PowerShell.

That's all for the basics guys! We will explore more important topics and concepts in the coming tutorials. Stay tuned for computing services tutorials. Thank you for reading!!