Updated: Apr 16, 2020
We all understand how important it is to find software bugs early in the software-development life cycle. But the question is: do we have the right tools for the job?
In my experience, most of us spend far too long just watching the problem patterns instead of taking action to solve them. This is exactly what happens when it comes to Application-Performance Monitoring. Instead of doing architecture analysis during the construction stages, we use log files to find the source of the problem later on – and then organize task-force meetings where all the teams involved discuss their findings.
The solution is so simple we usually overlook it. APM actually offers you the transparency for uncovering the real problems behind unreliable or error-prone IT services. Let me share some use cases to illustrate how you can really make use of APM in your SDLC.
Use APM for design validation
As we add more and more layers in our backend systems, the complexity increases. Virtualization, containers, new frameworks, new clients and content may all impact the performance of your applications. In the early design stages, you should start investigating call patterns and basic service implementations such as the number and types of data objects that are transported. APM provides the required insight and you can visualize the implementations on dashboards to make everyone aware of current behavior.
Use APM for performance analysis and optimization
Don’t just hope that the response times and user experience will be good enough. Make performance analysis a fundamental part of your developers’ and QA teams’ daily work. Every layer of our modern IT applications is a potential source of performance bottlenecks that can be extremely difficult to pinpoint. APM collects all requests and provides the insights required. Your experienced performance teams can build nice dashboards so you can keep an eye on the key performance indicators.
Use APM to establish a performance gate
To keep the quality high, the fast flow from dev to ops requires advanced concepts. Any teams attempting to perform this process manually will simply not be fast enough. Hundreds of tasks need to be performed in the process from deployment through to testing and analysis before releasing a new product to prod. APM can play a crucial role in this scenario by helping us to trace all the testing requests executed and comparing them to a previous release. Most of the APM solutions also have integrations to a CICD platform such as Jenkins that allows you to run a performance test as part of your build and to create a performance-analysis report automatically. If everything goes well, the new release is deployed to prod. Violations of the preconfigured thresholds will immediately be visible to your developers, who can quickly resolve the problem spots and restart the automated build, deployment and performance-validation process. Using this solution means you avoid the time-consuming cycles from dev through QA – and ensures that high-quality products make the journey to the higher stages.
Use APM to visualize the current state
Reporting and visualization is not everyone’s favorite job. While I understand this entirely, I see how anyone that fails to present their work in the best light will not succeed. Humans are naturally oriented toward the visual – we only really believe something when we see it. Imagine that your team is producing software but they don’t give you any updates on their progress – no reports, no charts and no text messages. You won’t have any proper insights into the status or the capabilities of the new product. You can easily solve this problem just by letting APM metrics do their excellent work. You can then view on monitoring screens the key performance figures such as processed requests, service-response times, error statistics and user-experience metrics. Place these figures in a prominent place. Such information radiators do a great job of letting everyone see just how robust the application under monitoring really is.
Use APM for continuous monitoring and improvement
We tend to spend large sums of money on developing a new application and deploying it to production. After that we simply hope for the best as far as the system’s reliability is concerned, and whether or not it will function well for years to come. Such wishful thinking can quickly lead to serious performance issues, however; as soon as any changes appear in infrastructure or in data or user behavior. I often wonder why continuous monitoring and improvement at the post-production stage are not included in our project planning. The small investment required will save your customers the big headache of slow response times or poor availability.
Application-performance monitoring gives you outstanding transparency for the internal flow and behavior of your IT services. Once you’ve started to explore the benefits of APM, you’ll want to use it in every performance testing or monitoring mission.
Keep up the good work. Happy Performance Engineering!