Best practices for monitoring cloud-based apps for 2019
It's never been more important to monitor the health of cloud-based systems. However, a recent study by Gartner says that 39% of enterprises operating in the cloud have solutions in place, but still don't have 100% visibility.
Gaining full insights into the health of your cloud-based systems can mean peace of mind for both engineers and managers, plus ensuring your customers don’t run into issues with your software.
We've put together the cloud monitoring best practices you'll need to fill in any gaps in your current monitoring strategy so you can ensure your software meets customer expectations.
Maintaining cloud health
A cloud health issue doesn't always mean that your whole system is down. Minor issues like a troubling pattern or an emerging defect are more common. The goal of cloud health monitoring is to catch these anomalies as soon as possible — ideally before they reach a potential customer.
By following cloud monitoring best practices, you can identify unhealthy situations before they turn into major issues. To keep your cloud in good health, you can rely on your cloud provider but it's better to bolster them with another service. They monitor their own servers and many of them even offer cloud monitoring tools such as Amazon CloudWatch. It's essential to set up your custom cloud monitoring workflow that best suits your own needs.
To maintain good cloud health, ensure you have monitoring set up in the following ways:
Cloud-based services such as storage or eCommerce services.
Virtual machine workloads, Docker containers, and application components.
On-premise servers, either physical or virtual.
Monitor on-premises, hybrid, and cloud infrastructure from the same platform
Monitoring your on-premise, hybrid, and cloud infrastructure from a single dashboard is a quite convenient way of working. And, with modern cloud monitoring services, it's actually possible. Platforms like Azure Monitor let you set up a unified monitoring dashboard that pulls all data you need from the cloud, third parties, and your existing infrastructure.
Ideally, you should treat your on-premise and cloud infrastructure as one single unit. The goal is to gain complete visibility into your entire environment. Bring together cloud and on-premise insights as much as possible. Getting uniform data makes it easier to correlate problems and take appropriate actions. It will also take less time to find anomalies and see the full picture.
Decide the most important metrics
In a complex cloud infrastructure, there are several metrics you can measure. To reduce noise and get meaningful insights, you need to decide your KPIs and focus on them. Here are some KPIs that's worth considering for cloud health monitoring:
- Service/system availability
- MTTR (mean time to repair)
- MTBF (mean time between failures)
- Throughput
- Response time
- Latency
- Security threats
- Scalability
- Cost per customer
You should monitor and analyze KPIs at every layer of your infrastructure. Cloud monitoring tools come with built-in metrics and some of them even let you create your custom metrics.
In many cases, you can use the same metrics as for server monitoring. However, they may need some modifications to be functional as meaningful cloud monitoring metrics. Also, be aware of oversimplified metrics. A simple average, for example, can frequently give you false positives or hide underlying issues you should notice.
Monitor the end user experience with APM tools
Besides cloud infrastructure monitoring, it's also crucial to keep track of the experience of your end users. Bad user experience such as errors, crashes, or slow page loads on the user's end can ruin the success of your product.
The best way to monitor user experience is putting an APM tool to use. APM stands for Application Performance Monitoring and lets you measure how your app performs when it runs on your users' devices.
APM tools give visibility to the application tier of your architecture. They provide you with key information such as code bottlenecks, transactions speed, and active issues. Raygun's APM tool, for example, calculates the Apdex (Application Performance Index) score that helps you monitor your users' satisfaction with your app's response time.
Having real-time information about your end users' experience can help you maintain cloud health. For good cloud health, the best solution is to monitor both infrastructure and application health and act immediately when an issue pops up.
Automate cloud monitoring tasks
There are common issues you will bump into again and again while monitoring your cloud-based apps. Therefore, aim to automate as many cloud monitoring tasks as possible. This way you don't have to spend time with routine tasks, so you can keep focused on issues that require a human decision.
For example, set up an automated auto-scaling action when a key metric reaches a pre-defined threshold. Or, detect and shut up unused resources automatically, that can save you a lot, especially if you are on a pay-as-you-go pricing plan. You can also send yourself alerts and notifications when an automated action takes place.
Choosing a cloud monitoring software
As cloud computing has been around for a while, you can find many cloud monitoring tools that respond to different user needs. However, the market is still growing, so it's worth following the trends and new releases. If your team uses DevOps you may already have tools that can be also used for cloud monitoring purposes.
In fact, cloud monitoring software can mean several different things. It includes full-stack tools with which you can manage the whole cloud monitoring workflow from the lowest-level infrastructure to the end user experience. However, tools that monitor only one specific part of your cloud stack are also considered as cloud monitoring software.
Don't choose cloud monitoring software until you exactly understand how it fits with the rest of your tools and overall monitoring workflow. Ideally, you should monitor every part of your cloud stack, including applications, networks, platforms, virtual machines, containers, microservices, and all dependencies.
Here are some features of good cloud monitoring software:
- Easy to install and configure
- Has a straightforward user interface with a customizable dashboard and side-by-side visualization of key metrics
- Has a unified view that lets you see your overall cloud health at a glance.
- Can gather data from your entire environment, including all your dependencies and on-premise servers
- Collects logs from all your resources and visualizes them
- Allows you to automate tasks and set up alerts and notifications
- Integrates with your other software, including your DevOps and APM tools
- Discovers and monitors microservices running inside containers
- Has an attractive pricing model that suits your needs well
Most cloud monitoring software, like Raygun, offers a free trial period that's always worth leveraging.
Cloud monitoring tools
There are two main kinds of cloud monitoring tools:
Built-in cloud monitoring tools offered by cloud providers. The most important ones are Cloudwatch by Amazon, Azure Monitor by Microsoft, and Stackdriver by Google. Smaller cloud providers also frequently offer a monitoring tool for their customers. These built-in tools have many awesome functionalities, however, it can be risky to solely rely on the monitoring data provided by your cloud vendor.
Standalone cloud monitoring tools that let you monitor cloud health independently from cloud platforms. In cloud health monitoring, the hardest thing is to make sense of the data coming from numerous sources.
You need to catch anomalies early on, but there are many false positive signals you need to filter out. Data visualization, customizable metrics and dashboards, alerts and notifications, task automation, and other smart features all serve this purpose.
Think about the features you want to use and choose the cloud monitoring tool that best fits your needs. Raygun APM has you covered for all of the above and more.
Next steps
The most important thing is to start cloud monitoring before you have a serious issue. Investing in cloud health is crucial if you want to offer reliable and quality software to your customers.
Monitoring your cloud infrastructure is indispensable but not always enough. Consider measuring the user experience as well to understand the real issues your users encounter. An APM tool monitors your cloud app from your user's end and adds significant value to your cloud monitoring workflow.