Many IT departments are feeling an extraordinaryamount of pressure lately to move applications to thecloud. This pressure often comes from those who areanxious to capitalize on the vast savings advertised bycloud service providers.Without proper performance monitoring, though, youmay be left in the dust.
First of all, you cant depend on your cloud serviceprovider when it comes to performance monitoring.Typically, service providers will not even address theissue of cloud performance within their service-levelagreements (SLAs).These types of agreements usually cover serviceavailability but not application performance.
There are some providers that will give you cloudperformance benchmarks for your hostedapplications.The problem is that this benchmarking data probablydoes not accurately reflect the end-user experience.
Think about it for a moment: Have you ever heard acloud service provider advertise that your applicationis going to perform better than it does now once youmove that application to the cloud? Of course not.Cloud service providers know that no matter howgood their data centers are, there is nothing that theycan do about Internet latency
So if a cloud service provider gives you performancebenchmarking data, it’s likely that the data wascollected from within the service provider’s own datacenter.If that’s the case, it probably does not take Internetlatency into account.
Even if a service provider does try to account forInternet latency, geographic proximity to the datacenter can make a huge difference in end-userexperience.Unless a service provider actually measures yourapplication’s performance from your facility, then theperformance data that they provide probably won’taccurately represent true cloud performance.
So how can you address cloud performancemonitoring?The truth is that there is no one-size-fits-all solution.Each cloud provider exposes different parts of itsnetwork infrastructure.As a result, a solution that works with one cloudprovider may not work with another.
Cloud monitoring options depend on your cloudYour options for cloud monitoring depend on whattype of cloud you are using.The three main types of clouds used for hostingapplications include: Infrastructure as a Service Platform as a Service Software as a Service
Infrastructure as a Service (Iaas): When anorganization subscribes to an IaaS cloud, it is typicallygiven access to a virtual server and a storage pool.IaaS clouds such as Amazon’s EC2 provide thegreatest opportunities for performance monitoringbecause you have full access to the server’s operatingsystem and to the applications that are running on it.
Platform as a Service (PaaS): Clouds such as GoogleApp Engine are platforms for running Web basedapplications. Although it is sometimes possible tobuild performance metrics into a Web application,PaaS clouds do not provide access to the underlyingoperating system.
Software as a Service (SaaS): These types of cloudsallow organizations to run commercial SaaSapplications such as Salesforce.com or MicrosoftExchange in a hosted environment.Although the hosting provider may give you access toperformance reports in some cases, there are fewoptions for gathering your own performance metrics.
Cloud monitoring toolsIf you happen to have an application that is coded inJava, you dont have to worry about the hassles ofdeveloping a custom agent. There are at least twosoftware publishers that offer Java-based code forcloud performance monitoring.
One is AppDynamics 3.0, which is designed tomonitor distributed Java-based applications in thecloud.The software tool provides a dashboard for trackingcloud performance and helps to isolate the cause ofany problems that may be detected.AppDynamics also detects memory leaks in real timeand locates their sources.
Another tool that exists for monitoring applications inthe cloud is New Relic, which works with Ruby, Java,PHP and .NET applications. Two features make NewRelic unique.First, it is designed to be simple to deploy. The otheris that the basic monitoring solution is free. If you alsoneed diagnostic and optimization capabilities, NewRelic offers those tools for a fee.
AppDynamics and New Relic are suitable for use withIaaS and PaaS clouds, but they do not work with SaaS.But another application called FactFinderfrom BlueStripe Software is said to work with anyapplication, regardless of whether it is a packagedapplication like Microsoft Exchange or a custom appthat was developed in-house.
FactFinder works by using protocol-level visibility intoeach node that is involved in running a distributedapplication.By monitoring packets on a hop-by-hop basis,FactFinder is able to create a map of theinfrastructure that is running the distributedapplication and is able to locate bottlenecks whenperformance problems occur.
Regardless of which method you use for performancemonitoring of cloud applications, it is criticallyimportant that you measure the data in a uniformmanner.Unless you are consistent with your choice of metricsand the tools that you use, the historical performancedata you collect will be meaningless.