In the realm of DevOps, understanding key terminologies is crucial for effective collaboration and successful implementation. In this article, we'll demystify 11 must-know DevOps terms, providing you with a clear grasp of their significance in modern software development and delivery.
Provisioning
Provisioning involves preparing a server with the necessary OS, software, and networking configurations. Imagine it as requesting a fully equipped system tailored to your needs, readily available for use.
If I say provision me one system then it means provide me a server/computer with a particular OS, software, and networking files.
Deployment
It involves seamlessly adding or upgrading software on servers. In simple words, it's like sending software updates to the server, ensuring your local system mirrors these upgrades.
Orchestration: Harmonizing Multiple Systems
Orchestration, in simple terms, is like being the conductor of an orchestra. Imagine you have a lot of musicians playing different instruments – each one needs to play their part at the right time to create beautiful music. The conductor makes sure everyone starts and stops playing together, follows the tempo, and creates a harmonious performance.
In the tech world, orchestration is similar. It's about coordinating and managing different computer systems, applications, and services so they work together smoothly. Just like a conductor, orchestration tools ensure that all the different parts of a complex system – like servers, databases, and software – run in the right order, communicate effectively, and perform tasks together to achieve a specific goal. This coordination helps create efficient and well-organized processes in things like cloud computing, where multiple services need to collaborate seamlessly.
Configuration Management
It means managing server configuration via files such as ram, space, dependencies, and software. Simply you write all the requirements in a file and it is achieved by a programmer or with the help of tools.
Imperative (Procedural)
In Imperative, commands are used to produce the desired state or we can say, In an imperative approach, the user is responsible for defining the necessary steps to achieve the end goal.
Declarative (Procedural)
In the declarative approach, the desired state is defined and tools are used to achieve that particular state. The system automatically determines the steps that need to be run in order to reach this end state while meeting the additional requirements.
Idempotent
It means performing repeated execution and getting the same results, in simple language when we log in to any website, and it always opens the same result which means that the APIs we are hitting always come up with the same result or idempotent result.
Blue Green deployment
Here we create 2 identical environments. One environment (blue) is running the current application version and another environment (green) is running the new application version.
The blue-green deployment strategy increases application uptime and reduces deployment risks by simplifying the rollback process if a deployment fails.
Continuous Integration
Continuous Integration (CI) is a DevOps software development practice that enables developers to merge their code changes in the central repository. That way, automated builds and tests can be run.
Continuous Delivery
Continuous Delivery (CD) is a DevOps practice that refers to the building, testing, and delivering improvements to the software code. The phase is referred to as the extension of the Continuous Integration phase to make sure that new changes can be released to the customers quickly in a substantial manner.
Continuous Deployment
When the step of Continuous Delivery is extended, it results in the phase of Continuous Deployment. Continuous Deployment ensures that any change that passes through the stages of production is released to the end-users.