Why Idempotence Matters in CI/CD Pipeline Build Steps

Recently, I was caught off guard by a question: why should the steps of a build script in a pipeline be idempotent? Why can’t we build and push the container every time? Why is idempotence so important? Idempotence in pipeline build steps is important for many reasons. Predictability and Stability: When a step in a pipeline is idempotent, it means that running it multiple times will always give the same result. This is very important for CI/CD pipelines because the same build might be triggered more than once. For example, if there is a small error, or someone makes changes to the code, or during testing, you might need to run the pipeline again. If the steps are idempotent, you don’t have to worry about unexpected results. Everything will work the same way every time. ...

November 26, 2024 · Dmitrii Kotov

Terraform Expertise: Valuable Takeaways from Years in Production

Use versioning in remote states Everyone makes mistakes. Some of them may break a Terraform state, and in such situations, availability of a previous state version can help you to avoid completely reimporting the whole infrastructure. You simply roll back the state to the previous version and resolve all problems in the code or in the infrastructure manually. Often, those issues will be resolved after applying the previous state of the code to this version of state. Moreover, it can help you avoid situations where the state is updated not because of changes but due to the major version update of Terraform, and your pipelines or providers aren’t ready yet, or there’s a bug, leading you to roll back the state instead of editing it directly. You might have noticed this if you have gone through the process of updating the Terraform version from 0.12.x to 1.2.x ...

November 27, 2023 · Dmitrii Kotov