logo

Cloud

"Cloud is the new OS"

Cloud is just a fancy name for systems (in this modern world, they are most likely distributed systems), with the hardware procurement and maintenance and many other things abstracted away from software developers.

Cloud can be public, meaning Amazon or Microsoft or Google is running your infrastructure. Or private, meaning you still fully own your data center but resource request and allocation is done through software UI. Or hybrid, taking the best parts of public and private cloud.

Based on the abstraction level, cloud offerings can be infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS).

Computation evolution: bare metal -> virtualized -> containerized -> cloud -> serverless.

Cloud Infrastructure

3 big players (60%+ combined market share):

  • Amazon AWS
  • Microsoft Azure
  • Google Cloud Platform

Other players (less than 10% of market share each):

  • Outside of China:
    • IBM / Redhat
    • Oracle
  • China: (the top 4 has >80% marketshare in China)
    • Alibaba Cloud
    • Huawei Cloud
    • Tencent Cloud
    • Baidu AI Cloud

Specialized:

  • Okta: identity.
  • DigitalOcean: compute.
  • Backblaze: storage / backup.
  • Snowflake: data warehouse.
  • Hashicorp: infrastructure-as-code (IaC), enable IT collaboration and automation.
  • CloudFlare: CDN, security.
  • ServiceNow: task management.
  • PagerDuty: Incident Response.
  • Workday
  • Salesforce

3 Key Categories

Each public cloud offers dozens of services. To make it easier to understand, think of these 3 key categories:

  • compute: VM, containers, serverless functions, etc.
  • storage: databases, datawarehouses, object stores, etc.
  • networking: DNS, VPC, load balancing, etc.

Virtualization

Virtualization is the key enabler of the Cloud, so that the resources can be split and re-packaged to sell: virtual machine (hypervisor), virtualized (software-defined) storage and network.

Hyper-converged infrastructure (HCI): software-defined infrastructure, virtualizes all of the elements of conventional "hardware-defined" systems. HCI is mostly a marketing term.

Read more about Virtualization.

How to provision cloud resources

  • CLI (e.g. aws, gcloud).
  • Web UI (e.g. AWS Management Console, Google Cloud Concole).
  • REST API.
  • Infrastructure-as-code tools
    • AWS has CloudFormation.
    • Terraform can work on multiple clouds; the license change may affect its adoption.
    • GCP has Infrastructure Manager which utilizes Terraform.

Resource Hierarchy Comparison

  • GCP: Organization => Folder => nested Folder => Project => Resource
  • AWS: Organization => OrganizationUnit => nested OU => Account => Resource
  • Azure: Active Directory Tenant (Root Management Group) => Management Group => nested Management Group => Subscription => ResourceGroup => Resource

Single-tenant vs Multi-tenant vs Multi-single-tenant

  • Single-tenant: the infrastructure serves a single tenant.
  • Multi-tenant: the infrasturcture serves multiple tenants, but there's no isolation (e.g. the same backend server may server multiple tenants, and the database may store data of multiple tenants).
  • Multi-single-tenant: a single system runs multiple, individually-provisioned instances to serve multiple different tenants. The computing resources, data storages are isolated from each other.

Events / Conferences

Follow the latest developments in the Cloud world:

  • AWS re:Invent: usuall at the end of the year, in Las Vegas.
  • Google Cloud Next: usually at the end of summer; used to be in San Francisco, moved to Las Vegas in 2024.

Comparison Charts

https://cloud.google.com/docs/get-started/aws-azure-gcp-service-comparison