#10 Two Mistakes to Avoid While Operationalizing a Pull Request
The quickest way to eliminate the effectiveness of a pull request is to use static and permanent artifacts while operationalizing it.
The Anatomy of a Feature
In the DevOps pipeline, a feature is the only first-class citizen.
Every action is done to make sure the feature propagates through the pipeline, is error-free, and makes it successfully to production without having any undesired side effects. In modern applications, every feature is wrapped in a pull request until the feature makes it to production.
Short-Lived Branches
Permanent branches are a harbinger of production failure.
Branches should be created only to develop and test a feature therefore the concept of permanent branches does not make sense. If a branch stays for too long, it becomes stale and too risky to ever be merged into the trunk or production branch. In addition, every other issue a permanent branch is created for can be solved in a better way without resorting to branching.
领英推荐
Therefore every branch should be temporary and short-lived and should only last for the lifetime of a pull request.
Ephemeral Environments
Static environments are more of a liability than an asset.
Since pre-production environments' sole purpose is to serve a feature wrapped in a pull request, testing in a permanent & static pre-production environment (eg QA, Staging) does not add much value. In addition, these environments need to be modified to make them work for every new pull request and that makes them a maintenance nightmare. Keeping these environments up 24x7 also makes them very costly.
Therefore like every branch, every environment should be temporary and short-lived and should only last for the lifetime of a pull request.
Conclusion
It is important to keep the whole operational flow of a pull request pure and that means avoiding any static or permanent elements. The two most important places it needs to be avoided are branching and environment creation. Ephemeral environment creation can be automated using modern Environments-as-a-Service platforms like Roost.ai.?
Engineering Specialist / NITI's AIM/ATL Mentor
1 年last minute cherry picks to put in release branch are risky at times.
Principal Solution Architect (Azure Cloud, Databricks, Snowflake, Big Data and IoT )
2 年Rushing, Great article. Ty for sharing your insights on DevOps.!!!