Infrastructure as code (IaC) has given us many advantages for provisioning and maintaining the infrastructure our application code runs on. Not least, it gives us confidence that the underlying platform is what we intend it to be. However, sometimes direct access to virtual machines and services results in a running environment that no longer looks like the code describing it. We call this drift.
How does it work?
We’ve had drift detection in env0 for some time, originally as an engineered solution that took more steps than we were totally happy with. So we’ve made a significant update and drift detection is now a much simpler process to enable. The docs page details all the steps, but let’s take a brief look at it here.
Schedule a drift detection job under the environment triggers section, using standard crontab syntax
Add notifications under the project settings:
The status of the job is also available to see in the Deployments tab of the Environment UI
How does it help me?
Whenever we talk to customers about their deployment processes, they’re usually trying to move away from the old workflow of maintaining servers. IaC is the foundation of the idea of ephemeral infrastructure elements, of services that are defined by repeatable code. But if the code doesn’t represent reality, it can be hard work trying to change processes for the better. Having a simple signifier that our infrastructure code doesn’t reflect reality is a great step towards aligning code and services.
If you’d like to chat about managing your infrastructure as code, and how to address drift, drop us a line, or even message us on Twitter.