New Relic 2011 WHITEPAPER

1,075 views

Published on

New Relic

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,075
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
51
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

New Relic 2011 WHITEPAPER

  1. 1. APM ExpertsWhite Paper:Application Performance Management– Crossing Platforms, Languages andDeployment ModelsBernd HarzogCEO – APM ExpertsNovember 2011 © 2010 APM Experts. All Rights Reserved. All other marks are property of their respective owners.AbstractFirst generation APM solutions were designed to address the performance of a limited set of applicationsbuilt with a limited set of tools and deployed around a constrained and largely homogeneous deploymentmodel. For example, these solutions typically only addressed applications built with Java and .NET anddeployed on a relatively few large-scale application servers.A variety of technical and economic trends have rendered the first generation APM approach inadequatein addressing the reality of how applications are built and deployed today. Today’s applications are builtusing a variety of tools including Java, Ruby, .NET and PHP and are deployed in scaled out open sourceserver farms internal to the enterprise, and across public and private clouds. Additionally, the demandsfor new application functionality and enhancements to existing functionality have led to development andsupport methodologies like Agile Development and DevOps that create rapid changes to applicationsystems in production.The combination of these trends has created a new set of requirements that first generation APM toolsare not able to meet and that must be addressed with tools built for today’s realities and directions ofthe future. New Relic is uniquely suited to address these new needs in a cost effective manner thatprovides instant time to value for the users of the APM solution.
  2. 2. The Next Generation of Applications Performance ManagementTable of ContentsI. Introduction – Application Performance Management...........................................1II. Current Approaches to APM.......................................................................................1Monitoring Processes and Services ....................................................................................1Synthetic Transactions ........................................................................................................2HTTP Protocol Analysis.......................................................................................................2Java and .NET Byte Code Instrumentation .........................................................................2III. Flaws in Traditional Approaches to APM..................................................................3Deployment Model Assumptions .........................................................................................3Cost to Acquire ....................................................................................................................3Cost to Own and Time to Implement ...................................................................................3Breadth of Applicability ........................................................................................................3Lack of Visibility into the Actual End User’s Experience .....................................................3Lack of Infrastructure Visibility.............................................................................................4IV. New Challenges in APM ..............................................................................................4Proliferation of Applications .................................................................................................4Agile Development, “DevOps” and “AppOps” .....................................................................4Scaled Out (not Up) Deployment Models............................................................................5Distributed (Cloud) Deployment Models..............................................................................5Proliferation in Tools, Platforms, and Languages................................................................6V. The New Relic Solution................................................................................................6VI. About New Relic ...........................................................................................................7VII. About APM Experts......................................................................................................8 © 2010 APM Experts, All Rights Reserved. All other marks are property of their respective owners. ii
  3. 3. The Next Generation of Applications Performance Management I. Introduction – Application Performance ManagementThere are many aspects of managing the performance of an application system from end-to-end so that properservice levels are provided to the users of these applications. Application Performance Management (APM)focuses upon the application as the key layer in the technology stack responsible for delivering results to endusers. APM focuses upon the performance of the application and the resulting business services that areprovided to the end users of these applications. Since a major focus of APM is to ensure that the end users ofthe application or business service are having an acceptable experience, APM focuses upon the most importantset of metrics – those that directly measure the quality of service that the users of an application areexperiencing when using that application.APM is different from, but synergistic with products that focus upon the performance of the infrastructure ofapplications. Infrastructure performance management solutions are primarily focused upon the availability andresource utilization profile of the hardware and software resources that underlie the applications. These toolsare important for identifying structural issues with a network or hardware system and are widely deployed byIT teams with large datacenters and by hosting and infrastructure providers.Historically, APM solutions have taken an “inside the firewall” approach to determining the boundaries of theapplication system. Two new trends are causing leading edge APM solutions to expand these boundaries.Deploying applications across private and public clouds means that APM solutions need to be able to work nomatter how the application system is distributed. There is also an increasing emphasis upon expanding thenotion of “end-to-end” from just looking at the web server to the database, to including the actual experienceof the end user in the definition of “end-to-end”.One of the critical functions provided by APM solutions is to determine the root cause of issues impactingservice quality. Modern APM solutions do a great job of finding issues directly in the application code.However, finding issues in the infrastructure that supports the application often requires cross-correlating datafrom many disparate products in blamestorming meetings, and still remains a significant challenge in manyorganizations. II. Current Approaches to APMWhile APM in one way or another has been applied to computer systems for as long as business criticalapplications have been running on computers, the APM category of solutions formally came into being asmonolithic mainframe and mini-computer applications evolved into client/server and later web-basedapplications. The distribution of application functionality across many servers and tiers of servers, whilebeneficial from a cost and scaling point of view, increased the complexity in managing these applications andthus gave rise to the APM discipline. Monitoring Processes and ServicesThe first generation of APM solutions actually knew very little about the applications themselves. Thesesolutions were based upon agents running on server operating systems like Unix and Windows Server thatcollected metrics about the processes that comprised the applications of interest. These products were able to © 2010 APM Experts, All Rights Reserved. All other marks are property of their respective owners. 1
  4. 4. The Next Generation of Applications Performance Managementtell if the application was running or not (process or service was up or down), and whether or not the resourceutilization profile of the application was within normal bounds. When resource utilization spiked, it was theninferred that something abnormal was occurring and that an investigation was warranted. Synthetic TransactionsOnce the Internet and the World Wide Web arrived, the emergence of online business to consumer (B2C) andbusiness to business (B2B) ecommerce created a compelling need for organizations to understand theperformance (response time and availability) of web-based customer facing applications. The first set ofsolutions to this problem emerged out of the products that were used to test the performance and reliability ofthese web-based applications. These testing tools were modified to run synthetic transactions from outside ofthe company against the web servers that comprised the presentation layer of these application systems. Tothis day, services still exist whose primary purpose is to ensure that web-based applications are available toconstituents in various geographies. HTTP Protocol AnalysisHTTP protocol analysis solutions are attached to mirror or span ports on the switches that serve the web servertier of these application systems. Since all of the traffic flowing through the switch is forwarded in a read onlymanner to the mirror port, these appliances could “see” all of the HTTP traffic flowing through all of the websevers attached to that switch.These products then analyzed the HTTP traffic and provided response time data for granular (or atomic) HTTPrequest/responses and could also be configured to measure the response time of complex compoundtransactions (a complete transaction in the eyes of the end user). The combination of HTTP appliances withbyte code instrumentation products addressed a substantial portion of the APM requirements for theapplications built in the first decade of the Internet (from 1995 through about 2008). Java and .NET Byte Code InstrumentationAPM achieved its first level of sophistication as a monitoring tool with the introduction of Java and then laterJ2EE based application servers. This was an extremely important innovation in the history of applicationarchitecture as it split applications into three distinct tiers: web servers, app servers, and databases. Thesethree tier architectures morphed into N-tier architectures with multiple layers of J2EE servers providingdifferent levels of business functionally and later morphed into service-oriented architectures.The creation of substantial business logic functionality on J2EE and .NET platforms gave rise to the need tomanage these complex and distributed applications. First generation byte code instrumentation solutions werebrought to market from vendors like Wily Technology (who later led the market for this generation ofsolutions). These products were unique in that for the first time it was possible to get visibility into what wasoccurring inside of the application while the application was running in production. This level of applicationvisibility and manageability made it possible for massive amounts of business critical application functionalityto be implemented within the application server, since it was now possible to actually manage these systemseffectively in production. © 2010 APM Experts, All Rights Reserved. All other marks are property of their respective owners. 2
  5. 5. The Next Generation of Applications Performance Management III.Flaws in Traditional Approaches to APMByte code instrumentation solutions combined with HTTP appliances were able to address the APMrequirements of first generation Java and .NET, however these solutions were appropriate for applicationswritten to only one set of application architectures (Java and .NET) and around a fairly narrow set ofdeployment options and use cases. This makes first generation APM solutions problematic in several areas. Deployment Model AssumptionsThe first generation of business critical applications that were written to Java and .NET were typicallyextremely complex applications involving many business rules and large amounts of code in one instance of theapplication. These applications were therefore deployed on relatively few application servers that tended tobe very large and very complex pieces of hardware and software. The tools to manage these applications werethen built around this assumption – that there would be, in any organization, relatively few Java and .NETapplication servers per application and that these servers would themselves be scaled up as much as possible interms of CPU count and memory size. Cost to AcquireAs Java and .NET became new enterprise software businesses, so too did the tools to manage them. Directsales forces sold Java application servers at six and seven figure price levels, and the tools to manage theseapplications were sold to the enterprises on a similar basis and at similar price levels. Therefore this era ofapplication development and management used application platforms and management tools that were veryexpensive to acquire. Cost to Own and Time to ImplementThe total cost of ownership for this generation of Java and .NET applications was not limited to the software’slicensing and support costs. While APM tools were frequently capable of instrumenting these Java and .NETapplications to a very fine-grained level of detail, the choice of what exactly to instrument was a manualprocess for each transaction in each application. In many cases it took 4 to 6 months of professional servicesprovided by the tool vendor to get the product configured to monitor the exact set of objects and methods inthe application that was of interest to the customer. The APM tool’s complexity limited the number ofapplications that could benefit from the solution within an organization. Further, the tool’s inflexibility causedorganizations to incur significant ongoing costs as each application change or enhancement caused theinstrumentation to be reconfigured as well. Breadth of ApplicabilityByte code instrumentation and HTTP protocol management solutions were able to provide a high degree ofapplication management functionality—but only for a small subset of applications for which the enormousoverall cost could be justified. Additionally, these solutions could not address the explosion in tools andlanguages that occurred in the 2008 – 2010 timeframe. Traditional APM solutions have therefore becomelimited to a small subset of the total applications in use and currently in development. Lack of Visibility into the Actual End User’s ExperienceFor many organizations, the notification of a problem still occurs with the end user calling up the help desk andsaying “it is slow”. First generation APM solutions typically have no visibility into what happens to end userexperience after a transaction leaves the web server that comprises the edge of the application system. This © 2010 APM Experts, All Rights Reserved. All other marks are property of their respective owners. 3
  6. 6. The Next Generation of Applications Performance Managementleads to a dramatically impaired troubleshooting processes as the application support team first tries to findout if the problem is “inside the firewall”, and then has no tools to further investigate the problem if it is not. Lack of Infrastructure VisibilityFor years, the monitoring of applications and the monitoring of the supporting infrastructure have beenseparate domains, supported by separate products, and used by separate teams; teams that only talk to eachother when forced to do so by a problem being addressed in a blamestorming meeting. The only way totechnically integrate these disparate data sets was to apply extremely expensive and complicated statisticalcorrelation technologies to the data from all of the products, a process that was and is too expensive and timeconsuming for many organizations. IV. New Challenges in APMExisting APM solutions were built around a set of assumptions that are in many cases no longer true today.These solutions assumed that the application was going to get built or bought and then run inside of thefirewalls of the enterprise data center. They assumed that applications were going to get built in Java or .Net,which were for a while the dominant development environments used by developers. They assumed that theaverage application would only get enhanced once or at most twice a year. These assumptions and many othersturned out to be no longer valid as a new wave of innovation addressed both how to build applications and howto deploy them. Proliferation of ApplicationsThe increasing and unlimited demand for new application functionality and an ever-growing backlog ofunaddressed application development and enhancement requests in enterprises of all sizes has resulted in theneed for increased developer team efficiency. Organizations have responded to this issue in various ways.Many have adopted new tools that allow for applications to be built more quickly, while others (either officiallyor unofficially) have sanctioned or tolerated “user developed” or “departmental” applications. The bottom lineis that when a business area of a company needed some application functionality and they found that theycould not get it from the central IT development organization due to backlogs and priorities – they built itthemselves in whatever tools happened to match the skill sets on hand. This led to an astounding proliferationof applications within enterprises worldwide with many enterprises reporting that they now have 1500 to 2000applications that they consider “business critical”. Agile Development, “DevOps” and “AppOps”The unrelenting pressure to deliver more application functionality in less time has given rise to other importanttrends: Agile Development as a development methodology and DevOps as a methodology for managingapplications in production.Agile Development focuses upon having one developer responsible for each component of an applicationsystem, and then having those developers work as a self-coordinating team to deliver new functionality intoproduction on regular and short time intervals (every week, two weeks or at most a month).DevOps is about eliminating the walls between application development and production application support –essentially creating one team that builds the application and supports it in production. © 2010 APM Experts, All Rights Reserved. All other marks are property of their respective owners. 4
  7. 7. The Next Generation of Applications Performance ManagementApplication Operations, or AppOps is a variation of DevOps that focuses upon having a dedicated team that isresponsible for supporting the application in production, and that coordinates closely with the actualdevelopment team.The combination of Agile Development, DevOps, and AppOps creates a set of requirements that first generationAPM tools cannot meet. These tools simply have too much administrative overhead and are too costly to keepup with the pace of change in these new agile environments. Organizations now require a true end-to-end viewof their applications, and a top-to-bottom view of their application stack (including the supportinginfrastructure) in order to be able to assure service quality in these rapidly changing environments. Scaled Out (not Up) Deployment ModelsThe continued improvements in the price/performance of commodity Intel based servers along with theemergence of lower cost open source alternative application platforms like Linux, JBoss Application Server,and Apache Tomcat means that it is now much less expensive to have large numbers of “smaller” commodityservers than it is to have a small number of high end servers that maximize CPU count and memory size.The economics of commodity hardware and open source application platforms have made it inexpensive toscale server farms out not up. The combination of agile development, modularized software, and scaled outdeployment models means that we now have application systems that run on hundreds and in some casesthousands of interconnected servers instead of just a few very large and expensive boxes. This creates anotherrequirement that the first generation of APM tools are not designed to address. They are not designed tosupport application systems comprised of hundreds or thousands of servers, nor are they priced and sold in amanner that makes their purchase economically feasible for this deployment model. Distributed (Cloud) Deployment ModelsWhen Amazon launched its public cloud offering (EC2) the first users were developers and organizations whowanted to rapidly prototype and test new applications without having to provision internal resources (eitherthemselves or through their IT departments). Since then, several other public cloud infrastructure and platformproviders have come into being (Engine Yard, Google AppEngine, Heroku, CloudFoundry) and many more cloudproviders are expected in the near future. This raises another set of issues that first generation APM solutionsare completely unequipped to address. The main issue is that first generation APM solutions are designed toassume that the agents that monitor the JVM’s in the application servers are residing on the same LAN subnetas the management system for the APM solution, and that the management system for the APM solution canpoll the agents for their data.These architectural assumptions on the part of first generation APM solutions are invalid for applications whereall or a part of the application resides in a public cloud. In the case of an application that resides in a publiccloud and the monitoring system resides behind the enterprises firewall it is not possible for the monitoringsystem to poll the agents in the cloud. To address this use case, the APM solution needs to be redesigned fromscratch around the assumption that the agents are autonomous and that they initiate communications overpublic internet protocols like HTTP and HTTPS through commonly open ports like 80 and 443 to the back endmanagement system. In fact, just using this kind of communications architecture alone may not suffice as manyenterprises do not allow traffic to enter their networks in a manner that would allow for the agent in a publiccloud to talk to an on-premise monitoring system. © 2010 APM Experts, All Rights Reserved. All other marks are property of their respective owners. 5
  8. 8. The Next Generation of Applications Performance ManagementMany cloud providers offer capabilities that automatically provide computing resources as needed to allow fordynamic scalability during traffic bursts and indeed, this is one of the key benefits of cloud computing—capacity when you need it, automatically. Ensuring the performance of business-critical applications however,remains the responsibility of application owners. The rise of the public cloud has therefore created the needfor an APM solution that can work seamlessly in an “out of the box” manner for applications that aredistributed across servers running inside of the enterprise network and servers running in various public clouds.The rise of cloud bursting or the ability to dynamically add instances of an application as workload increasescreates the need for an APM solution that can dynamically and automatically recognize and start monitoringnew instances of applications as they are instantiated, no matter where they are located. Proliferation in Tools, Platforms, and LanguagesWhile first generation APM tools did a great job for Java and .NET applications running on a small number ofservers deployed inside of an enterprise’s network, that is not the world we live in today.Today we live in a world of tremendous diversification of platforms, tools and languages. We have gone fromhaving two primary application deployment platforms (Windows and Linux) to having a variety of cloudplatforms and infrastructures such as those offerd by Amazon, Microsoft, VMware, Salesforce and others. Wehave also experienced a tremendous level of innovation and diversification of development tools andlanguages. Not long ago it was a world characterized by HTML, Java and the .NET languages (C# and VB.NET).Now, we have these languages plus Ruby on Rails, PHP, AJAX, JavaScript, Groovy, and Python and evenPowerShell scripts. It is clear that the pressure to build new application functionality and rapidly enhanceexisting applications is not going to abate, and will in fact continue to increase over time, driving thecontinuous evolution of new tools, platforms and languages that keep pace with this need.Since first generation APM solutions were only designed to address a very limited subset (Java and .NET) of thecurrent and likely future set of tools, platforms and languages, these tools are not equipped to make the jumpinto deployment environments and development environments of the present or the future. A new method ofapplication performance management is sorely needed—one that is architected for use in virtual or physicalenvironments, supports applications developed in multiple languages, is cost effective, implements rapidly andis easy to use. V. The New Relic SolutionNew Relic is a next generation APM solution built around the following core principles:• Support for multiple languages and platforms. New Relic supports applications written with and deployed to the following tools and platforms; Ruby on Rails, Java, .NET, PHP and Python. Additional tools and platforms will be added on an ongoing basis.• New Relic provides a true “end-to-end” view of the application system’s performance. New Relic monitors directly from the end user’s browser and system, through the network between the end user and the application system, and extends all of the way through the web, application and database tiers.• A true “top-to-bottom” view of the entire application stack and its supporting infrastructure. New Relic presents server resource utilization metrics, including CPU, memory, storage, and network utilization, © 2010 APM Experts, All Rights Reserved. All other marks are property of their respective owners. 6
  9. 9. The Next Generation of Applications Performance Management directly in the context of the applications, components and transactions consuming the server resources; allowing for the first time a deterministic view into how infrastructure issues are impacting business transactions - all from within a single tool.• Real User Monitoring (RUM). New Relic provides detailed views into Browser performance—page load time, page rendering time, DOM processing, etc—allowing app teams to determine if performance issues are in the front end, versus the middle tier or external services.• Rich monitoring of application performance (response time) at the individual transaction level with tracing through the entire stack of application functionality down to individual application components, classes, methods, etc. including the calls into the backend database.• New Relic is an APM system that is delivered via a Software as a Service (SaaS) model. The backend management and data storage components of the service are hosted and managed by New Relic, eliminating the need for customers to purchase or manage any of the infrastructure required to implement and maintain an APM solution.• Affordable subscription pricing. New Relic is offered via a variety of subscription and usage based pricing plans that make the acquisition and use of New Relic considerably less expensive than first generation APM solutions that were sold using a traditional enterprise software licensing model.• Easy to use and out of the box functionality. New Relic works when you first install it with no configuration required. The customer establishes an account on the New Relic web site and then points the agents that the customer installs on their servers to their account. Detailed configuration for individual objects and methods is completely unnecessary.• Distributed deployment architecture. New Relic is built from the ground up to assume that applications run on servers in distributed geographies and across servers owned by different organizations with different networks. Agents running inside of application servers initiate communications over public Internet friendly protocols to the backend monitoring system hosted by New Relic. No firewall ports need to be opened anywhere on the customer or cloud provider side to make the New Relic service work.The New Relic service has been adopted by tens of thousands of organizations around the world to manageapplications deployed in dedicated datacenters, public and private clouds, and in hybrid environments. Thesolution was architected from the beginning to work seamlessly regardless of deployment environment. It is thefirst APM tool delivered as a service, which eliminates many of the costs and complexities of traditional APMimplementations yet doesn’t compromise functionality. It is the first APM tool to support multiple languages—Ruby, Java, .NET, PHP, and Python and provide a single interface for managing them.New Relic meets all the requirements of next-generation APM and sets a very high standard for functionality,ease of use and ability to keep pace with today’s rapid deployments. VI. About New RelicNew Relic, Inc. is the leading software-as-a-service provider of application performance management solutionsthat enable developers and operations teams to quickly and cost effectively monitor, troubleshoot, and tuneapplication performance in real time. More than 5,000 organizations use New Relic to monitor and optimize © 2010 APM Experts, All Rights Reserved. All other marks are property of their respective owners. 7
  10. 10. The Next Generation of Applications Performance Managementmore than 100,000 production application instances. New Relic also partners with leading platform and hostingvendors including Amazon AWS, Blue Box Group, Brightbox, Engine Yard, Eucalyptus, GigaSpaces, GoGrid, GridGain, Heroku, Joyent, Microsoft Windows Azure, Red Hat, RightScale, SpeedyRails, Stax Networks and VMware. VII. About APM ExpertsBernd Harzog is the CEO of APM Experts™, a consulting and analysis firm focusing on the virtualizationinfrastructure and application performance management markets, vendor strategies in these markets, andcustomer use cases in these markets. Bernd was formerly a Gartner Group® Research Director focusing on theWindows Server® operating system, CEO of RTO Software, and VP of Products at Netuitive®, and has beeninvolved in vendor and IT strategy since 1980. © 2010 APM Experts, All Rights Reserved. All other marks are property of their respective owners. 8

×