DevOps glossary: 78 basic DevOps terms explained in simple words
Despite the DevOps approach to software delivery and infrastructure management is nearly a decade old, there is still some confusion regarding basic DevOps terms, so we explain them a bit.
DevOps culture of collaboration between the business departments is essential in enabling the successful digital transformation. However, there still is a lot of confusion regarding the principles of DevOps services, the tools needed, the practices endorsed and even regarding the DevOps terms used throughout the workflow. This makes the transition to DevOps seem less predictable and useful. This leads to the situation, where huge numbers of businesses are afraid of adopting new technology and opting for DevOps services, simply because they do not understand half the words the Managed Services Providers say!
For example, while 41% of businesses are already using DevOps methodology in their operations, 59% are still not ready to make the move, as the report on the state of DevOps adoption as of 2017 shows. However, in the fast-paced business world of 21st century, in order to survive and succeed the business must be able to adapt to changing market conditions and customer requirements faster and better than the rest of the competition. From this point of view, understanding the DevOps terms is the first step to accepting the DevOps model of business.
Thus said, IT Svit composed a huge, yet by far not exhausting list of DevOps terms, explained in simple words. The list will be extended over time, so feel free to bookmark this page and require explanations for any terms we missed. The terms are given in no alphabetical order.
Amazon AWS — Amazon Web Services — the most popular cloud service provider (CSP) according to the aforementioned State of DevOps report of 2017, offering a wide variety of cloud computing services for businesses of all sizes.
Ansible — an automation engine for various IT tasks, like cloud infrastructure provisioning and configuration. Ansible is an open source tool that interacts with multiple software modules via SSH connection, PowerShell scripts or various APIs.
API — Application Programming Interface, a set of clearly stated rules for communication between various software modules.
Apache — one of the most popular open source web servers (second only to NGINX), a cross-platform tool for launching websites and applications.
ALB — Application Load Balancing — an AWS service used for splitting the incoming traffic between multiple application instances across multiple Availability Zones to ensure your app runs smoothly.
ASG — Auto Scaling Group — an AWS service used for combining multiple EC2 instances in logical groups for the sake of infrastructure design and management simplicity; the group is comprised of identical instances that are added or removed to meet the workload demands.
AWS CLI — AWS Command Line Interface — an AWS tool for managing various AWS services and products from a command line terminal.
Amazon Aurora — an AWS service, providing a cloud-based relational database, which became the most rapidly growing service in AWS history. This database is 5 times faster than MySQL and 3 times faster than PostgreSQL, not to mention it is a default database for many AWS products and services.
Asterisk — the open source platform for phone calls over the Internet. It is one of the most flexible solutions and can interact with multiple software tools via APIs, enabling multifunctional and efficient inter-business communications.
Bastion host — a special server used to access private networks and withstand hacker attacks. Usually hosts a single app (like a proxy server) and SSH keys for accessing and managing the underlying cloud infrastructure. IT Svit uses bastion hosts to provide resilient infrastructure on AWS or any other cloud platform.
Bucket — a logical unit in Amazon S3 (Simple Storage Service), used for storing multiple types of objects (mostly various data and the metadata that describes it).
Backup — a process of copying the important data to provide the reserve copy and enable restoration on demand, as well as the result of the backup process, an archive with files.
Back-end — the program engine that the user has no direct access to. This engine receives requests from the user interface and performs certain operations, including loading and saving the data to the database, etc.
Build — a specific version of program code, mostly referred to as the stage of new feature development. The most important builds are Canary builds, where the new code is tested for compliance with the existing app functionality in the production environment before being shipped to the customers.
Bare-metal — the case when the software is installed on the physical devices (hard disks), omitting the virtualization layer.
Cloud computing — a dominating IT paradigm of accessing over the Internet the networks of virtual servers for collecting, processing and storing data, running apps and managing other resources. An opposite of using dedicated servers or personal computers for that purpose.
CI/CD — Continuous Integration/Continuous Delivery — the basis of the modern DevOps culture. CI ensures the new code is committed to the centralized code repository several times a day to pass automated unit tests and spin up the new software builds. If the tests are successful, CD ensures the new app version is automatically pushed to staging and production environments, without any service downtime. CI/CD workflow ensures all the bugs are found and fixed early and the product is available at all times.
Cluster — a set of interconnected instances (bare-metal servers, virtual machines, Kubernetes pods, etc.) that are treated as a single entity to enable load balancing, auto-scaling, and high availability.
Commit — the process of pushing the code to the Git repository and the resulting piece of code pushed.
Cron job — a scheduled process that will run a certain script on a server at the certain time.
Container — a software envelope separating the app and all resources required to run it from the infrastructure it runs on. Due to using Docker containers, any apps can run on any OS with Docker and any issues of a single container don’t affect the rest of the system.
CloudWatch — Amazon CloudWatch is the default Amazon service for monitoring the infrastructure and apps running on it. CloudWatch helps monitor and log the events, configure smart alerts and manage the system resources efficiently.
Docker — an open source platform for building, delivering and running app containers. Docker is the basis of modern cloud computing, as it allows to leverage the cloud resources with utmost efficiency, providing a ubiquitous layer for building the cloud infrastructure.
Dockerfile — a textual description of the Docker container build process, containing all the commands required. Dockerfiles allow easy and efficient configuration and management of Docker container creation and launch.
Docker Swarm — a container orchestration engine developed by Docker. It is a built-in Docker container clustering and scheduling tool capable of running thousands of containers at once. Unfortunately, it cannot boast the same functionality as Kubernetes and is literally out of use as of mid-2018.
Deployment — a stage of the software delivery lifecycle, centered at packaging the new software code, delivering it to the customers and updating the running apps, preferably without interrupting the end user experience.
Django framework — a high-level Python framework oriented at clean design, rapid development and high performance of the apps. Has found wide adoption in web development and Big Data processing.
Datadog — an efficient cloud monitoring service, allowing to analyze the processes within any infrastructure, database or app at any scale, using a SaaS-based platform.
Environment — all the server resources (OS, libraries, APIs, tools, and frameworks, etc.) needed to run the software on various stages of its lifecycle (development, testing, staging, production).
ElasticSearch — a RESTful, distributed engine for data search and analytics, built on Apache Lucene. As a heart of Elastic stack, Elasticsearch allows to store and process the data from multiple cloud monitoring and logging tools.
Envoy — a heavy-duty C++ proxy for processing the traffic between the microservices.
EC2 — Amazon Elastic Compute Cloud — the central offer of Amazon Web Services, providing multiple types of virtual servers for running applications in the cloud.
EKS — Amazon Elastic Computer Service for Kubernetes — a managed Amazon service that allows anyone to deploy and run Kubernetes on AWS infrastructure without the need to look under the hood and configure the clusters themselves.
FluentD — an open source data collection and processing tool written in Ruby. It allows input from a huge variety of tools like ElasticSearch and provides output to a wide selection of dashboards configured with multiple plugins.
Fargate — Amazon Fargate is an Amazon service for running Docker containers on managed infrastructure like EKS, without having to configure anything. It works under the serverless computing billing scheme — you specify what needs to be done and pay for the resources consumed, without any manual cluster configuration.
Git — a distributed code version control system. Every developer using Git has access to a full copy of the project code and history of changes to enable collaboration within the teams.
GitHub — the most popular web-based hosting for code, running all Git features and adding its own functionality. GitHub is the beating heart of open-source and proprietary software development.
GitLab — an open source web-based Git portal tuned for DevOps performance, due to the built-in support of CI/CD tools like Gitlab CI.
Gitlab CI — a CI/CD runner for Gitlab, which allows the developers to build their code automatically after each commit.
Helm — an application manager running atop Kubernetes. This tool allows managing the microservices at scale through convenient Helm charts and ensures smooth operations of complex Kubernetes infrastructures.
Infrastructure — the whole complex of hardware, software, and processes required to run apps, as well as to collect, manage and store data. One of the most important benefits of DevOps practices is using the immutable infrastructure, which means that in case of error a clean state of infrastructure is launched immediately, rather than trying to fix the issue and suffering from downtime in the process.
IaC — Infrastructure as Code — one of the nimble superpowers of DevOps. It means that infrastructure configuration is done with machine-readable declarative files, not manually or using interactive tools. These files (like Kubernetes or Terraform manifests) can be stored in GitHub repositories, adjusted and versioned the same as code, thus providing efficient automation of infrastructure provisioning.
IaaS — Infrastructure-as-a-Service — the IT management model, where the computing resources and the tools needed to run them are provided as a service to enable the functioning of various platforms and apps.
Image — a Docker image is an immutable snapshot of a container, including the instructions on how to build a working Docker container for an app.
InfluxDB — an open source database for processing time series events. It is written in Go and used in infrastructure monitoring, high-availability data storage, and real-time analytics. It works best with DevOps tools like Prometheus and Grafana.
Instance — in short, this is a virtual machine you run your app on. In broader terms, this is a single group of resources needed to run an app (like a Docker container, for example).
I/O throughput — the number of input/output operations per second, a characteristic of data transfer capacity of a network or a drive.
Ingress controller — a software module used to provide load balancing in Kubernetes pods.
Jenkins — an open source Java server enabling software delivery automation out-of-the-box.
Jenkins job — a process in Jenkins, needed to build code, run unit tests, generate code quality metrics, deploy the new app versions to production, etc.
Microservices — an example of the service-oriented approach in software architecture (SOA), the practice of splitting the monolith application into a bunch of loosely coupled services responsible for a certain aspect of operations. These fine-grained services interact via lightweight protocols and APIs to provide product flexibility and scalability.
MongoDB — one of the best and most popular open source NoSQL databases specializing in storing various types of documents in forms of libraries, rather than in tables with columns and rows. This means the data stored can be easily adjusted and even the structure of the database itself is quite flexible, which is hugely beneficial for Big Data analytics projects, where there are multiple data types processes at various periods of time.
Node — a physical or virtual machine within a Kubernetes cluster, used to host pods that run Docker containers.
Node pool — a Kubernetes node pool is a group of several cluster points uniting the machines with the same configuration, which can be essentially treated and managed as a single entity.
Nexus3 — a release control platform from Sonatype, built for combining inputs from multiple open source modules to ensure fast, secure and efficient software delivery lifecycle.
Nginx — the most popular web server nowadays. The built-in capacities for load balancing, reverse caching and proxying make it a great choice for many use cases.
Orchestration — a practice of automating the IT tasks (container management and infrastructure configuration in particular) in the context of SOA, virtualization, environment provisioning. In short, it is a process of executing predefined tasks using predefined scripts executed with interactive tools like Terraform (which was built specifically for configuration orchestration purposes).
Open source — the software delivery paradigm, where the copyright holders grant the users the access to the app source code and the rights to read, adjust and distribute it to anyone for any goal.
OpenStack — an open source platform for building on-prem cloud infrastructures.
OpenShift — enterprise-grade container management platform for Kubernetes running on on-prem cloud infrastructures, developed by Red Hat.
Prometheus — an open source cloud monitoring solution with a powerful query language, time series database, dimensional data model and smart alerting capabilities.
Pod — a basic Kubernetes structure unit, a group of Docker containers deployed to a single host.
Playbook — Ansible playbooks are the instructions for infrastructure deployment, with detailed guides on executing the series of commands to perform specific tasks.
ProxMox — an open source Debian-based platform for deploying and managing virtual machines.
RDS — AWS Relational Database Service, a cloud database benefitting from a distributed nature of AWS services.
Rolling update — a process of smooth updates for an app without any downtime, performed instance by instance. It uses Kubernetes to ensure uninterrupted app availability and positive user experience.
RabbitMQ — a message broker, a software used to collect messages from your apps and store them until they are required for operations.
S3 — Amazon Simple Storage Service — a cloud computing service for storing any data objects, required for stable operations of your applications.
Snapshot — Amazon EBS snapshot is a tool for creating a static copy of your EC2 instance content for the purposes of backup and restoration.
Terraform — an open source infrastructure orchestration software from Hashicorp. Terraform automates infrastructure deployment and management through the use of declarative Terraform manifests, which can be stored and versioned as the code to ensure repeatability and DevOps workflow continuity.
Unit testing — the basis of CI/CD, unit testing is the practice of testing the app code in small chunks against the automated test codebase before building the app, to minimize the time needed to discover and fix the bugs, reducing the time to market for a product as a result.
Virtual machine — a basic unit of the cloud computing systems, an emulation of a physical server running under a supervisor.
VPC peering — AWS VPC is a service that logically isolates a certain amount of public AWS cloud to create virtual private clouds. AWS VPC peering allows to combine the resources of several such clouds should the need arise.
Vault — a Hashicorp product for securely storing the secrets like SSH keys, tokens, passwords, API keys and other important elements of Kubernetes infrastructure.
Zabbix — an open source cloud infrastructure monitoring service for tracking the status of various network resources and services. Consists of a server and agents that enable smart alerting for distributed systems.
Final thoughts on basic DevOps glossary from IT Svit
The list of DevOps terms above is in no way complete or comprehensive. We will update it from time to time and will be grateful for your questions. Should you require any more explanations — please leave your requests in the comments below!