APM Is Dying
Originally posted as this twitter thread.
1/ APM is dying — and that’s ok.
What happened? And why?
2/ In APM’s heyday (think “New Relic and AppDynamics circa 2015”), the value prop was straightforward: “Just add this one magic agent and you’ll never need to wonder why your monolithic app is broken!”
But then things changed.
3a/ *Systems got deep:* APM was designed for monoliths — where development revolved around a single app server. Monoliths slowed down dev velocity, so we broke them into layer upon layer of services.
3b/ To make the depth of typical microservices architectures more tangible, here are images taken from typical microservice architecture diagrams (blurred for confidentiality reasons). Even with just a dozen services, there are already 6+ layers of depth!
4/ *Telemetry got portable.* The most valuable thing about APM had been the agents. They gave us telemetry where before there had been — literally — none. Recently, though, OpenTracing, OpenCensus, and now OpenTelemetry have made that telemetry portable — and free.
5/ *Outdated pricing units:* not only are APMs ill-suited to analyze deep systems, but they are typically priced per-host or per-container. That is neither the unit of cost (COGS) *nor* the unit of perceived value. With the container explosion, that’s brutal for customers.
6/ And perhaps the biggest problem for APM is that deep systems aren’t just *bigger* than monoliths, they’re *different*, and products designed for one don’t work for the other.
APM has a lucrative sweet spot; it just doesn’t cover where large-scale systems are headed.
For more threads like this one, please follow me here on Medium or as el_bhs on twitter!