Technical discussions about distributed systems are in the Distributed Systems section. This section is mostly about
- the offerings of the public clouds, both software and customized hardware
- options and notes for hybrid or private clouds
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.
There are only 3 big players you need to be aware of: Amazon AWS, Microsoft Azure, and Google Cloud Platform. However if you are in China, Alibaba Cloud is the safe bet.
Other smaller players are neglectable, Oracle is unlikely to catch up with the big 3, and whether IBM's Redhat acquisition can move the needle is yet to be seen.
It is estimated that the global market size of cloud computing is more than $100 billion around 2020, and will continue to grow rapidly in the coming years.
Amazon AWS's 2018 revenue was $25.7 billion, however Azure and GCP do not separately report the revenue from cloud computing.
Google's 2019Q2 earnings reported 4.4 billion "other" revenue (GCP should be part of it), so once cloud business is full blown, it can be as large as its ads business.
Openstack was launched in 2010. AWS was the only Cloud, GCP didn't exist, Docker was not a thing. The goal was to provide an open source and private alternative to AWS; building on top of VMs.
Kubernetees was launched in 2014. AWS, Azure, GCP became dominant players of Cloud computing, Docker became the synonym of container. The goal was to be a bridge among the big 3, and between public cloud and private data centers; building on top of containers.
OpenStack is dying down. Kubernetes is the winner, for now.
Kubernetes-based platform to deploy and manage modern serverless workloads.
Serverless users are afraid of vendor lock-in, so Knative is created to make serverless standardized and portable.
Google Cloud Run is a re-implementation of the same Knative Serving API.
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.