In the constantly changing world of cloud, it can be hard to keep up. That’s why Just After Midnight are putting together your one-stop-shop for definitions and explanations and definitions of key cloud terms. Keeping popping back, as we’ll be expanding this list monthly.
Glossary of cloud terms
VM Stands for…virtual machine
This is when part of a server is isolated to create a virtual computer. VMs are a backbone component of cloud computing.
VMI Stands for virtual machine interface
This is a template of a VM: a preset of specifications.
An instance is a term used to refer to a single VM: an instance of that VM. Think of it as the word copy when referring to a DVD, e.g. a ‘copy’ of Harry Potter and the Chamber of Secrets
SaaS stands for software as a service
This refers to the provisioning of software via the internet, e.g Google Sheets or MailChimp.
IaaS stands for infrastructure as a service
This refers to the provisioning of computer infrastructure over the internet, e.g. Microsoft Azure or Amazon EC2.
PaaS stands for platform as a service
This refers to the provisioning of computing platform over the internet, e.g. AWS Elastic Beanstalk or Heroku.
FaaS stands for function as a service
This refers to the provisioning of stateless compute containers, in which an application’s server-side logic is run, e.g AWS Lambda or Google Cloud Functions.
VMaaS stands for vulnerability management as a service
This refers to the practice of monitoring threats and vulnerabilities and providing remediation/support.
XaaS stands for anything as a service
This refers to all of the above: anything thing that can be provisioned as a service over the internet.
CDN stands for content delivery network
This refers to a geographically distributed network of servers able to supply various elements of HTML webpages to users within their area. This creates redundancy and reduces load times.
IaC stands for infrastructure as code
This refers to the practice of provisioning infrastructure through code with tools like Terraform or AWS Cloud Formation.
Glossary of DevOps terms
DevOps refers to a set of cultural and technical practices in software development. It comes from a combination of ‘agile’ practices with the integration of development and operations work.
The benefits of DevOps are typically given as increased creativity, faster time to market and more robust products.
Agile development means
Agile development predates DevOps, referring to a software development philosophy emphasising iterative design and cross-team working.
The practice of integrating security into all stages of DevOps.
CI/CD stands for continuous integration/continuous delivery/continuous deployment
CI/CD encompasses a coding philosophy and set of practices geared toward developing more quickly and with fewer bugs.
- Continuous integration refers to the frequent adding of code into code repositories in which that code can be automatically tested for bugs and integration. Automatic testing is stressed in CI.
- Building on continuous integration, continuous delivery places emphasis on automated release, allowing code to be released to users at the push of a button.
- Continuous deployment builds further on continuous delivery, essentially removing the button push: in continuous deployment, all code that passes automated testing is deployed without any human input.
Fail fast means
An approach which involves early far-reaching experimentation to test ideas’ value and find failure points.
ARA stands for application release automation
This refers to the practice of using scripts and tools to achieve repeatable, streamlined deployments of updates, features or applications from development to production.
Monoliths, microservices and other miscellaneous meanings
Monolith to microservices means
Monolithic and microservices are both styles of programme architecture, the phrase monolith to microservices can refer both to the transition of one particular application from monolith to microservices (also called refactoring) and to the trend within the industry toward microservice applications.
A monolithic application is really just a non-microservices-based application. In contrast to microservice-based applications, the component elements are not easily separated.
Microservice applications are made up of smaller, more modular components, meaning they can be swapped our or altered without damaging the other components they’re connected to.
The benefits of microservice applications are commonly given as the ability to combine different components best-of-breed services and to work on individual components – e.g the search, shopping cart and photo carousel function on an e-commerce page – in isolation.
A container is similar to a VM in that both are a type of virtualisation. However, containers have smaller components and share more with the host hardware.
This makes them ‘lighter’ and more able to function in a range of different environments. Containers can be developed using a container engine like Amazon ECS, Docker or Kubernetes.
For further information on any of the concepts in this post, or for anything else, get in touch here.
Edge computing means
Edge computing refers to the practice of carrying out requests as close to the source as possible on IoT devices. This reduces latency.
IoT stands for internet of things
This refers to devices connected over a network that can send and receive information without human input, an example would be a pressure control system in a factory that sends/receives data from another unmanned device.