Tech Stacks
    Overview
    System Design Patterns
    CAP Theorem
    C10K and C10M
    Network Programming Models
    Infrastructure as Code
    Examples

Cloud

Updated: 2022-08-06

"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, enable IT collaboration and automation;
  • CloudFlare: CDN, security.
  • PagerDuty: Incident Response

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.

Read more about Virtualization.

Data Plane vs Control Plane vs Management Plane

The 3 Planes in distributed systems/clouds:

  • Management Plane: WRITE configs, either through code or (cloud) console (for human use, infrequent)
  • Control Plane: can be modified by Management Plane; distribute, sync and READ configs in realtime from Data Plane, e.g. admission control, telemetry reporting, etc (for machine use, as frequent as API calls)
  • Data Plane: the actual services (APIs), databases etc. Call Control Plane to get configs.

AWS

AWS

  • -a: AMD
  • -g: ARM
  • -n: networking (100 Gbps networking)
  • -e: enhanced storage
  • -d: Local NVMe-based SSD storage

Nitro System

Nitro = dedicated hardware + lightweight hypervisor

Hypervisor is very thin becauses functions (network, storage and management) are offloaded to dedicated hardware, so CPU can be used for more important computing jobs. Thanks to the ASIC (Application-specific integrated circuit) from Annapurna Labs, a company that Amazon acquired.

Nitro Hypervisor: built on KVM, but does not include general purpose operating system components.

VPC by default

Now aws supports only EC2-VPC: you have a default VPC in each AWS Region.

Cloud WAN (wide area network) can be used to connect multiple VPCs in different regions.

Comparison Charts

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