In 1984, I published my first paper that presented a simulation model of a world-wide distributed application and the impact of network protocols on the application’s transaction response times. This year marks the thirtieth year of grappling with issues regarding application management. It would be glib to say that today’s topics are simply old wine in new bottles. It would also not be true. There have been some fundamental advances as well as new wrinkles in this area of computing – especially over the last 3 or 4 years.
Application Performance Management (APM) has emerged as a hot topic and has been embraced by customers who have a “need for speed”, such as trading firms that can realize a significant dollar value with the reduction of transaction delay by microseconds. A number of new technologies have emerged that can automatically monitor and report the end-to-end delay of applications from the beginning to the end of a request.
In 1984, we could only simulate the ability to instrument software to discover this information. But back then, applications were lovingly hand-crafted from the bottom up. Today, application-level monitoring can be achieved because the overall approach to building applications has been significantly standardized. Today, standard architectures and patterns are available, as well as rich frameworks and libraries. This has been an evolutionary arc in computing.
Now, I am going to mention a disrupter that you may not have heard of – cloud computing. Just kidding – I know you are constantly pummeled with this phrase. But cloud computing is growing up and by that I mean growing “up the stack”. It’s not just about Infrastructure as a Service (IaaS) anymore. Here are some of the new implications that I see emerging regarding application performance.
Software for Application Performance Management used to require a steep up-front purchase. Today, this technology is available as a service. Cloud computing enables small, focused technology companies to deliver state-of-the art application monitoring and, by offering it as Software as a Service (SaaS), they and their customers can grow together.
The definition of Application Performance Management has been expanded to include managing the performance of the process that delivers applications to the enterprise. Leading “high tech” companies are moving ahead of their competitors using an application development process called “DevOps”. This is a mashup of the development and operational processes. Developers and administrators work together to automate manual tasks so that software source code is built, deployed and tested in an automated fashion. Consider the high performance, continuous development process at Flikr that requires an average of ten application deployments a day.
Finally, both public and private cloud management platforms are now providing templates so that IaaS can be moved up the stack to Application as a Service (I will avoid the acronym). Cloud users can select a service from a service catalog that results in the build and deployment of an application that requires a number of infrastructure components (IaaS) to be properly provisioned and orchestrated.
This is an emerging, disruptive capability that will elevate clouds from being a new infrastructure form factor into a complex, fully automated assembly line that, in the classic sense, mechanizes application building, deployment and performance management. We’ve come a very long way over the last 30 years.