Engineers and users typically think of the cloud as renting resources in a large-scale provider’s data center: “cloud is just someone else’s computer.” This view of cloud computing was accurate for the first few years of the technology.
Public cloud meant resources owned, operated by, and located in the data centers of a large-scale cloud provider.
Private cloud meant networks designed and operated like a cloud owned and operated by a company or organization (not a large-scale cloud provider). Engineers often use the terms private cloud and on-premises interchangeably.
Over time, however, companies created many new models for consuming cloud computing, including
• Off-premises public cloud: Renting resources in a large-scale provider’s data center.
• Distributed public cloud: Renting resources distributed throughout colocation facilities operated by a large-scale provider.
• On-premises public cloud: Renting resources on the customer’s premises, operated by a large-scale provider.
• Off-premises private cloud: Resources located in colocation facilities operated by the organization.
• On-premises private cloud: Resources located on the organization’s premises, operated by the organization.
Public cloud broadly means someone else owns and operates the infrastructure.
Private cloud broadly means the organization using the resources owns and operates the resources.
On-premises broadly means the equipment is physically located on the user’s property.
Co-located means the equipment is in a facility not owned by the user or a cloud provider.
You can combine these terms to describe different cloud computing deployments. For instance, some cloud providers will install hardware in a customer’s facilities—so the physical equipment is on-premises—but the customer accesses these local resources through the provider’s interfaces. The result is an on-premises public cloud service.
Cloud Computing Service Models
The second way to classify cloud computing is the kind of service offered. However, this classification is more malleable than public, private, and colocated cloud because corporatemarketing departments are always searching for ways to differentiate their product, and companies are constantly inventing new services to sell. Some of the kinds of cloud services include
• Platform as a Service (PaaS ): The cloud service includes servers, network connectivity between the servers, Internet (or external) connectivity, database services, a library of installable software, etc. PaaS replicates everything an organization provides to internal developers by building and operating a data center.
• Software as a Service (SaaS): The cloud service is a complete software package used directly by end users. SaaS runs the service entirely in a specialized cloud, so users do not need to install any software; the application is accessed entirely through a web interface.
• Infrastructure as a Service (IaaS ): The cloud service includes servers, network connectivity between the servers, and Internet (external) connectivity. The user is responsible for installing applications, building virtual topologies, etc.
• Application Programming Interface as a Service (APIaaS): The cloud service is a set of APIs developers can use when building an application. For instance, programmatic interfaces into chatbots, social media services, and data analytics services are APIaaS. These APIs are typically accessed through the global Internet, so the network engineering team does not interact with this cloud service.
• Storage as a Service (STaaS): The cloud service provides remote storage—like a hard drive accessed remotely over the network. STaaS is usually distributed across colocation facilities rather than deployed in centralized large-scale data centers.
• Network as a Service (NaaS): The cloud service connects remote sites, workers, and the global Internet. An organization might run its own data center and campus networks but purchase NaaS to connect all its devices into a single network.
NaaS services often include user authentication and authorization services.
As you can see from this list, just about anything in information technology can be sold “as a service.”
Typical Public Cloud Service Mix
Large-scale public cloud services provide hundreds of different services. For instance, one cloud provider offers more than 15 kinds of computing services, including
• Virtual servers with varying numbers of processors and amounts of memory.
• Spot instances, which are the same servers but for very limited amounts of time. Spot instances are typically used to support “background” processing.
• Server management and orchestration systems like Kubernetes.
• Serverless computing services.
• Application programming interfaces (another form of serverless computing).
• Services to create ultra-low applications for 5G cellular networks.
• The ability to scale each compute resource dynamically based on demand.
Computing resources are just the beginning of the services available through a large-scale public cloud provider. Other services include
• Relational databases
• Document databases
• NoSQL databases
• Caching services
• Data warehousing
• Time-series databases
• IoT services
• Neural networks and artificial intelligence services
• Content delivery
• Real-time recommendation engines for applications
• Virtual desktop services