A lot of people haven't really heard of synthetic modelling and how it affects IT and application development. Yet, it's a technique that's extremely useful for companies to help them preserve up-time, reduce the time IT wastes on minor problems, and test new features easily.
What is Synthetic Monitoring?
Synthetic or active monitoring is creating a software bot that pretends to be a user. It can be run inside or outside the firewall, depending on what you want to test, and can be run on both the active software, such as your website, and new software you are testing.
The software bot will go through typical user actions, often at 5-minute intervals, to help spot problems quickly, check all of your machines are running correctly, etc.
Here are three ways proper use of synthetic monitoring can help prevent headaches and customer service problems later.
1 - Synthetic Testing
Synthetic monitoring can be used as part of the testing process for a new application, UI changes, etc. While it cannot always replace good software testers (who are, after all, actively trying to break the software), you can run a lot of synthetic monitoring processes to simulate how a new site, for example, will work under load. Synthetic monitoring in the test stage can save a lot of time and resources over trying to use human testers for the routine stuff, and free up software testers to see if they can bring the application down with the weird edge cases.
Running a load test with synthetic monitoring, however, is one of the greatest uses of the technology. You can also run the same tests on the old and new parts of the site to verify whether you have actually improved performance and if so by how much. Synthetic monitoring ensures that the same actions are taking place in the same order and eliminates mistakes which might be made by a human tester.
You can also use synthetic monitoring to perform load tests on your regular site prior to, say, Black Friday or that date before Christmas when you know everyone puts their orders, helping you prepare for peak traffic. This can help avoid the embarrassingly common incidents where even large companies misjudge traffic and their site goes down. Do you need to temporarily increase your cloud server space or bandwidth? In this day and age, load crashes are not a failure of technology but of planning and management.
2 - Spotting Issues Quickly
Ideally, you should not be getting any bug reports from your customers. In the real world, of course, it is impossible to catch every single issue before a customer does. Synthetic monitoring, however, can often spot when a server has gone down before anyone else does, and allow you to get it back up and running quickly. You can also win points with customers by showing that you are aware of a site problem and working on it. Customers are more likely to wait for your site to come back up if they know that you are not ignoring them, and one of the best responses you can make to a bug report is "We already know and are working on it."
Early synthetic monitoring was merely automated pings that told you if your site was up or down, but modern systems can test the entire site at intervals, spotting whether a server you are linking to is down, whether your password server is timing out, etc. Newer tools can use Session Replay to capture actual user activity and then replay it, which is useful for troubleshooting a customer's problems. They can also help pinpoint exactly where the problem is, allowing it to be fixed quickly. The faster your issue is diagnosed, the faster it will be fixed. In today's climate, customers have come to expect 100% uptime on websites and e-commerce sites, and may well go elsewhere if your site is down and not fixed very rapidly indeed.
The monitoring can also help spot potential customer service issues before you get complaints, even in some cases before the site goes live and becomes available.
3 - Targeting Resources for Improvement
Synthetic monitoring is awesome for baselining performance and working out where your issues are. For example, you can run scripts at times when nobody is using the site so as to determine the speed of APIs and object loads when there's little or no load on the network. This will tell you which parts of your site are slowest and need improvement.
A properly designed synthetic monitoring script can also do things like determine which parts of the user experience are creating lag. Synthetic monitoring, these days, can emulate a user logging in, doing a search, adding items to their cart and checking out, and can compare different times of day, different geographies, etc. Modern tools can even emulate user journeys that include two-factor authentication, helping companies balance security and convenience and improve two-factor login capabilities. Over time you can get a sense for what your real (not likely) peak times are. This can help you find days that you might not have expected to be busy. Do you have a peak of traffic on January 10-11 every year from people spending gift cards? If so, you might want to try and have extra customer service on board.
If logging in is slow, then you can direct resources to improving your password server. Combined with other forms of monitoring, synthetic monitoring can tell you exactly what parts of your site need the most work.
Synthetic monitoring used to just be a way of alerting you when your website crashed so you could restart it, but has now become much more sophisticated. Modern tools can do almost anything a real end user can and can simulate typical user behavior with enough accuracy to be useful. Modern browser simulators are fairly light code-wise and use relatively few resources, allowing them to run without interfering with anything else. Using synthetic monitoring can improve the reliability and performance of your website and get you customer service points with customers.