Effective and meaningful communications always lead to good results. However communication of TOI (transfer of information) should be avoided as much as possible. As a DevOps engineer, I used to get messages like this, “Hi Denny, I’ve changed XXX. Please check and make proper change on your side”.
Why it’s not good to rely on human communication for TOI? Firstly people will forget, which means expected collaboration will be ignored. Secondly human intervene and communication really takes time for both sides. So How We Can Improve This?
Sorry, my friend, I haven’t found silver bullets yet. The good news is that one typical scenario can be automated.
Software development usually have some team conventions, which indicate members of different roles should comply and cooperate. For example, When dev has done A, Ops needs to know and do B.
Let’s examine below two common cases in our daily life as DevOps.
- How To Keep Config Files In Sync? Usually dev team defines and updates the application’s configuration. However we expects Ops/DevOps to update those config files properly in Prod env. Lots of communication happens to keep this in sync.
- How We Know Active Sprint Has Been Changed? When a new sprint is made, active branch name for various CI tests and settings need to be updated accordingly.
How we can reduce or avoid communication like this?*
For case 1, config files are usually managed in repo of dev team, so that we have version controlled. Here DevOps just needs to know when these files are changed. Usually we expect dev notify us, once he/she has made the commit. But whether this is really needed? Commits to SCM can trigger webhooks, or we can keep polling latest changes periodically. So the answer is no!
Here comes a Jenkins job in Github: MonitorGitFileChanges.
Notice: You can find a live demo here.
For case 2, active sprint name is usually a branch name, following some naming convention. For example, sprint-12. So we can subscribe to branch created events or keep polling branch list, to detect whether a given branch has been created. Thus we can be automatically notified.
Here is a Jenkins job for this requirement: MonitorNewActiveSprint.
Any more improvement like this? Share your thoughts and thinking with us!