Monitoring Theory
Monitoring is a key part of DevOps because monitoring is a source of feedback. Applications now are more business critical than ever. An important part of DevOps is automation that has increased the productivity. Now there are frequent code commits with developers having to write comprehensive automated tests for their code. Every time a new commit occurs it automatically triggers all the unit and integration tests. Because development is striving more to use a production-like environment, monitoring becomes important. Monitoring provides feedback about the application’s performance and usage patterns. This ensures the health and the availability of our IT systems and services. Effective monitoring is essential to allow DevOps teams to deliver at speed, get feedback from production, and increase customers satisfaction, acquisition and retention.
Tenets
- "Synthetic Monitoring: Developers, testers and operations staff all need to ensure that their internet and intranet mobile applications and web applications are tested and operate successfully from different points of presence around the world."
- "Alert Management: Developers, testers and operations staff all need to send notifications via email, voice mail, text, mobile push notifications and Slack messages when specific situations or events occur in development, testing or production environments, to get the right people’s attention and to manage their response."
- "Deployment Automation: Developers, testers and operations staff use different tools to schedule and deploy complex applications and configure them in development, testing and production environments. We will discuss the best practices for these teams to collaborate effectively and efficiently and avoid potential duplication and erroneous information."
- "Analytics: Developers need to be able to look for patterns in log messages to identify if there is a problem in the code. Operations need to do root cause analysis across multiple log files to identify the source of the problem in complex application and systems."
Cited from Cotinuous Monitoring: The role of DevOps and APM.
Goals
- " Fault Detection: The primary goal of monitoring is to determine when a resource becomes unavailable or starts to perform poorly. As soon as performance and other issues arise rich diagnostic data is sent back to the development teams. This is the time to detect(TTD). TTM is the time to mitigate these issues by the DevOps teams. The time taken to mitigate the issues are measured and are improved on. After mitigation, teams work on finding the root cause of the issue so that they do not occur again. This is the time to remediate(TTR)."
- "Validated Learning: A second goal is validated learning by tracking usage. Every deployment is an opportunity to track experimental results that support or diminish the hypotheses that led to the deployment. Tracking usage and differences between versions allows teams to measure the impact of change and drive business decisions. If a hypothesis is diminished, the team can “fail fast” or “pivot”. If the hypothesis is supported, then the team can double down or “persevere”. These data-informed decisions lead to new hypotheses and prioritisation of the backlog."
Cited from What is monitoring.
What is APM?
- APM stands for application performance monitoring.
- They monitor production environments.
- It helps in root causing issues and preventing further outages.
- They help gather data that can be used to create more stable releases.
- It gives early feedback.