Our article was originally posted on DevOps.com, October 29, 2018.
A feedback loop is essential for every part of the modern DevOps environment. From continuous integration and deployment to application development to infrastructure monitoring to team dynamics, feedback is the most important piece of the DevOps puzzle. But feedback is of little to zero value if it is not timely. And in the modern development world, that means instant or as near to instant as possible.
In the past, prior to the current world of web and mobile development, feedback was a closed loop between the developer and the application. Often aided by tests or a compiler, desktop developers could spot issues and follow trails to solve problems without worrying about end users seeing the flaws or getting caught in a bad deploy. There were no deploys, unless you consider pushing a new version out on disc or CD a deploy.
As the world moved to web-based software and mobile software, new components came into play including cloud, containers, test-driven development, and constant iterative deployments. All these led to a new need to monitor systems far beyond the single machine with operating ecosystems prior to the web revolution.
Defining Feedback
Before fully understanding the value of instant feedback, we first need to define what feedback is. When we are running multiple, divergent systems, such as a CI/CD server, containers for our applications or separate containers for our databases, information will be pushed to us in the form of feedback. Without some sort of analytical engine, this is simply raw data.
Raw data often has little value. To those working directly with it, there may be something to be gleaned without manipulating it further, but for those abstracted from direct interaction with raw data, it is important to have some sort of buffer between the information we are looking for and the data in the raw.
Taking raw data and putting it into a usable form is the role of the analytical engine. It’s important to note here that not all data is necessary to all people. For example, the sales department has no need of a dashboard showing CPU usage over time. At the same time, the operations team likely doesn’t need to see the burn rate of the sales team. Getting the information is the first step. The next is to get the correct information to the right people in a timely way.
Using Feedback in a Timely Manner
The importance of instant feedback is compounded by the development style adopted by the modern application development team. We want our web-based and mobile applications to be deployed consistently, if not constantly, as well as securely and with stability. When an application enters the world, we want to know if the deploy occurred correctly, if there were errors, and how many resources were necessary.
If the team needs to wait for even a few minutes, it can be detrimental to business. The concepts of high availability and constant uptime for users has made it so every deployment needs to be tested and retested, but all this needs to be done in a short time frame.
Modern, instant feedback allows everyone to see what is successful (and what is not) with enough time to adjust before a slight issue becomes a major meltdown. The analytical dashboards are feeding this information, converting the raw deployment and application data and presenting it as valuable feedback. This helps the modern DevOps adherent to streamline processes and continue to deliver a better product to customers and end users.
It’s easy to see the past was a time when analytics and feedback was of little consequence, but as we continue forward, with faster deployment and development cycles, the role of instant feedback will continue to increase and better, faster solutions will need to grow to meet that need.