When a smartphone app doesn't work it's annoying. But when an agency app doesn't work, there can be consequences.

When you think of applications, you might think of your smartphone and the apps you use to access social media, track your workouts, or watch videos. But an icon on your phone is really just an interface to an application. Applications typically run on a server located in a data center. Like a great dessert, there are a lot of ingredients that make an application work. It needs a network, a database, and a server with memory and resources. These ingredients are what make up the application stack. A problem with any one component within the stack will impact the application’s overall performance.

But what can ultimately cause performance issues? Maybe the network is really busy or the database is full. There could be too many people leveraging the application, using up critical resources on the server. Maybe there’s an error or inefficiency in the code.

We all know how frustrating it is when an app on our phone isn’t working properly. And when a federal agency’s application isn’t functioning correctly, it can have an even greater impact: It can affect that agency’s ability to achieve its mission.

Moving Applications to the Cloud Requires Performance Testing

If you have an existing app that’s been around for a while, you’ve already tested it, have it on the proper servers, and have configured everything in the stack to make the application work for end users. It’s running fine. However, when you move that application to the cloud, you are injecting change. Any time you inject change in IT, there is the potential for problems.

Because everything in the cloud is new—the servers, the network, the memory, the database, etc.—it’s vital to test the cloud version of the application to avoid performance issues that could impact your mission. However, when you do a synthetic load test or stress test on an app, you can only test so much because you are simulating a production environment. The only way to get a true test is to perform a production test. Once it is live, you have users hitting the application from several angles. This is when you might find you need additional compute or storage capacity or additional load balancing capabilities.

The worst thing that can happen is to have an application perform poorly after moving it to the cloud. So, how can you guard against this?

Minimize Issues Through Monitoring

Before migrating an application to the cloud, it’s important to measure the responsiveness of your application to set a baseline for response times, performance, usage, abandon rates, etc. It’s best to establish this pre-migration baseline over the course of 30 days. Why? During those 30 days, your application will most likely experience some performance issues due to network capacity, spikes in usage, and other factors. 30 days gives you a large enough window to observe periods where the application is running well and when it is running poorly. Over those 30 days, you can establish a good average for what is normal for your application and you can isolate any anomalies.

When you move your app to the cloud, you should run a new performance baseline, or post-migration baseline, that looks at the same factors you measured before moving to the cloud. You can then compare how the application performed when it was on-premise versus in the cloud. The most important thing to always consider is the user experience. To keep users happy, your application must run as well as or better than it did before moving to the cloud.

One of the biggest benefits of application performance monitoring is mean time to failure: the amount of time it takes you to fix any problems that arise. To do this well, it’s important to leverage a comprehensive application monitoring tool. These monitoring tools will allow you to monitor the app and all its individual components. If it detects a red flag, it will allow you to drill down to the problem and get right to the source, whether it’s a line of code or an issue with the database. When you can easily identify where a problem originates, you can quickly troubleshoot the problem and fix it.

In addition, a monitoring tool can dynamically generate a dependency map. This means you have the ability to understand the app’s relationships and dependencies, including infrastructure, software, and other resources. This will give you an overall picture of everything the app relies on and touches, and therefore you have a complete understanding of what has to be migrated to the cloud environment.

By actively monitoring your apps, especially before moving them to the cloud and immediately after your migration, you can ensure stability with your applications so your users can do their jobs efficiently and effectively, allowing your agency to achieve its mission.