Nemo via Pixabay/Thinkstock
Devops is in many ways a modern evolution born out of the old way of doing things. Waterfall development methodologies were too slow, deployments to production were too infrequent, and the traditional separation of developers and operators was an obstacle to change. By combining a little philosophy and a lot of tools, devops unlocks dramatic increases in speed and efficiency.
Devops brings more automation to every stage of the application lifecycle, and the time to market for new applications is reduced significantly. Yet all of these changes have significant repercussions. With tectonic shifts in the requirements for developing, testing, and deploying applications, the needs of modern monitoring systems are changing as well.
Monitoring is one of the more overlooked areas when adopting devops methodologies. With a relatively static codebase, operations didn’t need the most sensitive of monitoring solutions. What was used generally offered insight only into basic statistics in production environments.
With frequent code changes becoming the new normal, organizations need a more comprehensive and real-time view of the production environment. Features such as real-time streaming, historical replay, and great visualizations become mission-critical components of application and service monitoring.
Monitoring for modern environments
Devops is speeding up the entire application lifecycle, from development to QA to production. Relatively static production applications are now being updated as frequently as multiple times a day. This leads to many challenges, some old and some new.
Developers have had to adapt by writing more comprehensive automated tests for their code, so that QA is as automated as possible. QA has become dependent on continuous integration, which automatically runs all of the unit and integration tests whenever new code is committed. Monitoring systems are now becoming more aware of every part of the devops toolchain.
Before devops, new application updates would be carefully administered by highly skilled technicians. Continuous deployment, by stark contrast, builds on all of the automation in the devops toolchain to move code into production whenever it passes all its tests.
If this sounds very “Wild West,” like something to be tried and tested only on the smallest and least important applications out there, you should know that Facebook has long been a proponent of these kinds of agile deployment systems. It’s well-known programming lore at Facebook that if your code breaks the application, it will be tracked back to you through the source control history and you will be held responsible.
It reminds me of the story of bridge builders in the Roman era. If you built a bridge in those times and it collapsed and killed someone, you were put to death. No wonder many of those bridges survived for so long. Adding personal accountability tends to increase the overall quality of whatever you are building.
Sign up for CIO Asia eNewsletters.