How important is it to protect my app during times of crisis? A software monitoring manifesto for the COVID-19 lockdown
Hospitals around the world are now monitoring patients. For mild cases of COVID-19, the patient gets a daily phone or video check-up. For those in critical conditions, there are a lot of machines and checks performed at various intervals: blood pressure, pulse rate, oxygen levels and so on. Monitoring web applications is surprisingly similar, yet, of course, not as alarming as human sickness. Still, you can check on your web app’s pulse and capacity just as you would a human’s. And you must do that now, more than ever, because now there is more danger, everywhere. What else is new?
You’re probably thinking amid this turmoil, why focus now on monitoring web apps? Well, it’s never too early to think ahead. If you’ve set your mind at ease regarding your personal safety, and that of your family, it is time to think about your business, too. If you are a software developer or product owner who relies on a website or web application to drive business, or you have an e-commerce site or an upcoming online marketing campaign, now is the time. It is now more important than ever to ensure good customer service and a competitive advantage.
How to check on my app?
Not even software giants like Google can maintain the same level of functionality, so they have sent emails warning their customers about possible delays and service reductions. So what happens if your app relies on third party services? What happens if your server has downtime? What happens if things get sluggish? Well, without monitoring, you wouldn’t even know, you would just blindly lose customers.
But don’t panic. The good news is that we didn’t just realise web apps need monitoring. There is a plethora of software monitoring alternatives and all you need to do is make two informed decisions. One is to act and the other is to choose the most suitable solution for your business. Every patient is different and needs different protocols.
Now, this is not an advertorial. We wrote this article to nudge you about monitoring in general and help you make that right decision. It might be our codeless testing and monitoring superhero app, Trudon. It might not be. We are happy even if your key takeaway is: “I should check on my app once in a while”.
“Is it alive?” – Uptime monitoring
We can’t really check the pulse of an application. So the most minimal, most simplistic web monitoring application will simply check whether your app’s server is up. The server (physical or cloud-based machine) is what stores and displays your content to your customers. This means that if your server is down, your website or web app is down too. Of course, the monitoring app keeps repeating this check, since you can have a pulse now, but lack one in 5 minutes.
Another really really basic thing a monitoring app can do is check a few pages. When we request something over the Internet, the server sends out HTTP status codes that indicate if the request was successful or, contrarily, the reason for failure. Much like asking a patient: “Are you feeling allright?”, and getting a verbal answer. Obviously, getting a “yes” is ideal. So is getting that sweet, once-per-minute HTTP status of 200 OK when monitoring a web app.
By now you will suspect that is not enough. Surely monitoring a sick person entails more than a simple “Ya’ good?”. Well, we can add another layer of complexity and ask specific questions:
- Are your SSL certificates still valid?
- Can I see you do an FTP transfer?
- Who do I call for a simple database query over here?
This checks the availability of specific parts of a web application. So yes, while the server does store and serve your application, there are other technical components that need monitoring.
“I have a need for speed” – Performance monitoring
You can ask Usain Bolt to run a sprint, or you can ask your grandma. In the end, it might be that both reach the finish line. So, technically, both are simply up or capable for a sprint… but definitely not as performant. This is the second thing we can monitor: how long it takes for something to happen with our website or web app.
Performance monitoring tools vary in their approach. They will typically tell how long it takes for a page to completely load, but it can go further. You can in fact monitor the performance of each separate element of a page, to see how long it takes to load certain components of the application. If you are the developer or business owner, you can leverage this knowledge and prioritise any speed improvements. At Trudon, our philosophy is that the stakeholders (and, in most cases, the product owner alone) are the most qualified to decide which business flows matter the most.
Ain’t no party like a third party
An important part of performance monitoring is tracking external bottlenecks and slow-downs. You need to distinguish between internal speed issues and any slowdowns caused by third parties. The development team usually researches the advantages and drawbacks of third party providers beforehand. However, there are cases where things change over time. Maybe your MVP could settle with sending emails via Google SMTP, but now you need more firepower and decide to send them via MailChimp. Maybe an API that sends notifications is experiencing downtime, slowdowns or other issues and you decide to use an alternate solution. Or maybe you’re simply over a pricing plan for an external vendor, and it stops responding to your requests.
Good performance monitoring apps can track this. It is not enough to know that your stuff works great, if it relies on others. And, let’s face it, most websites and web applications rely on a lot of gimmicks. Even your average WordPress blog has a few plugins that can fail or get sluggish. So here is your performance monitoring takeaway:
To avoid losing customers, you need to know what, when, and how a part of your web app went down or slow… But bonus points if you know who broke it and how to fix it.
“I still need more.” – Flow monitoring
Ah yes, I see you are a person of good tastes. You are wondering what is even more sophisticated than granular performance monitoring. The answer is flow monitoring, or functionality monitoring, depending on how you call it. This is where your monitoring app periodically checks the status and speed of entire interaction flows, giving you a full picture of app performance. Usually this is done with interaction scripts that guide the behaviour of the monitoring tools’ interaction with the monitored web application.
See, assume your e-commerce website has a perfectly working functionality to add an item to the cart, and a perfectly working functionality to checkout selected items. However, the product code is inconsistently transmitted throughout the flow, so your customer ends up ordering something they didn’t want. That is bad, bad juju for your business. Now, if some links are broken and there are non-sequiturs in your blog it’s not such a huge tragedy. It’s still not professional, but the risk might not warrant full flow monitoring. When dealing with customer’s money, personal customer information or other delicate data, flow monitoring is the best type of monitoring you can have.
So many choices
Now comes the hard part. We know monitoring is not as popular or widely known as testing. Although a sister of testing and an integral part of the Quality Assurance process, which helps reduce risks significantly, monitoring is sometimes overlooked. But if you are now sold on the idea of monitoring and understand the different types of monitoring you can get out there, then it is time to act.
There are so many choices: free, trial-based, subscription-based. Some integrate out of the box with popular CMS or e-commerce software, some offer minimal availability checks and some go full throttle with flow monitoring and custom reporting. Some require you to code, some make assumptions, others are codeless. Look into Uptime Robot, Pingdom or Site24x7 for starters.
But of course, in our opinion, the best choice for codeless, reliable, cloud-based and cross-platform monitoring is part of Trudon. We offer full performance and flow monitoring at customisable intervals, complete with notifications in case something goes wrong and analytics of response time over time. We support granular monitoring for each component, third party timing, availability checks and more.
Want faster and more accurate cross browser/device regression testing?
Create, customize and run cross browser/device end-to-end tests.