Marc Andreessen once famously said, “Software is eating the world”. Most businesses are increasingly relying on their software applications to create market differentiation against their competitors. These software applications are getting more complex and distributed. It is therefore critical that they are continuously monitored and managed 24/7/365 to help minimize downtime, which has direct impact on revenue, and lead to reduction of MTTR (Mean Time To Resolution) in case of an outage or an issue.
At DoU it is our belief that managing and monitoring software performance in a contemporary agile development and production environment goes beyond just monitoring performance. It is a continuous loop of Monitoring, Analysis, Planning and Execution or MAPE.
This philosophy is based on the concept of a MAPE-loop (or the more evolved MAPE-k loop) or perhaps the more pervasive synonymous OODA-loop and commonly used in litigation, business, law enforcement and military strategy.
The MAPE stages are:
Monitor: an important, stage in a 4-stage process of Performance Management, where metrics, events and logs are collected from a variety of sources such as front-end mobile apps or browsers, backend applications (written in a variety of languages such as Java, .NET, Node.js, etc.), physical/virtual/containerized hosts and database backends (SQL or NoSQL).
Analyze: The system analyzes the metrics, events and logs collected in the Monitor stage with prior known information such as baselines, thresholds, roll ups, etc. This stage is where health rules are evaluated and policy violations are checked for.
Plan: At this stage the system plans what actions need to be taken i.e. who needs to be notified (either via email/pager, service ticketing system, etc.) and what remediation scripts or workflows need to be executed.
Execute: Finally in this stage the system takes the actions that it planned for in the Plan stage.
Platform Reference Architecture