Cloud Speak – Terminologies in Cloud Computing
With new technologies come new terminologies. As technology evolves, the words used in the context of that technology may also have a qualified meaning. This is usually out of necessity for terms or phrases to convey new concepts in a given context. In some cases, there is a need to coin or invent a new term. For instance, before the Internet, the terms blog, twitter, web, etc, either didn’t convey the same as today’s meaning, or didn’t even exist (e.g., blog, which is a truncation of combined words: web log).
Cloud Computing is a new technological innovation in rapid growth and like any innovation, it is evolving with its own tech language. For instance, can you tell apart scaling up from scaling out in the context of Cloud Computing? To adopt cloud-based services, it’s essential to evaluate our requirements with some clarity. To do that, we need to be familiar with the technical terminologies, or with the tech jargon, if you will. Most of the terminologies in Cloud Computing already exist in the IT world; after all, Cloud Computing is just a new kind of IT in the cloud.
This compilation is provided with readers of my articles in mind, so as to serve as a one-stop quick reference. Links to my articles on Cloud Computing appear at the bottom of this page. This content will be updated from time to time.
Alphabetical List of Terminologies
Application – or App, is a software program that users install (or have it installed) and use directly. In Cloud Computing, we sometimes use the terms Application and Serviceinterchangeably, although the term Service implies software that is installed and managed without user involvement.
AWS – short for Amazon Web Services; Amazon’s cloud computing platform.
Azure, also Microsoft Azure– Microsoft’s cloud computing platform.
Cloud – a metaphor for computing resources hidden away from customers. These resources are located in datacenters in different regions and locations around the world, and we attribute this spatial detachment of computing resources to cloud metaphor. The use of the cloud metaphor dates at least to mid-1990s although more popularized as “cloud computing” with the introduction of Amazon’s Elastic Compute Cloud product in 2006.
Cloud Computing – the delivery of computing services over the Internet using a pay-as-you-go pricing model, meaning you pay only for the service you use. In other words, you rent computer power and storage from a datacenter that belongs to a cloud service provider (CSP). The CSP takes care of maintaining the underlying infrastructure. There are three important attributes of Cloud Computing: 1) metered services, meaning you pay for what you use; 2) Elastic resources, meaning you can scale resources to meet the demand; and 3) self service, meaning customers are in charge of accessing and/or deploying services once they sign up with a CSP.
Cloud Delivery Model – see Cloud Service Model.
Cloud Deployment Model – or Cloud Deployment Mode is used to describe the three cloud service deployment types: Public cloud, Private cloud, or Hybrid cloud.
Cloud Migration – the process of moving onprem IT system into the cloud. See, for instance, an introductory article on this topic: Cloud Migration – An Introduction.
Cloud Service – or simply Service in Cloud Computing context, is any IT resource that is made remotely accessible via a cloud. Also see, Application.
Cloud Service Model – or Cloud Delivery Model/Mode is used to describe the three cloud service delivery types or services categories: IaaS, PaaS, or SaaS.
Code Refactoring – in programming code refactoring is the process of restructuring existing computer code for some optimal outcomes, which may include one or more of desirable features such as readability, testability, ease of maintenance, etc. In cloud migration, the same principle of code restructuring is applied to make application code well suited to the cloud platform architecture, so as to make migration possible and also take advantage of as many native cloud features as possible.
Containers, Containerization – [helps to know Virtual Machine first] Containers are light-weight Virtual Machines (VMs). As Virtualization is for Virtual Machines, Containerization is for Containers as the process for creating them. Containers are essentially isolated from each other to run their own application. The key difference is that Containers are virtualization at Operating System level (just like instances), while VMs are virtualization at physical computer level. For this reason, a Container can start up almost instantly, while a VM takes relatively longer to start (say, a minute or two). There are three well-known Container technologies: Docker Container (Docker, Inc), Kubernetes Container (open source, originally by Google), and OpenShift Container (Red Hat). Like VM-based applications, there are applications hosted in Containers. Current cloud offerings include Azure Kubernetes Service (AKS) from Microsoft; Amazon EC2 Container Service (ECS) and AWS Elastic Container Registry (ECR) from Amazon; and Google Cloud Container Registry (CCR).
Container Engine – Just as Virtual Machines need the Hypervisor for their management, Containers also need the Container Engine to carry out the necessary management tasks such as deploying applications and Container Orchestration. In Short, Container Engineis to a Container as Hypervisor is to a VM. See Hypervisor.
CSP – short for Cloud Service Provider; (cf. ISP – Internet Service Provider).
Elastic, Elasticity – the ability of a cloud to transparently scale IT resources to adapt to workload changes. The Virtualization of computing resources as VMs or Containers, Serverless computing, and Scaling strategies are instrumental in the dynamic adaptation of capacity to varying workloads. Elastic Computing is sometimes used to describe this. If your application has widely varying workloads, then, cloud providers with greatest range of elasticity would be your prime consideration.
GCP – short for Google Cloud Platform; Google’s cloud computing platform.
Horizontal Scaling – see Scaling Out and Scaling In.
Hybrid cloud – A cloud deployment type as a composition of two or more deployment types (usually private and public) that remain distinct entities but are bound together, offering the benefits of multiple deployment models. Compare with Public cloud and Private cloud.
Hyper-V – a hypervisor developed by Microsoft for creating virtual machines on the Windows operating system (OS). Compare with VMware ESXi.
Hypervisor – a virtual machine manager (VMM) that creates and runs virtual machines. This can be computer software, firmware or hardware.
IaaS (Infrastructure as a Service) – cloud service delivery mode with the highest level of flexibility and management control by the customer. With IaaS, the customer configures and runs computers (as Virtual Machines) by installing the Operating System (OS), applications, etc and configuring storage and networking, etc. This is the closest to running own computing service except that the resources are based at cloud service provider’s datacenter. If you want to migrate to the cloud quickly with minimal or no code modification, IaaSprovides an easy option by moving your workload into cloud-based virtual machines (often referred to as lift-and-shift or re-hosting). As should be expected, with this simplicity comes more cost as the workload is not optimised for native cloud applications which PaaS provides. Compare this with PaaS and SaaS.
IBM Cloud – IBM’s cloud computing platform.
IDaaS – or IDentity as a Service, is an authentication infrastructure intended to provide identity and access management in the cloud, as in a single sign-on (SSO). IDaaS may be available as free or part of other subscribed services from a CSP (in which case the name IDaaS may not be that prominent), or could also be built, hosted and managed by a third-party service provider. Azure Active Directory is one example of IDaaS that can provide a range of secure identity and access management solutions across the cloud and onprem infrastructure.
Instance – A computer science term which means an execution of a program. If you open 3 Word documents on your computer, then, there are 3 instances of the Word program running on your computer. Instances run independent of each other and can be stopped from running independent of each other. In Cloud Computing, we often use the term instance in connection with scaling resources as in Scaling Up or Scaling Out. An application or service that is running to perform a certain task is an instance.
Lift-and-Shift – A relatively easy but not necessarily cost efficient approach to cloud migration, by simply porting applications and data resources to IaaS cloud platform with minimal changes to the existing code. While this approach has an advantage of faster deployment, it cannot take advantage of native features of cloud platform for performance and cost optimization. This approach is also known as re-hosting.
Microservices – software development style that structures an application as a collection of loosely coupled services. While the benefit of decomposing an application into different smaller services is well known (for instance, to improve modularity, make testing easier, etc), microservices are becoming more popular in cloud computing, because smaller and modularised services can be conveniently handled in cloud computing virtualization environment (for instance, hosting such applications or services with Containers or Serverless).
Microsoft Azure – Microsoft’s cloud computing platform.
Migration – see Cloud Migration.
Onprem – short for “on-premises” as in “on-premises IT system or resources”, a compound word which comes up again and again in cloud computing. It’s time that we adopt a combined and shorter term: onprem. Hope it’ll catch on.
Orchestration – In Cloud Computing Orchestration is often mentioned in the context of Virtualization and Containerization – more so with the latter. Orchestration in this sense is about aligning the business logic request with the services, data, and infrastructure. If two or more services are hosted in Containers, then, there is a need to coordinate these services (as a unit, by networking, or based on some definitions) to create a larger coordinated service. Such coordination is referred to as Orchestration, while the smaller containerized services are often referred to as microservices. See Microservices.
PaaS (Platform as a Service) – cloud service delivery mode which provides a platform allowing customers to develop, deploy, and manage applications without the complexity of building and maintaining the underlying infrastructure. With PaaS, customers focus only on application and data without much concern about the underlying resources such as virtual machines, networking, operating system, software updates, etc. A PaaS deployed app is a native cloud app, but the same cannot be said for IaaS. Compare this with IaaS and SaaS.
Private cloud – A cloud deployment type whereby the cloud infrastructure is operated solely for a single organization, whether managed internally or by a third party, and hosted either internally or externally. Compare with Public cloud and Hybrid cloud.
Public cloud – A cloud deployment type whereby the services are provided over a network that is open for public use. Compare with Private cloud and Hybrid cloud.
Refactoring – see Code Refactoring.
Re-Hosting – see Lift-and-Shift.
SaaS (Software as a Service) – cloud service delivery mode in which software is licensed on a subscription basis and is hosted in the cloud. Compared with the other cloud delivery modes IaaS and PaaS, SaaS is the least complex as it involves no application development, deployment or management. It’s is simply “on-demand software” directly consumed by customers. See also Virtual Appliance.
Scaling Out, Scaling In – [helps to know Instance first] Scaling out is the process of adding more Instances to support the load of your solution. For example, if a website front end were hosted on virtual machines, we could increase the number of VMs if the level of load increased (and use a load balancer to divide up workloads to multiple Instances). This is in contrast to scaling up, where we increase the capacity of a single Instance, rather than increasing the number of Instances. By the same logic, Scaling In is the process of removing instances that are no longer needed to support the demand. Scaling Out and Scaling In are called Horizontal Scaling.
Scaling Up, Scaling Down – [helps to know Instance first] Scaling up is the process where we increase the capacity of a given Instance. For example, a VM could be increased from 1 CPU and 4GB RAM to 2 CPU and 8GB of RAM to provide more processing capacity. On the other hand, Scaling Down is the process where we lower the capacity of an instance, as in reversing the example just given. Scaling Up and Scaling Down are also called Vertical Scaling.
Serverless – another buzz word becoming popular in Cloud Computing, e.g., Serverless Application, Serverless Computing, Serverless Architecture. With Serverless computing or Serverless application, the emphasis is on the computing or on the application without any concern about the provisioning and maintaining of servers. That is, the server, as we know it, is now abstracted away. As an example, Azure provides two developer services, namely, Functions Apps and Logic Apps for implementing Serverless Applications. Virtual Machines, Containers, and Serverless are often mentioned as computing architecture of decreasing complexity, in that order.
Service-Level Agreement – or SLA for short, is an agreement between a service provider and a service consumer in which the service provider commits to a standard of [legally binding] quality of service (QoS) based on measurable metrics and defined responsibilities. Service metrics typically include service availability, capacity, and throughput, all of which can be measured in various ways (and different providers may use different metrics). SLAs are often expressed as a percentage of service availability meeting a certain criteria, such as 99% or 99.999%. These percentages are sometimes referred to as two 9’s (99%), three 9’s (99.9%), three-and-a-half 9’s (99.95%), four 9’s (99.99%) or even five 9’s (99.999%). The more consecutive 9’s, the more challenging it’s to meet the SLA by detecting and recovering from outages. For instance, to achieve four 9’s (99.99%) or more, manual intervention may not be relied upon to recover from failures and the application must be self-diagnosing and self-healing (and no doubt the provider is expected to charge significantly more for this premium service). See availability percentage calculation on Wikipedia which gives more insights into uptime/downtime per year [month, week or day]. Here is a real example of legal SLA for the Azure Cloud covering various services.
vCenter Server – is the centralized management utility for VMware, and is used to manage virtual machines, multiple ESXi hosts, and all dependent components, typically in an enterprise IT environment.
Vertical Scaling – see Scaling Up and Scaling Down.
Virtual Appliance – [helps to know Virtual Machine first] A virtual appliance is a pre-configured software image, ready to run on a Virtual Machine manager (aka hypervisor). An image, in simple terms, is a file structure (usually compressed) containing everything that is required to restore it back to an installed-state of the software and depending on what is included for the installation, the file size can be a fraction of a GB to several GB (file type *.wim for Windows images; *.ova, *.ovf for virtual appliance images). Note from the definition that, a virtual appliance is not a complete virtual machine platform, rather a software image to run on a virtual machine manager. Virtual Appliance is a clever way of migrating enterprise applications to the cloud as SaaS by eliminating the installation, configuration and maintenance costs associated with running complex stacks of software (e.g., email servers such as Microsoft Exchange, databases, enterprise resource planning software, etc). If a Virtual Appliance based SaaS fails, it means you can spin up another one from the image quite easily (perhaps with some automation), which shows the power of a Virtual Appliance in the cloud.
Virtual Machine – or VM for short, is a software emulation of a physical computer. A number of VMs can be created on one powerful physical computer. You create a VM (directly or indirectly) in your cloud provider’s datacenter in order to run your application (whatever that application is, but having migrated your applications, you know what they are). On Azure, you can create a Windows VM or a Linux VM.
Virtual Network – a logically isolated network that is associated with a VM. Like physical networks, Virtual Networks have cloud-level private and public IP addresses, firewalls, and management and control mechanisms for network security, etc.
Virtualization – refers to the process of creating a virtual, rather than actual, version of something, such as VM or Virtual Network. Cloud Computing uses a lot of virtualization as a method of logically dividing resources (compute, network, storage, etc) between different applications and services.
VMware ESXi – a hypervisor developed by VMware for creating virtual machines. It includes and integrates vital OS components (such as a kernel) and therefore not installed on top of another operating system (OS). Compare with Hyper-V.
If you’ve got this far, chances are you may have found this article useful. If so, show your appreciation by voting with thumbs-up 👍 at the top so that I get a more realistic indication of readers interest in what I share in my spare time.
© 2018 Demessie Girma.