The idea of breaking up monolithic applications into reusable and composable services (or microservices) has been around for a number of past years. Interestingly that after a reading one of my latest books, I found this idea very applicable in completely new area.

While working on application telemetry solution (that is a system collecting and displaying usage, performance, logs, exceptions) and also looking into products of major monitoring vendors, I became interested in Graphite which is an open source graphing platform for collecting and displaying time-series data (simply time-value pairs). Installing Graphite turned out to be not a walk in a park and I skimmed though a few chapters of Monitoring with Graphite book. Here I found an idea of monitoring system to be composable just like monolith -> microservices. This resonated with my past experience.

I worked for a big application performance vendor 2007 through 2013 and all that customers could buy at that time were monstrous, monolithic and expensive products from vendors like us. So, the thought from that book is that nowdays things don't have be that way. Open sources products like Graphite came around. I was very impressed with Zabbix which we have at work. That kind of products we were selling for quite a bit of money back then. Now it is free. Open source. Click download and install. It has become possible for no cost to put together a robust enterprise monitoring system which will consist of multiple open source products such as Graphite, Riemann, Elastic, syslog-ng. Not to mention of whole slew of cloud-based solution such as Microsoft's real-time anomaly detection and many others. Amazing.

The trade-offs between big vendors monitoring products and composable monitoring solutions are similar to buying a off-the-shelf package vs. building or assembling pieces in-house. Monitoring product from big vendor locks you in into one vendor and become source of recurring expense. Everything else should be build around that product. In contrast, having multiple open source products sharing standard interface enables swapping those products if needed. In talking to my management one argument in favor of big vendor came up - but we'll get immediate delivery. If we have money in the budget, why not buy it? How long will it take you guys to put your solution in place? I didn't have good answer for that one.