DevOps Glossary A-Z
Foggy on DevOps and Cloud jargon? In this article, I have covered 70+ DevOps and Cloud computing IT glossary from A to Z. It has definitions for most popular DevOps/cloud computing terms and acronyms.
Availability Zones are unique data center locations isolated from each other which protects your data and applications from unexpected failures. Based on the business requirements we can opt to have one or more availability zones depending on organization-specific needs.
An artifact specifically focuses on managing binaries, project dependencies around your software development process.
Agile focuses on the process of managing the workflow in software development and follows the iterative approach to software delivery which mainly targets continuous feedback, speed of delivery, and shortens release cycles throughout the sprint.
Automation in DevOps includes everything right from development, testing, deployment, and monitoring. A good level of automation will help organizations deliver higher productivity and free up resources to focus on what really matters.
A build-in DevOps refers to the process that converts the source code and files into the final software product (the end customer can use it). The build may container compiled files and other assets
is the practice typically used to monitor the source code commits (merge pull request to GitHub) and trigger build automatically based on the polling source control changes or regular interval. Upon the successful completion of build and QA, the build will be promoted to UAT, Staging, Production environment respectively.
is the process of having a manual or automated test suite every hour or day to make sure the code quality quite often with the release level branches.
is the practice of ensuring source code is always in a deployable state. This means a deployable entity ( new features, bug fixes, configuration changes .. etc) are always ready in an environment with appropriate approval process (Dev Signoff, Qa Sign Off, Load test signoff, DR Testing, Prod rollout … etc ) so that new changes are released to customers quickly in a sustainable way and production-ready.
It is the practice used to monitor for successful builds that have passed QA, and successful builds will be deployed in a production environment automatically. Unlike Continuous Delivery, there is no manual approval step before releasing it into production.
The container is a running instance of an image that includes application + dependencies. You can have as many as running containers of the same image. Compared to virtualized instances, containers don’t require a full operating system for every instance. (Ex: docker) Multiple containers can run in the same machine and share the Operating system kernel with each other containers.
Cloud computing is the on-demand delivery of IT resources via internet technologies with pay-as-you-go pricing. Instead of owning physical data centers, you can access Computing power, storage, and databases on a pay-per-use basis.
An application deployment model used to ‘burst’ from a private cloud into a public cloud based on a spike in computing demand. A positive cloudburst shows that the cloud-based application is capable enough to manage the application scalability.
Cloud migration is the process of moving data, applications, or other business elements to a cloud computing environment. There are various types of cloud migrations an enterprise can perform. One common model is the transfer of data and applications from a local, on-premises data center to the public cloud.
Cloud-Native applications have been specifically developed for cloud platforms. They are designed to be scalable, resilient, and manageable in modern dynamic environments such as public/private/hybrid clouds. It also delivers maximum business value at the pace of business needs.
Cloud Operating System
Refers to a specialized OS that manages the virtualization and cloud computing (Virtual machines, Servers, Infrastructure, and hardware and software resources of the host system) environments.
Cloud platform refers to an on-demand service hosted over the internet (pay-as-you-go) which facilitates the processing and deployment of applications without the complexity and pay-as-you-go for technology services, such as computing power, storage, and databases, on the needed basis from a third-party cloud provider like AWS, Google Cloud and Azure, etc.
Cloud portability refers to the ability to transfer data and applications between cloud environments without disrupting standard processes and operations.
Cloud Service Provider
Cloud Service providers deliver IT services to individuals and businesses over the internet via an on-demand and pay-as-you-go system as service. In other words Software as a service (SaaS), or Infrastructure as a Service (IaaS), or Platform as a service (PaaS).
Cloud Provisioning refers to the allocation of a cloud provider’s resources to the customer. Its key feature is the deployment and integration of an organization’s cloud computing services within its infrastructure.
Cloud Security Alliance
Cloud Security Alliance (CSA) is a non-profit organization that is dedicated to raising the awareness of best practices for providing security assurance within cloud computing environments. It provides education, cloud security-specific certification, research, products and helps secure other forms of computing.
A Cloud storage model is a model that stores the data in the third-party managed physical storage servers which are remotely manageable and accessible. It’s delivered on-demand and gives you the ability to be global scale and durable, with “anytime and anywhere” data access.
Docker is a container platform to build, secure, and manage an array of applications from development to production both on-premises and in the cloud.
Public registry used to upload the images. It also provides docker image hosting, public/private registries, and integration with Github and Bitbucket.
DevSecOps a new practice came along quickly by shifting security a lot to the “Left” most point of the software development lifecycle.
Refer the post for DevSecOps
Distributed computing is a model in which components of a software system, such as applications and data are shared among multiple computers and runs as one system to improve performance and efficiency.
Dark Launch, is a practice of releasing new features to a limited set of users. Based on the feedback from the limited audience, the features will be either choose to release the product to the full user base or make further improvements and fixes. In this way, a development team can deploy new features quickly and test in the production environment without affecting current users.
Unlike Scalability, Elasticity meets short-term, tactical needs. It provides necessary resources when needed and handles workload demands for a shorter period of time.
Extensibility is the design principle, which has the ability to extend a system or add a new framework and run-time support to the existing system/functionality without impairing existing system functions.
Google Kubernetes Engine
Google Kubernetes Engine is a managed environment for deploying containerized applications. It makes it easy to deploy, update, and manage applications and services. Basically, GKE consists of multiple machines (Group of compute engine instances) grouped together to form a cluster.
A distributed architecture of multiple computer resources from various domains that are combined together to solve a complex problem. Unlike traditional networks, in grid computing, the computers on the network can work on a task together to solve a problem that is too complex for a stand-alone machine.
Gradle is an open-source build management tool. It introduces a Groovy-based domain-specific language (DSL) instead of the XML form (like Maven or Ant) for declaring the project configuration.
Git is a distributed version control system that lets you manage and keep track of your source code history.
GitHub is a cloud-based hosting service that lets you manage git repositories.
A hybrid cloud is a solution that combines a private cloud with one or more public cloud services, with proprietary software enabling communication between each distinct service. Hybrid cloud services are powerful because they give businesses greater control over their private data.
Helm helps you to manage (package manager) Kubernetes applications. It allows developers to more easily define, install, package, configure and deploy applications and services onto Kubernetes clusters
Infrastructure as a Service
Offers only hardware and administration, leaving the customer responsible for the Operating System and other software.
A container image is a lightweight, standalone, compiled version of a docker file that is built up from a series of read-only layers. It includes everything (Runtime, tools, system libraries) needed to run regardless of the environment.
Infrastructure as Code — one of the key DevOps practices. IAC is the process for managing and provision IT infrastructure as software.
Jenkins is an automation server written in Java. Jenkins helps to automate the software development process, with continuous integration and aids with continuous delivery. It supports various version control tools and it can integrate with Github, Maven, Gradle, and other build utilities and can be extended by a wide range of plugins (Free as well as Paid).
Jira is originally designed for bug tracking and issue tracker. But today Jira has evolved into a powerful work management tool for all kinds of use cases, from requirements and test case management to agile software development.
Kubernetes is an open-source platform that helps to manage containerized applications across multiple hosts. It provides a lot of features for containerized applications, such as autoscaling, automating deployment and storage management, etc. It groups containers that make up an application into logical units for easy management and discovery.
Refer post for Kubernetes Architecture
Apache Kafka is a distributed data store that is based on a publish-subscribe messaging system. Generally used for processing (real-time) streaming and ingesting data. Streaming data is nothing but data that is continuously generated from one or more data sources.
Load balancing refers to either software or hardware that distributes the data among multiple servers in order to improve the performance and reliability of websites, services, applications, and databases.
Refer post for Load balancing
A maven is a build tool used to manage projects primarily written in Java. It will also support and manage projects written in Scala, C#, and other languages. The Maven project is hosted by Apache software foundation where it was formerly part of the Jakarta Project.
Multitenancy refers to the mode of operation of multiple systems, applications, or data from different enterprises operating in a shared environment. It is common to most cloud-based systems which are logically isolated, but physically integrated.
Nexus is a repository manager. It allows you to proxy, collect, and manage your dependencies from a single point. It also allows for the distribution of software via Jenkins, Maven or Gradle. It facilitates collaboration by making artifacts available to other developers.
Orchestrator enabled you to manage Containers, Images, container networking, load balancing, configuration, service discovery, high availability, and more. It is responsible for running, scaling, distributing workloads across a collection of nodes. Typical orchestrator products would be Kubernetes, Docker Swarm, AKS, GKE, and more …
Openshift is Kubernetes distribution (Platform-as-a-Service) which provides development environments on-demand. It provides languages, frameworks, runtime, and databases and automates application lifecycle management (Build, Deploy to one or more hosts).
Jenkins Pipeline is a combination of plugins that are being used for implementing a Jenkins job. This job includes continuous integration and continuous delivery of jobs, such as Build, Deploy, Test, and Release. Overall it helps to deliver the software continuously.
The basic deployable unit containing one or more processes in a co-located container.
DevOps Playbook is a step by step process to achieve the DevOps maturity for each application. The playbook will have the standardization on how DevOps is adopted across all the applications and organizations.
The private cloud will have the services offered to only selected users over the internet or over the internal network, it is not available to the general public.
The public cloud will have the services offered to the public and available to everyone who purchased the service.
Platform as a Service
A way for customers to lease operating systems, storage, hardware, and network capacity over the Internet from a cloud service provider.
Quality Assurance is a way of establishing and maintaining a set of processes to prevent mistakes and defects before delivering the product to the customer. It fosters customer confidence and organization credibility to use a bug-free product without any downtime.
A repository is a place to store all of your version-controlled code, Assets, library, service, etc.. enabling one or more developers to collaborate on the code, keeping a history of all changes labeled with different tags.
Registry usually contains docker images. The default public container registry that supports the open-source community is the Docker hub which serves as a general catalog of images. Note: Recently docker hub has a new restriction of 100 pulls per six hours (Free users) and, 200 pulls per six hours (Authenticated free users), and Docker pro and Team subscribers have full access.
Scalability is the ability of system infrastructure to consistently maintain full functionality despite growing workload demands. Unlike elasticity, it supports long term, Strategic needs.
Software as a Service
Software as a Service allows organizations to access business functionality via web-based software, on-demand software, or hosted software. The SaaS provider will manage the access to the application including availability and performance.
Sonar is an open-source platform used for continuous inspection of code quality and automatic reviews with static analysis of code to detect bugs, code smells, and security vulnerabilities in a large number of programming languages. It can also be integrated with popular IDEs such as Eclipse and IntelliJ. It’s the greatest benefit is to provide fully automated analysis and integration with Maven and Gradle and CI tools such as Jenkins.
Terraform is open-source infra as code created by HashiCorp and written in the Go programming language. It manages external resources such as public/private cloud infrastructure, software as a service, and platform as a service with different cloud providers such as AWS, Azure, GCP, IBM Cloud, Oracle Cloud …. Etc.
Unit testing is the practice of writing a series of positive/negative cases and validating the behavior of code at the level of functions & classes in isolation.
User Acceptance test also refers to end-user testing, carried out before the software product goes to live and it is one of the last stages of the software development cycle. This is the last chance to test the software and sign-off.
The vendor lock-in refers to a situation in cloud computing where a client is dependent on a specific cloud service provider technology implementation and has no ability to move between different vendors without significant costs.
Virtual Private Cloud (VPC)
VPC is a cloud model where the respective cloud service provider isolates various resources to form individual (Virtual Network) private cloud environments.
YAML is a human-readable data-serialization language. It is commonly used with all programming languages and any application that needs to store or transmit data. it is more often used to write configuration files.
Zookeeper is an open-source project that provides centralized service for maintaining configuration information, distributed synchronization, and providing group services for large clusters in distributed systems.