As a developer who has worked both at a startup and for Rackspace, I know the importance of monitoring. The worst thing is finding out that your app is down from a tweet or email from your end user. In addition to the performance of the app, it is also helpful to know the cost that you are incurring. While the pay-as-you-go utility pricing of the cloud has enabled many entrepreneurs to get their app up and running, forgetting to spin down servers that you put online for a short burst of time can end up biting you. That is why it is important to monitor these three things: physical infrastructure, application health and spend.
When monitoring your physical infrastructure, such as servers and load balancers, you want to make sure that they not only have connectivity, but also a snappy response time. At Rackspace, we have a product called Cloud Monitoring that lets you set up a basic ping check to test the connectivity from three different geographic regions. Furthermore, there are some more advanced HTTP checks that can look for a specific block of text on the page or even place a particular item in your shopping cart to make sure that your site is functioning. Knowing that your infrastructure is up and available is key to having a reliable app.
The second thing that developers want to monitor is the actual app itself. This would help you understand when your app throws an error, such as unexpected data from a user you haven’t accounted for, invalid data from a third party source or even if something in the app just breaks. There are some third party tools that are incredibly helpful to monitor your app’s health. Both Airbrake and New Relic are excellent at monitoring the guts of your application and alerting you when there is an issue.
The final thing you want to monitor is something that not a lot of devs think about: cost. In a cloud world, it’s easy to lose track of what you are spending. You may have multiple cloud environments where you spin up temporary cloud servers and forget to take them down. Or you could write a script against the cloud API to create servers and it unexpectedly goes haywire, standing up servers you didn’t even need. Or you could simply use different providers and it is hard to aggregate total costs.
To help with this problem, we have a partnership with a company called Cloudability, which lets you monitor your spend from not only Rackspace, but also other cloud service providers. You can set up spend thresholds that give you alerts if your anticipated monthly spend exceeds your monthly budget. This has saved me a lot of money in the past when I inadvertently left up some test servers.