Friday, December 4, 2015

Testing in production a.k.a monitoring


    Web applications architecture and functionality becomes highly interactive, often executing complex client side logic in order to give a rich and engaging experience to the end-user. This inevitably  adds a certain complexity, meaning that it's no longer good enough simply to measure the effects users have on the back-end. You will need specific solution in place to take care of your business's most valuable features. It has become necessary not only to measure and analyse the client-side performance, but also to make sure the best possible 24/7 experience for your users.

    When I say “testing in production” you might recall a QA team that uses API heart-beat (CRUD) calls in hopes of keeping the application metrics up to date, but in reality this is no longer enough. End users may be were the ones who suffer, while your back-end continues to assure you that everything is OK. For many reasons, most businesses avoid testing in production altogether because it’s too risky for the end user. But the ones who knows how much a split second costs  - it's mandatory to monitor their user journeys and analyse the performance metrics gathered around the clock.  

    Solution is clear - proactively monitor your application. Simulate user behavior to catch problems before your customers do. One way to go is using some of the SaaS platforms that will take care of this critical activity for you. They will run automated tests around-the-clock and around-the-world for you. Complex software architecture? Multi-step user flows? Single page app? On-page interactions? They’ve got it all covered. You can easily customize and monitor using straightforward scripting.
You want your app to work correctly all the time. Troubleshooting and error identification are necessary parts of smoothly-running software. You'll get simulated essential user flows and interactions. Reproducing business-critical functionality looks quite easy. You'll also stay informed about the availability and reliability of your software and ensure an error-free product experience for your customers. Let's not forget the instant alerts (to your service desk or app support).


    However, you can develop a homegrown solution if the providers are not what you're looking for. In most cases for monitoring purposes a full scaled solution is an overhead, that can be avoided. You will get all the cloud benefits at a reasonable price. I've done some research and my weapon of choice is New Relic. Not that the competition is far behind, but it has some catching to do (especially with API headers in the requests). 

    A brief intro - setting up test monitors with New Relic Synthetics are easy. What you need is just to enter a URL and select a few configuration options. They will launch a Selenium-driven Chrome browser that sends relevant data immediately using turnkey test scripts. I'm more interested in building our own scripted monitors. New Relic Synthetics simulates your real customer experience starting in no time. 

  Read more about the project...

No comments:

Post a Comment