Agent
a program installed on certain servers in order for those servers to execute commands sent by “master”
Agile software development
software development method that emphasizes, short, iterative planning and development cycles; thus providing more control and predictability as project requirements change.
Artifact
result of the build process, e.g. apk for Android.
Automation
techniques, methods or systems of operation aimed at reducing human intervention to the absolute minimum.
Blue-green deployment
a technique used to reduce downtime and risk. Two environments (blue and green) are running simultaneously, one environment is live and the other one is idle. New code is deployed to idle environment and then user traffic is switched.
Branching
is feature of VCS systems which allows developers to encapsulate their changes.
Build artifact repository
automation of all processes associated with the build such as the compilation of source code into binary code and running automated tests.
Canary release
a method of sending a new software version into production which serves as a test to see how it will perform and do fast rollback if necessary.
Capacity test
a test used to determine required server capacity to serve certain amount of users or requests.
Commit
a method of recording changes to a repository which includes a log message with description of changes that were made.
Configuration management
a process used to establish and maintain consistent settings of systems.
Containers (Docker)
feature of operating-system which allows isolate resources for multiple user-space instances. Isolated elements will vary depending on the containerization strategy and will usually include a disk quota, file system, I/O rate, CPU and memory, root privileges and network access.
Continuous delivery (CD)
the process to build, test, configure and deploy from a build to a production environment. Multiple testing or staging environments create a Release Pipeline to automate the creation of infrastructure and deployment of a new.
Continuous deployment
a software development practice where all code changes go through the entire pipeline and put into production automatically, – this resulting in fast and reliable deployments without human intervention.
Continuous integration (CI)
a software 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 as soon as possible.
Continuous quality
a software development practice that requires certain code quality and if conditions are not met team will be alerted and artifact will not be deployed.
Continuous testing
a software development practice that requires some amount of tests to be passed before deploying artifact
DevOps
the method where development, testing and operation teams collaborate on the development and deployment of software to increase production agility and achieving business goals.
DevOps transformation
a process of adopting DevOps practices which oriented towards breaking down the silos between development and operations teams.
DevSecOps
an organizational software development methodology which also aims to break down the silos between development and operations teams, but with focus on security.
Event-driven architecture
a software architecture pattern where events and messages are generated by the system and the system itself is built to consume, react and detect other events.
Fail Fast
a strategy where you try one thing, it fails, feedback is delivered quickly, the proper adjustments are made and you try again.
Feedback loop
a communication process used by organization to deliver feedback on products from end-users.
Hybrid cloud
the environment which utilizes services from public cloud and on-premises with transparent coordination between those two.
Infrastructure as a service (IaaS)
a form of cloud computing that provides virtualized computing resources over the internet.
Integration testing
a kind of a testing, where individual software components are combined and tested as a single group to ensure that they can function as a single unit.
Iterations
a single development cycle usually lasting 1-4 weeks. It can also be used to define the elapsed time between iteration planning sessions.
Microservice architecture
the practice of developing software as an interconnected system consisting of several independent modular services that communicate with one another.
Model-based testing
a software testing technique where test cases are derived from a model that describes the functional aspects of the system under test.
One-stop shop/out-of-the-box tools
tools which provide a set of functionalities that work immediately after installation with little to no configuration or modification needs.
Orchestration
end-to-end automation workflow or process that coordinates multiple lower-level automation to deliver a resource or set of resources “as a service.”
Private Cloud
a type of computing that is dedicated to a single organization and delivers the same advantages a public cloud, but located in datacenter controlled by organization.
Production
the final stage of the deployment pipeline where the software will be used by the target audience.
Provisioning
a process of installing and configuring software required to support the application.
Public cloud
the service provider that makes resources such as computing, networking and storage available to the general public on contract.
Regression testing
the process of testing updated program to verify that the old software features function exactly as before.
Release automation
the automated process of packaging and deploying a release through all the environments and ultimately production.
Serverless architecture
allows to build and maintain apps and services without having to manage server infrastructure.
Shift left
a term widely associated with DevOps, where the testing is done earlier in the pipeline i.e. moved left on the project timeline.
Source control
a system of tracking, storing and managing the changes made in the software source code.
Staging environment
used to test the newest version of your software before it is transferred to production.
Technical debt
occurs when extra development work that needs to be done because the easiest solution was done in short terms instead of the best overall solution.
Test automation
the process that makes execution of test sets automated and controlling outcomes
Test-driven development
style of programming in which developer first created tests, then develops code which can pass tests, and in the end, code is refactored and verified with tests again.
Unit testing
a testing strategy where the smallest amount of testable code is separated from the software and tested to verify proper functionality.
User acceptance test
the final phase of software testing where clients and/or end users determine whether or not the product will fit desired scenarios.