1. Elements of DevOps
DevOps elements are the tools, methods, and components that allow for fast and safe software development. We will look into these elements in detail. Let's dive right in.
2. DevOps change management model
One of the most characteristic elements of DevOps is the Continuous Integration / Continuous Delivery pipelines, CI/CD in short.
CI/CD pipelines refer to the automation practices throughout the lifecycle of software development.
3. CI/CD
CI/CD is the automated and seamless integration of the developer's code with the rest of main code base that is in use. Continuous Integration puts the changes in order, regularly tests them as they merge to find out issues early on in the process.
With the CI/CD pipelines, the new version of the software is built, tested, and deployed for use in the fastest and safest way possible.
4. Principles of CI
There are a few principles that are absolutely necessary to have successful CI/CD pipelines.
In most organizations, a number of developers work on the same software at the same time. It is important to manage their changes in a secure way. This could be achieved via using a version control software, like Git.
Continuous Integration makes sure of the frequent integrations of the versions of software in a secure way.
5. Version control
Git introduces a single main branch that will be used for the software in production. The main branch is the main codebase for the software. The developers do not make changes on the main branch, but rather create their alternative versions. Once the alternative versions are reviewed by their peer developers and tested, the changes in the alternative branch are merged to the main branch.
In the visual, the bottom gray line is the main branch, the other colors are all of the alternative branches. They merge with the main branch as they are tested and approved.
6. Principles of CD
Continuous Delivery pipeline is the automated practices that ensures the code changes are built, tested, and deployed to serve the customers.
Building the code means turning it into a machine executable form.
Further tests are run on the built software to ensure it is working as intended.
One of the most important elements of CD is to manage the time of the changes and ensuring the build and test times are predictable and short.
7. Experimentation
The last element of DevOps we are going to discuss is experimentation and feedback loops.
Experimentation is an important aspect of DevOps. Experimentation means releasing the software to a limited set of users for their feedback.
Experimentation happens once a change is deployed, meaning that it is ready to face the customers.
8. Feedback loops
Feedback loops are the mechanisms in the Review stage of the DevOps cycle to continuously improve the product. Experimentation is conducted to collect customer feedback. Feedback loop is the mechanism to turn customer feedback into action. If the response is good, the product is ready to launch. Otherwise, the DevOps cycle can start again to improve the product.
9. Let's practice!
We have conquered a lot of ground related to elements and main characteristics of DevOps. Keep it up, and let's practice what we have learned.