More than a decade ago “DevOps” was born and established itself. But how will DevOps evolve in the 20s?
Here, in loose succession, we provide an insight into DevOps trends that we are encountering with increasing frequency.
“Microservices architectures and Kubernetes integration in DevOps” were part of the last post. Today, learn about the importance of GitOps and Infrastructure as Code.
GitOps is a way to implement Continuous Deployment.
Developers can perform operations tasks using the developer tools they are familiar with. An example is the deployment of software updates in the form of a microservice on Kubernetes. Processes are thus automated, accelerated and thus much more efficient.
In practice, the open source version management “Git” is often used for this. Hence the origin of the neologism “GitOps”.
The documents under version management describe the state of the applications and the underlying infrastructure (including operating systems, databases, networks). Changes in the form of Git “pushes” and “merges” start actions, called CI/CD pipelines, and update the production state of applications or infrastructure.
By using diff tools, discrepancies between actual production state and desired state can be detected. In the event of an error, a rollback to an earlier state is possible. Git repositories are always the “source of truth” for the state of applications and infrastructure.
Infrastructure as Code / Everything as Code
Increasing virtualization and the migration of applications to the clouds of tech giants like Amazon and Microsoft make it possible. Complex IT infrastructures consisting of servers, operating systems, applications, network, databases and storage can be configured and deployed in a short time.
With “Infrastructure as Code” (IaC, also called Everything as Code), the infrastructure is built automatically using structured documentation (code).
Provisioning is significantly accelerated. In the event of a serious failure, the last working configuration can be reverted to. This means fast recovery and reduces expensive downtime. Misconfigurations are avoided compared to manual configuration (console or web interface).
The code, usually under version control (see GitOps), can be viewed and adjusted by developers. However, they must be confident that the documented infrastructure corresponds to the actual state (source of truth).
Dealing with uncontrolled changes to the configuration outside of IaC remains challenging. For example, through manual intervention via web console or also through updates on the part of the cloud provider.
A common tool for IaC is the open source application Terraform.