These days the rush seems afoot to try to make everything into a service and deliver everything as a service. Some examples are:
- You can get storage with products like Amazon S3, Microsoft Windows Azure Blob Storage, Nirvanix, EMC Atmos Online, Meezeo, Zetta, and Dropbox
- You can get Infrastructure as a Service (Iaas) which is really a server and an operating system with the underlying infrastructure as a service via Amazon EC2, and a variety of hosting and cloud providers who offer both VMware compatible and other variants
- You can get an applications Platform as a Service (PaaS) via products like EngineYard, the joint offering by VMware and SalesForce.com – VMForce, and the Google AppEngine cloud
- You can get a full Software application as a Service (SaaS) via products like SalesForce.com, NetSuite and hundreds of other providers
What has not gotten nearly as much attention as it should is the question of how to monitor all of these services, especially in the case where they might be commingled with services and applications running inside of your data center. For the rest of this article we are going to focus on this specific use case. What should you do if you have an application where a part of it runs in a public cloud, and a part of it runs in your data center? The portioning can be along several different dimensions. You can have the most performance critical parts of your application run entirely in your own data center, and have the parts that are not so performance critical run in a public cloud. You could partition your application so that the web servers that provide the front end to your application are distributed in public clouds all over the world, but the rest of your application runs in your data center. This partitioning could also be over time – where in periods of high demand entire instances of your application move to the cloud to provide excess capacity an low cost (this is often called cloud bursting).
One way to address this use case is to pursue the same approach with your application monitoring tools that you pursued with all or at least a part of your application. That means look into the idea of a monitoring tool that is itself delivered as a service so that you can log onto one central web based dashboard which is hosted by the vendor of the monitoring service and see what is going on with all of your applications mo matter where they are located. For the balance of this article we will refer to this approach as Monitoring as a Service or MaaS. We are also going to take one important fork in the road when it comes to these kinds of solutions. We are going to stipulate that they must be pretty easy to set up and more or less work out of the box. This requirement is going to exclude solutions like Keynote and Gomez (now part of Compuware) that require configuration based activities like the creation of scripts to generate synthetic transactions. While synthetic transactions have their place in the world – which is mainly to ensure that your web site is up – they do not represent a viable approach to monitoring complex, rapidly changing, and distributed applications.
For these reasons we are going to focus on solutions that passively monitor what is actually happening in distributed (distributed across multiple public or private clouds, not just across multiple computers in one data center) applications. Here are some of the MaaS offerings that have been created to meet these needs:
- New Relic started this market and currently is the market leader in this category with over 5,000 customers of its service. New Relic started with a focus on Ruby-on-Rails applications, and now supports Java based applications as well. The company offers a free version of its product for an unlimited period of time and then various ways to pay for progressively more functionality. While the product does allow for some configuration and customization, a key focus of the solution is that you simply create the account install the monitoring files into your application, and you are off and monitoring. It literally takes minutes from the time you first install the agent to the time that you get results. New Relic is founded and run by Lew Cirne who was formerly the Founder and CEO of Wily Technology the company that created and lead the enterprise software incarnation of the J2EE and .Net APM Market (Wily now a part of CA Technologies). You can sign up for the New Relic Ruby and Java MaaS service here.
- AppDynamics has an APM solution focused upon Java based applications. AppDynamics also offers great out of the box functionality. The two distinguishing features are the ability of the solution to automatically map the topology of an application system (what is talking to what) based upon the transaction flow in the application, and the ability to provide deep “inside the JVM” diagnostics with no configuration, and a minimal performance hit in production. AppDynamics is available as both on premise software and via MaaS. There is also a free limited functionality version of the full functionality version that can be downloaded here.
- Coradiant is a web applications performance management vendor whose products are typically sold as physical or virtual appliances to on premise customers for the purpose of monitoring on premise web based applications. Coradiant is one of the market leaders in the field. Coradiant is attacking the problem of how to monitor cloud based applications by partnering with cloud vendors. The first such partner is Terremark who offers a Coradiant based APM Service. Coradiant has also partnered with Akamai so that Akamai can deliver APM functionality for web applications delivered by Akamai to its customers.
- AppFirst is a new entry into this field that is focused on a different part of the problem than New Relic and AppDynamics. AppFirst works with all Windows and Linux based applications by understanding the behavior of the application via its interaction with the applications underlying OS. Instead of being based upon an agent installed in a JVM, AppFirst is based upon an agent installed in the Windows or Linux OS. While there have been monitoring solutions around for decades that are based upon OS agents, AppFirst is different in that it provides a unique level of visibility into actual applications performance (response time) and the topology of the applications system from its perspective in the OS. AppFirst is a full MaaS solution, and is available for signup here.
- Just entering beta is a brand new solution, Appmeter. Appmeter is a full MaaS solution focused upon Apache based web servers. Appmeters works by installing a Transaction Monitoring Agent on your Apache web server. You then need to combine “atomic” transaction discovered by the TMA into the full compound or business transactions that you want to monitor in the dashboard. You can sign up for the beta of Appmeter here.
If you look at the level of instrumentation of an enterprise application that is typically deployed for a business critical, performance critical, Tier 1 application it is quite deep and broad. The web tier is often monitored by an on premise HTTP appliance like those available from Coradiant, Quest, Compuware, CA and other APM vendors. The middle tier of the application (the part written to J2EE or .Net) is most often monitored via a byte code instrumentation approach typified by CA Wily Instroscope or Quest Foglight. The back end databases are monitored by database specific tools from these same enterprise APM vendors. These products are very feature rich and offer extreme levels of customization. The new generation of MaaS solutions do not approach the level breadth (end-to-end monitoring functionality), nor to they yet have the depth of monitoring features into ever layer of the applications system. What they do offer is the same thing that cloud computing offers, a quite attractive set of monitoring functionality on an easy to set up and easy to buy basis. The ease with which these solutions are installed, and the ease with which they are purchased constitute both significant technical and business model advantages for these solutions over the enterprise incumbents.
As with cloud computing itself this is ultimately going to be all about use cases and economics. There are some applications that are “never” going to go into a public cloud and the monitoring of those applications is not going to be done on a MaaS basis either. However, the ease with which these solutions can be purchased, initially deployed and then managed on an ongoing basis means that for applications that fit into a public cloud deployment scenario (you can live with the security and performance issues of the public cloud), MaaS is a very viable option for the monitoring of these applications and may represent the future of monitoring just as Cloud Computing may represent the future of computing.