The days when system and performance monitoring were just a “nice to have” and not really a core requirement for operational readiness are now gone. It is no longer acceptable from a business perspective that online applications can go offline or “grind to a halt” without warning. Instead more enterprises are embracing the “DevOps” methodology where Development and Operations are merged to foster innovative processes to improve application performance and the efficiency of code deployments.
Using Continuous Delivery (CD) to automate and improve the process of software delivery with techniques such as automated testing, continuous integration and continuous deployment allow software to be developed to a high standard and easily packaged and deployed to different environments
Application Performance Management (APM)
APM is the translation of IT metrics into business value.
Application Performance Management (APM) is the monitoring and management of performance and availability of software applications. APM strives to detect and diagnose application performance problems to maintain an expected level of service. The main focus of APM is to deliver better performance and ensure an acceptable end-user experience for critical applications by:
- Reducing the time it takes to identify and diagnose problems
- Reducing finger-pointing and the time-consuming war-room approach to troubleshooting
IT operations of large enterprises routinely have to monitor applications and systems that rely on a multitude of dependent systems and resources. To manage a comprehensive view of performance, a full-system APM framework is needed to identify bottlenecks and measure component uptime through the complete lifecycle of business transactions. Gartner Research has published an APM conceptual framework that had been adopted by many IT organizations. This framework defines 5 dimensions of application performance:
- End User Experience
Measuring application traffic from user request to data and back again. Applications can be monitored passively or actively. Passive monitoring is usually implemented using external monitoring tools while active monitoring usually utilise synthetic probes and web robots predefined to report system and business transaction availability and performance
- Runtime Application Architecture
Application Discovery and Dependency Mapping (ADDM) solutions exist to automate the process of mapping transactions and applications to underlying infrastructure components. These mappings can be used for event correlation and provide the basis for a general understanding on how a network topology interacts with an application architecture.
- Business Transactions
Business transaction management (BTM), also known as business transaction monitoring is the practice of managing information technology (IT) from a business transaction perspective. It should allow tracking the flow of transactions across IT infrastructure, in addition to detection, alerting, and correction of unexpected changes in business or technical conditions.
- Deep Dive Component Monitoring
Deep Dive Component Monitoring (DDCM) is targeted at the middleware layer and focuses on web, application, and messaging servers. It should provide a near real-time view of the performance of middleware stacks such as Java EE and .NET including correlation back to individual business transactions
It is important to use a common set of metrics to collect and report on for each application to provide a standardized common view to present application performance data. Collecting raw data from the other tool sets across the APM model provides flexibility in application reporting
The Performance Scan is a service offered by EspalierTech where their experienced engineers can assist customers in tuning the performance of their application and help project teams to guarantee that their non functional requirements are met. Customers can gain a significant amount of time by leveraging the experience of EspalierTech engineers to analyze and improve their system’s overall performance.
This service includes processes and tools to support:
- Log Analysis
Enhanced monitoring with log analysis to reveal potential problems that would not be detected with simple availability monitoring
- Application Diagnostics
Diagnostics to help find the root causes of bottlenecks which can avoid potential outages or slow-downs
Predictive analytics to proactively manage dynamic trends and capacity analytics which can help maximize performance and utilization
Example Top Performance Issues
- Over complexity
Enterprise applications increasingly consist of a large collective of distributed software components and services that enable complex business processes. With so many moving parts, something’s always bound to have the chance of impacting performance, even with a resilient architecture.
- Inefficient coding and design
One of the biggest impacts to application performance is caused by companies outsourcing or subcontracting their application development and standard quality control processes outside of their company. Application quality and performance needs to be built into an application platform from the beginning and cannot be an afterthought or something that “we’ll fix later”.
- Insufficient resources or infrastructure
Applications are distributed by nature, and unless the underlying infrastructure is responsive on all the different components of the application service, the entire application service will be impacted.
- Lack of application testing
Insufficient testing of the application in a “production like” environment and under varying conditions will increase the risk of actual production performance issues. Tied to that is for developers and testers to have a clear understanding of the non-functional performance criteria.
- Inconsistent configuration for different environments
A typical application includes hundreds of different configuration parameters and is subject to numerous changes. The volume, velocity, and variety of configuration changes can quickly overwhelm IT operations if not kept under control. This is especially true when considering that any minor misconfiguration could potential lead to a high impact application performance or availability incident.
- Virtualization and the cloud
Virtualized environments are becoming too complex to troubleshoot with traditional silo tools. These produce too many isolated metrics and alerts that don’t make much sense and are hard to interpret for administrators.
- People skills and communication
Skill sets and knowledge of staff need be aligned with application portfolios.
- Lack of proactive monitoring
Lack of proper end-to-end monitoring can prevent IT from comprehending the health and capacity situation of applications. Eventually these applications will reach a point where they are no longer stable and may suffer from performance degradation or even downtime.