Network Operations: How To Properly Monitor Your SaaS

4 min read
DevOps - Igniting Your Startup

Monitoring comes in different forms, each for different problems, identifying different kind of issues.

Software-as-a-Service is a new kind of software that runs online, “in the cloud” like many are used to saying these days, instead of on your desktop PC or mobile device.

Packaged software

The simplest example here is Microsoft Office. The Microsoft Office suite (that includes Word, Excel, PowerPoint, Access, and everything else but the kitchen sink) is a software package that you download or buy on a CD and install on your computer. Your documents are local, your software is local. Office works as long as your computer works and it only runs on your computer. If you need to send your friend an Excel document, he too needs to have Microsoft Office installed on his computer.

Online software, or SaaS – Software-as-a-Service

The SaaS counterpart is Microsoft Office Online. Basically, you access a web page where you authenticate yourself, and where the application runs. Your documents are stored online (usually private), you can work on your documents from any computer and it works as long as the website works. Ding! This means that when the Microsoft Office Online site is down, NO ONE in the world can read, update, copy or even list their documents. That could be hundreds of thousands of customers, no matter if they just went on stage on some big presentation or they just found a few free moments and want to work on something, they all get a nice error page. Bam! Instant frowns all around the world. Hence the importance of this. As software gradually moves online, people expect it to work just like on their own computer: ALL THE TIME.

Here’s why monitoring your SaaS is one of the most important business aspects (besides making money). Hey, if your SaaS is down, you’re actually losing money! And reputation. And you’re probably looking for some lawsuits along the way for making other people lose money.

Internal monitoring

There is no miracle-solution that will do everything for you just like there’s no universal size T-Shirt that you’d actually go out with. There are different tools for monitoring different parts of your SaaS.

Internal monitoring refers to software that runs on your server and lets you spot problems before customers do:

  • Server Monitoring Tools – these are (usually free) programs like Nagios, Monit that run on your servers and let you know if your disk space is about to fill up, if your CPU is too abused or if you’re generating way too much traffic. But these are just symptoms, they won’t tell you where the problem is.
  • Application Monitoring Tools – these plug into your app and tell you if your requests are going haywire or if you application just stops for no reason. These help you investigate the problem as well. One good example of this is New Relic, but be ready with your wallet on this one. Great tools cost money, ya know.

Internal monitoring tools help you get to the bottom of problems BEFORE they manifest for the user. When you know you’re low on disk space, you usually have time to see where’s the “leak”.

External monitoring

External monitoring tools are crucial because your internal monitoring tools are not invincible nor foolproof. External monitoring tools help you monitor various aspects of your SaaS, directly from outside your infrastructure, just like a real customer:

  • Availability (uptime) – uptime is the single most precise indicator of how much of the time was your service available to the public or customers. Monitive can help you with that.
  • Performance (latency) – how fast is your service accessible from different parts of the world? If you don’t build a SaaS for your local town only, you’ll want to know how it performs, from where, and more importantly, when latency changes suddenly. In order to find out WHY it changed. So that you could fix it. Right?
  • Email flow – How do you know when you don’t get email messages anymore? See? Only a 3rd party could periodically test and inform you about that.
  • Various issues that are not identifiably from within your infrastructure: these vary from deployment to deployment but can include: firewall configuration, routing problems, DNS issues and more.

Oh, and in case it wasn’t clear enough, monitoring is not only about collecting lots and lots of data about your system. It is about having smart alerts that let you know as soon as something’s up. Or down. Or only struggling.

Admitting you have a problem is the first step in fixing it

Never ever rely on your customers to tell you when you’ve got a problem. That’s a big no-no from the page one of “Things NOT to do within your startup”. And no, you don’t need to research this one. It’s like the train conductor that relies on the passengers to tell him if something’s not right. Or the plane pilot that doesn’t look on any of his cockpit gauges and relies on the passengers to tell him if he didn’t got something right. It’s scary even when you think about it, isn’t it?

Interesting read?