Application Performance Management (APM) has become the necessity in current IT landscape to maintain continuous application vis-à-vis business performance traction. Enterprises including IT services, BFSI services, product industries etc. are all applications driven and dependent upon applications ranging from online suites such as CRM, ERP, SCM, workflow automation etc. to batch jobs written in Java, Python in distributed area to COBOL, PL1 etc. in MF technologies. Whether we withdraw money from ATM or place an online order using smart phone or apply for passport applications or many other things in our day to day life, we are all surrounded by applications. App performance management, therefore, is critical to business continuity and the productivity of many facets of an organization is dependent on optimal app performance.
APM is quite a vast subject and has got broader and deeper impact in the current fast changing IT landscape involving cloud (IaaS, PaaS, SaaS), resources virtualization, SDN (Software Defined Networking), SDS(Storage), SDDC etc. as core infrastructure components or models, and Digitalization, Mobile Computing, e-Commerce etc. as key business drivers in application domain, and last but not the least IoT (Internet of Things), Social media interaction etc. as factory of Big Data involving 3Vs (Volume, Velocity and Variety) characteristics and many more. In the midst of all such IT actions and related moving parts, APM plays very crucial role by measuring and indicating the application performance and its underlying detail while enabling IT staff to proactively fine tune applications and/or related Infrastructure components to keep up business applications healthy round the clock. Its application and strategy to implement, upgrade, transform and maintenance requires deeper and broader perspective than what I wrote in my previous blog @ http://www.techmanthan.com/index.php/2015/08/16/application-performance-monitoring-becoming-critical-in-smac-byod-iot-era/ I would like to continue the subject of APM while emphasizing its transformation strategy touching upon certain tool sets.
Drivers of APM
Cloud transformation is undoubtedly one of the key drivers of APM transformation. Traditional APM set up would be very time consuming to troubleshoot performance issues; such set up would be isolated at respective domain level and wouldn’t give a holistic view of an application. With the growth of application demands due to mobile, social media, digitalization, Big Data, IoT, e-commerce applications etc., IT team has started moving into innovative infrastructure solutions involving virtualization & cloud set up and giving multitier architectural framework while creating strong need of advance, robust and flexible APM solution from traditional performance analyzer tools. Such traditional tools probably could work in on premise data center with traditional software and controls, but again, traditional IT ecosystem will be utterly costly and time consuming to address ongoing growth and change in business dynamics. APM should help Data Center managers determine whether applications are optimally implemented, The shared environment of cloud components are interconnected and fairly interrelated yielding high exposure of performance impact at application level.
Today one business application, let’s say “Insurance Claim Adjudicating System” comprises of Web Portals (HTTP Presentation Application), slew of Web Applications with tons of objects, scripting and contents (Business Logic and Rules, CMS etc.), middleware (MQ, JMX etc.), Data Base Engine such as MF with DB2, firewall configurations with adequate security policy (Free Zone, to DMZ to Secured) etc. while involving encryption technique as per security & compliance requirement. Modern APM solution has to be integrated with all these components with adequate measures, metrics and weightages so that APM gives an aggregated view of the health of business application (e.g. Insurance Claim Adjudicating System in this example). IT department needs to depart from vertical silo technology management to holistic smart APM management tool. Modern APM should not be seen as a solution involving bunch of software tools with set of features, rather as an integrated service model in the shared cloud infrastructure. Needless to say that current delivery model is getting oriented towards service model.
Key Attributes of APM
Modern APM solution should give complete visibility across tiers and provide control of applications to the business with an easy to understand format and intuitive user interface. This should be equipped with actionable instant real time alerts with proper recommendation for resolution. The need of complete visibility of application stack requires APM to establish the relationship from business application at the top to the resource consumption and behavior at the bottom e.g. How “Insurance Online Claim Application” process 5K claims in 12 hours while driving up average CPU utilization to 70% across related DB servers? How much time inter server communication constitute to overall response time versus DB I/O time for a particular CLAIM transaction?
This should also be equipped with intelligence to reflect upon “how application performance is affecting business”. Basically, tool needs to align business process performance with underlying application performance. Modern APM tool should also be able to appreciate wide range of user’s point of view ranging from operator to production support analyst to application tester while giving adequate handle such as diagnostic tool at the code level, drill down feature to navigate down to the root cause such as particular SQL statement that is impacting performance, dashboard view of performance with different dimensions, trend analysis, visualization of application flow, metrics for both business as well as application performance with correlation etc. to address performance concerns. This should be able to monitor applications involving latest technologies/platforms such as .NET, Java, PHP based applications, services at servers (APP, DB, MW etc.) level, integration components in multitier architectures, compliance control points, SLA definition, user experience, real & synthetic set up etc. across on premise to cloud enables SaaS environment while delivering reports on time. APM solution should be able to capture essential monitoring data related to end user experience; Potential solution could be to introduce an intelligent agent in AppServer which can capture data such as response time, app. Availability etc. from end user devices. Smart APM solution should dive into end user devices and captures metrics or essential attributes that can pin point application performance level at end user device is due to device or AppServer.
Approach to Transform
First of all we need to develop strategy to achieve mission of creating a healthy and transparent application and supporting IT eco system. Project planning kicks in with the definition of objective and goal. Goal must be as SMART as it is possible, for example, create an environment to maintain application up time to 99.999%, improve customer’s issues restoration time by 60%, drop service outage by 60%, improve internal KPI by x% etc. Next step should be to perform gap analysis that helps outlining in-scope and out-of-scope. We need to create a baseline data (May be take data for last 2 years) with regard to application performance reflecting customer satisfaction index. Once we define requirement such as “create an ability to monitor health of an application along with its underlying work flow involving latency, response time, refresh time etc.” and develop target application performance index”, performing gap analysis should not be that difficult. Business requirement needs to as high as possible without any technical terms or jargons that can influence the technical solution. Let IT staff translate into technical requirement and specifications. Technical solution, at minimum, should address each one of the connection, applications go through in order to get insight of response time metrics from each involved units even to an extent of underlying slowness from “SELECT” SQL to MQ server to latency introduced due to distance between DCs as example. I think, this is the core at solution phase. Solution may get addressed by creating a brand new application to custom applications to off the shelf product with small customization.
Make vs. Buy approach needs to be evaluated, once we have gathered a fairly well documented requirement. Irrespective of approach, business & IT need to be fully integrated with project. As a part of my assignment, I have been reviewing some of the APM tools from established vendors such as Foglight by Dell, BSM by HP, App Dynamics, dynaTrace by Compuware, BMC – bmcsoftware, ExtraHop tools etc. along with service providers’ viz. HP, HCL etc. IT department, however, needs to tradeoff amongst requirement, performance, Risk and ROI to select the best method and means to meet business requirements. I don’t think any vendor has got a comprehensive tool that can address all of the requirements adapting to the current complex IT eco system, which is intertwined with cloud, virtualized & several software defined architectural set up such as SDDC, SDN, SDS etc. We can, probably, target one tool that can addresses most of the requirement while having few like 1 or 2 or customized applications to address rest of the requirements. If we increase the spread of monitoring tools we won’t be able to get simplistic and holistic visibility of complete application stack. While designing the new APM set up, we need to consider users and their capability also. Solution should address not only “What” part but also “Why” part else we might end up having multiple tools. For example, if we build the solution only to get alert when application slows due to database issue, It is not complete unless we have ability or mechanism to find out underlying cause such as issued SQL statement for a particular transaction is running very slow. In order to transform traditional and technological silo performance monitoring set up to advance, proactive, robust APM set up, a balanced team formation is quite important. Team must be comprising of operation team (who can share AS IS, experience and challenges from existing monitoring setup), Vendors with product features know-how and implementation experience, Business users who can appreciate the criticality of applications, an experienced PM championed in agile/scrum methodology (It is preferable to split big scope into small manageable and drive like sprint for short duration, evaluate result in the iteration and calibrate approach accordingly) and technical implementation team who may have to not only configure the tool with help of vendors, but also have to customize or design new modules to address entire project requirement.
Why it is important today and what business should do
If you don’t have an APM tool, then invest into that right now before IT ecosystem gets further complicated, if you have traditional performance tool managed at vertical (technology) level, look for advance APM and migrate there to get holistic visibility and simplistic control of your applications. APM is also evolving as fast as business is evolving through digitalization and e-Commerce. IT needs to always deeply and broadly integrated with business irrespective which is driving others as I wrote in my earlier blog on the same topic @ http://www.techmanthan.com/index.php/2015/08/16/application-performance-monitoring-becoming-critical-in-smac-byod-iot-era/ Enterprises websites are the gateway for their business, apart from core products and services, they also host whole lot of revenue generating advertisements. They can’t afford for any outage while impacting their revenue and APM is the only way out to prepare them well in advance to take a good command and control of health of applications. Cost of operation needs to come down by freeing up resources to other direct/indirect revenue making areas such as analytics, new product design, R&D etc. A robust APM solution will be equipped with automation from alerting, monitoring, incident creation to resolution either by itself or enabling less costly resource to do so. IT needs to design predictive and explorative analytic model and incorporate the same in APM and implement preventive measures to obviate any business loss due to application failure.
Summary
Until we have a good metrics, measurement approach aided with good visualization tool, we can’t assure things are on right track and progressing. Same concept applies in the Application Performance Management. A modern APM solution is the requirement for a healthy application environment in this era of fast changing IT landscape, which is getting complex and bigger. Making further delay to implement modern APM or revamp old performance monitoring tool, is like waiting to get imploded with numerous unknown security threats (DDoS, BotNet driven malicious attack etc.) or unidentified bugs at code or configuration level. Business and IT should revisit their IT ecosystem with regard to application health and address the gap at the earliest. Enterprises need to invest into R&D lab to secure health and performance of application vis-à-vis business process. This is my second article on the same topic and probably will write more in coming days as token of endorsement for the fact that APM is very crucial and important element in our application infrastructure ecosystem and needs to adapt with the fast changing IT landscape.