Why Improving Application Performance Is So Hard
Why Improving Application Performance Is So Hard
Application performance is more critical than ever, as users demand and expect results. But, it's easier said than done. Find out why, so you can boost your performance.
Join the DZone community and get the full member experience.Join For Free
Sensu is an open source monitoring event pipeline. Try it today.
As more enterprises move their applications and services to the cloud, we see a clearer focus on ensuring good application performance for users. That's beneficial for end users and for organizations focused on DevOps and apps. And it's a smart business decision-just look at recent APM provider acquisition data to see the size of this industry.
Application teams want to develop for the cloud where they can iterate faster and make changes quickly. And managing application deployment and processes with cloud computing makes those teams' jobs easier. But end-user experience is more important than ever, and legacy application performance monitoring isn't up to the challenges of distributed cloud deployments.
As your enterprise adapts to these cloud changes in the application delivery infrastructure, how do you guarantee the experience and productivity of users, especially your company's employees?
The Two Big Challenges to Improving Application Performance
1. Application Performance Goes Way Beyond Code
The transition to the cloud means one thing for all applications of all kinds: the internet has just been inserted between your users and the application they're using. Your critical apps that used to run locally are now competing with all other internet traffic leaving your office, not to mention the congestion within the cloud service provider. This causes user issues and slowdowns regularly, for which IT is often unprepared. For example, a recent report on Office 365 deployment found that 70% of businesses using it report latency on a weekly basis, and nearly 69% report weekly bandwidth problems even after upgrading network infrastructure.
The internet and the software-defined cloud provider networks are very complex, ever-changing networks, and they've become mission-critical to your application's performance. These networks that you can't see or control are now essential pieces of your application delivery path and infrastructure.
So if performance is slow or spotty, there's not a lot you can do. Server-centric performance can get better if you try various techniques like CDNs, dynamic scaling or IaaS systems like DynamoDB. But those only go so far and only help if you developed the app in question.
Users are getting to your company's apps over the open internet. Even if the application itself and the provider platform and networks are running perfectly, the use of the open internet could kill that user's experience.
And who will hear about user experience problems? The IT team, of course, even if the IT team doesn't have any say in where those apps are deployed or any idea how to fix the issue.
2. Code-Based APM Doesn't Work for Commercial and SaaS Apps
While most APM focus has been on the performance of the applications that you develop, the vast majority of cloud application use today is via SaaS services. There's just no way to get visibility into the code and infrastructure that are delivering SaaS apps.
Code-level application performance monitoring (APM) is one small piece of the infrastructure monitoring puzzle if you're building and deploying apps in the cloud today. Even if real user monitoring is part of your approach, you still don't get the necessary data about the root cause of issues if you're not controlling the application code.
The DevOps teams running these SaaS services are some of the best in the world, and they do a wonderful job ensuring that their code, infrastructure, and services are working optimally. Real-time status dashboards like Trust.Salesforce.com offer detailed insights into the status of SaaS provider infrastructure. But your user's experience could be crushed by parts of the application delivery path that are outside of the SaaS provider's environment and that aren't represented on their monitoring dashboards.
How to Get Better Application Performance
How can you fill in this new application performance gap? Understand the network path. Since application performance today is dependent in large part on how every hop along the network performs, you'll want to monitor with that in mind. Use monitoring that includes web synthetics to ensure access, good user experience, and full operation.
Here are some other ways to get back what you've lost:
- Know your enemy. Discover the apps in use on your network to understand where your capacity is going.
- Measure to where your apps are running. Know if your ISP is delivering what is promised and the actual performance achievable to where your apps are, whether over the ISP's network or in the cloud.
- Establish performance baselines. Know what is normal to detect the abnormal.
- See inside the cloud. If you are hosting apps that you developed in a cloud service vendor, understanding the performance of the components running your code is critical and not always visible, even when running code-level APM.
Ultimately, what we've considered APM in the past is just one piece of better application performance. Providing a better end-user experience for your applications will go way beyond code.
Published at DZone with permission of Sean Armstrong , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.