Terms Flashcards
A collection of Agile and DevOps terms from the Internet.
Agent
A program installed on specific physical servers in order to handle the execution of various processes on that server.
A/B Testing
A technique in which a new feature, or different variants of a feature, are made available to different sets of users and evaluated by comparing metrics and user behavior.
Acceptance Testing
Typically high-level testing of the entire system carried out to determine whether the overall quality of both new and existing features is good enough for the system to go to production.
Agent
An agent is a program installed on specific physical servers in order to handle the execution of various processes on that server.
Agile
A precursor to Devops; Agile is a software development and, more broadly, business methodology that emphasizes:
- Short, iterative planning and development cycles
- to provide better control and predictability, and
- Support changing requirements as projects evolve.
Agile Manifesto
The formal proclamation of values and principles to guide an iterative and people-centric approach to software development.
Agile Organization
A flexible company capable of rapid response and adaptability to both expected and unexpected opportunities and threats.
Agile Project Management
An iterative and incremental method of software design and development in which developers work closely with users using just enough information to start planning and execution.
Agile software development
A software development methodology and philosophy, focused on user feedback, software quality, and the ability to respond quickly to changes and new product requirements.
Antifragile
A term coined by professor Nassim Nicholas Taleb about a property that allows systems to increase in capability or performance as a result of stress, mistakes, faults or failures.
Application Release Automation (ARA)
A practice of deploying software releases to various environments and their configurations with as little human interaction as possible.
ARA
Application Release Automation
Artifact
Any description of a process used to create a piece of software that can be referred to, including diagrams, user requirements, and UML models.
Automation
The technology by which a process or procedure is performed without manual intervention. In DevOps, automation allows for the creation of real-time reports, integrating various tools used by different stakeholders, and workflows-integrating technology to bring tools together from different domains and break down the silos.
Autonomy
The ability to make changes with the resources currently available, without the need to defer to something or someone higher up in the hierarchy.
Behavior-Driven Development (BDD)
An evolution of test-driven development that focuses on collaboration between development and business stakeholders to define user stories that determine the development of the application using a human-readable DSL.
* DSL: A domain-specific language is a computer language specialised to a particular application domain.
Black Box Testing
A testing or quality assurance practice which assumes no knowledge of the inner workings of the system being tested, and which thus attempts to verify external rather than internal behavior or state.
Bottleneck (Lean)
A step in a process that limits the total capacity of the process or system.
Branching
The duplication of an object under review in source control so that the same code can be modified by more than one developer in parallel.
Build Agent
A type of agent used in continuous integration that can be installed locally or remotely in relation to the continuous integration server. It sends and receives messages about handling software builds.
Build Artifact
The resulting application or object created by a build process. Typically this involves source code being compiled into a runtime artifact. In the Java ecosystem, this involves Java source code being compiled into a JAR or WAR file.
Build Artifact Repository
Centralized storage for all binaries used during build.
- Simplifies dependency management and build processes,
- Helps maintain security and consistency across teams,
- Helps make automated deployment practical and scalable.
Build Automation
Tools or frameworks that allow source code to be automatically compiled into releasable binaries. Usually includes code-level unit testing to ensure individual pieces of code behave as expected.
Cadence
The rhythm or sync of a DevOps value stream.
With cadence duration and predictability are the key points. Cadence is how long a Sprint, an iteration or a Program Increment lasts. Otherwise, their duration may vary.
CALMS Model
The essence of DevOps: Culture, Automation, Lean, Measurement, Sharing. It’s a framework that can be used to assess an organization’s readiness to adopt a DevOps process.
Canary Release
A go-live strategy in which a new application version is released to a small subset of production servers and heavily monitored to determine whether it behaves as expected. If everything seems stable, the new version is rolled out to the entire production environment.
Capacity Test
A test that is used to determine the maximum number of users a computer, server, or application can support just before failing.
ChatOps
It is about conversation driven development by bringing the tools into conversations. Robots are today members of your team to whom you can send a request and get an instant response.
ChatOps is a model where people, tools, process and automation are connected in a transparent flow. It also helps collaborate and control pipelines in one window.
Commit
A way to record the changes to a repository and add a log message to describe the changes that were made.
Complex-Adaptive Systems
Any system made of a collection of similar, smaller pieces that are dynamically connected and can change to adapt to changes for the benefit of a macrostructure.
Configuration Drift
How software and hardware configurations become inconsistent with the master version due to manual and ad hoc changes (like hotfixes) that are not committed back to version control. Often a significant source of technical debt.
Configuration Management
A process for establishing and maintaining consistent settings of a system. These solutions also include SysAdmin tools for IT infrastructure automation (e.g. Chef, Puppet, etc.).
Constraint
A limitation or restriction on a system.
Constraints (Theory of)
A methodology for identifying the most important limiting factor that stands in the way of achieving a goal and then systematically improving that constraint until it is no longer the limiting factor.
Containerization
Resource isolation at the OS (rather than machine) level, usually (in UNIX-based systems) in user space. Isolated elements vary by containerization strategy and often include file system, disk quota, CPU and memory, I/O rate, root privileges, and network access. Much lighter-weight than machine-level virtualization and sufficient for many isolation requirement sets.
Continuous Delivery (CD)
A software engineering approach in which continuous integration, automated testing, and automated deployment capabilities allow software to be developed and deployed rapidly, reliably, and repeatedly with minimal human intervention.
Continuous Deployment
A software development practice in which every code change goes through the entire pipeline and is put into production automatically, resulting in many production deployments every day. It does everything that Continuous Delivery does, but the process is fully automated, and there’s no human intervention at all.
Continuous integration (CI)
Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.
Continuous Quality
A principle that preaches the continuous quest for quality across the entire SDLC, starting from requirements definition, code development, testing, and operations. Another key area of focus for Continuous Quality is the application code pipeline orchestration. There are many opportunities to negatively impact the quality of an application when code is being manually moved across environments.
Continuous Testing
The process of executing unattended automated tests as part of the software delivery pipeline across all environments to obtain immediate feedback on the quality of a code build.
Culture
The whole of the ideas, values, beliefs, practices and behaviors that are shared by the employees in an organization. It is an attitude of shared responsibility in a DevOps environment.
Dark Launch
Dark launching is a process where software is gradually or stealthily released to consumers in order to get user feedback and test performance. Code is wrapped in a feature flag or feature toggle which is used to control who gets to see the new feature and when.
Definition of Done
In software development, a shared understanding of what it means for work to be complete.
Delivery Pipeline
A sequence of orchestrated, automated tasks implementing the software delivery process for a new application version. Each step in the pipeline is intended to increase the level of confidence in the new version to the point where a go/no-go decision can be made. A delivery pipeline can be considered the result of optimizing an organization’s release process.
Deployment
A term that refers to the grouping of every activity that makes a program available for use and moving that program to the target environment. In DevOps environments, deployment is fully automated so users get updates as soon as they are written and tested.
Deployment pipeline
A deployment pipeline is an automated manifestation of your process for getting software from version control into the hands of your users.