This is part of our How We Work series of blog posts. Today, we’re talking about how we test, monitor, and support client applications before, during and after launch.
Once your application is live on our infrastructure, we monitor it in real time to ensure it remains healthy, defect-free and highly available to your visitors through 24/7 monitoring support, on-call engineers and incident response summaries. We have integrated the following tools to ensure we stay on top of potential problems before they become real issues for your users and your business.
Exception and error reporting
If something goes wrong while the application is trying to perform a certain function, our exception and error reporting service alerts us to the problem so we can proactively fix it before a bug is ever reported.
System metrics monitoring
We use a monitoring tool that provides a single place to aggregate application data and represent the data in meaningful graphs within a collection of dashboards. This is where we monitor things such as server health, application metrics, load, and uptime of connected third-party tools.
Application performance profiling
We track and profile every single request to and from the application servers. By doing this, we can provide insightful information into potential problem areas within the application through detailed stack traces. If certain pieces of your application are running slowly, this is where we go to get answers.
Dependency vulnerability monitoring
Today's open source platforms rely on dozens of third-party code libraries. We monitor the ones your application is using so we can anticipate security vulnerabilities and library updates.
Logging provides a historical archive of application activity for every single transaction that takes place. If a bug gets reported, we can retroactively go back to the logs and watch the request / response cycle play out to see exactly what happened between the application and the user.
Static code analysis
We believe in building and delivering high quality, well tested code. We use unbiased third-party tools for quantitatively measuring your application's code quality and test coverage and provide recommendations for how to reduce technical debt and improve the extensibility of your application.
Automated configuration management coordinator
When you have a big application with lots of servers, it can be daunting to keep them all up to date and healthy. Our automated configuration management coordinator acts like an air traffic controller for your application servers.
We just mentioned a lot of tools and services. It's a lot to keep track of. Our on-call alerting service integrates all of them together into a single reporting service. We schedule on-call hours for our engineers, and if there is an issue anywhere in the application, they are instantly paged with details about the exact issue so they can quickly resolve it no matter the time of the day (or night).