#10 Two Mistakes to Avoid While Operationalizing a Pull Request

<< Previous Edition: Three Mistakes Not to Make While Merging Code

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.?

>> Next Edition: The Rise of 10X SRE

Dipanshu Mansingka

Engineering Specialist / NITI's AIM/ATL Mentor

1 年

last minute cherry picks to put in release branch are risky at times.

回复
Basavaraj Mulaveesala

Principal Solution Architect (Azure Cloud, Databricks, Snowflake, Big Data and IoT )

2 年

Rushing, Great article. Ty for sharing your insights on DevOps.!!!

要查看或添加评论,请登录

Rishi Yadav的更多文章

社区洞察

其他会员也浏览了