The software design philosophy, also known as “DevOps,” brings with it not only an innovative new way of creating applications but also a whole raft of new terms. Since one of the best ways to understand a culture better is to learn its language, we present forty terms that anyone curious about DevOps should know.
An Agent is a program residing on particular physical servers to execute multiple processes on that very server.
Agile Software Development
A philosophy and methodology for software development, with an emphasis on user feedback, the quality of software, and the capability of fast response to new product requirements and other changes.
Application Release Automation (ARA)
The deployment of software releases to several different environments and their configurations, but with minimal human involvement.
Behavior-Driven Development (BDD)
An Agile software development methodology that encourages collaboration and teamwork between software developers, Quality Assurance, and business participants in any given software project.
An agent used in continuous integration that can be installed locally or remotely, depending on the server. The agent sends and receives messages relating to the creation of software builds.
Referencing how canaries were brought into coal mines to test the air, this is a go-live strategy where a new application version gets released to a small batch of production servers, then monitored closely to determine if it runs as it’s supposed to. If the version proves to be stable, it’s rolled out to all of the production environment.
This test determines the user capacity that a computer, server, or application can support right before failing.
A means of recording changes to a repository, then adding a log message, is outlining the selfsame changes.
When uncommitted hotfixes and manual changes are applied to software and hardware configurations, the latter becomes inconsistent with the master version. This is often a common reason for technical debt.
An engineering process for creating consistent system settings, including physical attributes, performance, and function, as well as keeping them that way. This is meant to keep a system aligned with its initial design, requirements, and operational information.
An operating system (OS) level method of virtualization employed for the deployment and running of distributed applications without having to launch an entire virtual machine for every use.
A software package is a standardized unit that includes everything needed to run the software, including code and dependencies. Containers enable an application to run in a fast and reliable manner when it’s moved from one computing environment to another.
An approach to software engineering in which integration, automated testing, and automated deployment capabilities continuously allow new software to be repeatedly developed and deployed swiftly and with a high degree of reliability, but with little human intervention.
A development practice for software releases in which every code commit that passes through automated testing is sent to the production environment, which results in a large number of daily production deployments. It accomplishes the same tasks as Continuous Delivery does, but the former is fully automated, completely removing the human element.
A software development practice where developers merge all of their working copies of code into a shared repository often, ideally several times a day.
A systemic process that involves finding and fixing any software glitches and bugs during every part of the software development cycle. It is considered a part of both the continuous integration and continuous delivery processes.
The process of running automated tests as part of the software delivery pipeline across all environments to obtain immediate feedback on the code build quality.
A development strategy in which a new version of the code, one that implements new features, is released to your team or a subset of the organization’s users, but is either not visibly activated or is only partially so. This process is similar to a Canary Release.
The bringing together of all the processes necessary to that make hardware or a software program available for use, which includes all installations, configuring, testing, and moving that program to its home environment.
An automated multi-step process that takes software from version control to making it available to an organization’s users.
A fusion of the words “development” and “operations,” describing a design philosophy where development and operations teams collaborate on software development and deployment. The goal of this new process is to increase software production agility while achieving business goals.
The process of bringing security into DevOps methodology and giving it a significant role.
A software architecture pattern where the system both produces messages or events, and is built to react to, consume, and detect other events.
A testing process where human testers are given free rein to test areas that may potentially have issues that automated testing couldn’t detect.
A design strategy characterized by a rapid turnaround, where an attempt fails, is reported on time, feedback is quickly returned, the changes are made, and a new attempt is made.
This term means "the real place" in Japanese, and in the context of the business world, it often means “where value is created.”
A process where programmers and quality assurance experts can track the flow of both defects and new features, starting at identification and concluding with resolution.
In the world of manufacturing, this is the time involved in moving a work in progress (WIP) to a finished state. In the world of DevOps, the context changes to moving code changes to production.
Mean Time Between Failures (MTBF)
A calculation of the average amount of system downtime resulting from failures, it measures the reliability of a given system or components.
Mean Time to Recovery (MTTR)
The average amount of time needed for a system or component to recovering from failure and be returned to production status.
A pattern of architectural design wherein complex applications is composed of a suite of smaller modular services or components that communicate with each other using language-agnostic APIs.
The last stage in the software deployment pipeline, where the target audience will finally use the application.
The testing of a software application to confirm that any recent changes made to an application haven’t adversely affected any features that were already in place.
Using tools such as XL Release to manage software releases, taking them from the development stage to the actual software release. This includes the definition, automation, security, monitoring, and control of the manual and automated tasks
Returning a database or program to a previous state, either manually or automatically.
Also called revision control or version control, this is a process for storing, tracking, and managing changes to code, documents, websites, and other pieces of information. This is usually achieved by generating branches off of the software’s stable master version, then merging the stable feature branches back into the latter.
An almost replica of a production environment for software testing. It’s used to test the newest software iteration before it goes live, using an environment that mimics live production as close as possible.
The extra development work that results when an easily implemented code is used in the short run, rather than the application of the best overall solution. In other words, the cost of a short-cut.
Using specialized software (apart from the software being tested) to control the execution of tests and compare actual outcomes against predicted outcomes.
Are you skilled enough to begin a career in DevOps? Try answering these DevOps MCQs and find out now!
A testing strategy that involves isolating the smallest unit of testable code is separated apart from the rest of the software and running tests on it to see if it functions as it’s supposed to.
Want to Know More About DevOps?
Now that you can speak the language, have you considered a career in DevOps? Or perhaps you’re already working in development, but want to upskill?
Whatever the reason or motivation, Simplilearn can help you master DevOps. The DevOps Certification Training helps you prepare for a career in this fast-growing field that bridges the gap between software developers and operations. You’ll become an expert in the principles of continuous development and deployment, automation of configuration management, inter-team collaboration, and IT service agility, using modern DevOps tools such as Git, Docker, Jenkins, Cucumber, Ansible, TeamCity, and Nagios.
Whether you choose to use self-paced learning, Online Classroom Flexi-Pass, or a corporate training solution, you will have access to 56 hours of in-depth blended learning, two dozen live demos of the most popular DevOps tools, real industry projects with integrated labs, and of course 24/7 support with dedicated project mentoring sessions.
Simplilearn also offers a DevOps Engineer Training. The program is built around a structured learning path recommended by industry experts. You will get access to 120+ live instructor-led online classes conducted by trainers who are experts in the field. You also get access to 90+ hours of high-quality e-learning, real-life case studies, chapter-end quizzes, simulation exams, and a community moderated by experts. Upon completing the requirements of the learning path successfully, you will be awarded the master's certificate from Simplilearn.