Editor’s note: This post was originally written for the eG Innovations blog. You can check out the original here.
So your organization has decided that they’re moving to the cloud.
Smart move! Many companies today are either making the move to the cloud or have already made it.
According to RightScale’s 2019 State of the Cloud Survey, 94% of IT professionals say their companies use the cloud. Over 90% is public cloud.
Gartner predicts that public cloud revenue will increase by 17% in 2020. The biggest percentage increase is expected with IaaS.
So you’re clearly not alone.
But what’s the plan after the move for making sure your applications and infrastructure perform at expected levels in the cloud?
When you no longer have full control of your infrastructure, monitoring becomes even more important than it did on-premise. Unfortunately, it seems some companies get the impression that moving to the cloud will solve all their issues.
The cloud has many benefits, but not having to monitor your workloads isn’t one of them. I want to show you why, and provide some tips for cloud performance monitoring.
What is Cloud Performance Monitoring
Monitoring application and infrastructure performance in the cloud is no different than doing so in on-premise environments. You implement agents, probes, tools, and solutions to collect data. Then, you report this data in a way that helps you find and fix performance problems quickly. Ideally, you want to do this before users are impacted.
Some may believe that the cloud providers will take care of this monitoring. But this is not the case. In the cloud, you have the flexibility to automatically spin up instances to support additional users, when needed. But there’s more to monitoring than spinning up compute instances.
Cloud Provider Tools
The cloud providers don’t leave you to your own devices. When you move to the cloud, they provide some tools and solutions to help with monitoring.
If you’re moving to AWS, you have CloudWatch. If it’s Microsoft, you have Azure Monitor. And with Google Cloud, you have Stackdriver.
If you’re moving to a multi-cloud environment, Stackdriver is the only one with options for monitoring non-Google Cloud environments.
These tools are often available from these providers as soon as you start using one of their cloud services. And they can sometimes be easy to implement. But that also depends on the type of cloud services you’re moving to.
Cloud Computing Services
There are various types of cloud services you can choose from. Some organizations choose to do a lift and shift and send everything as-is in their on-premise data center to the cloud. This makes the move a lot quicker.
But while it can be faster, lift and shift doesn’t fully utilize the full benefits of a cloud migration.
To have a chance at cloud success, you have to transform your applications and infrastructure. And the cloud providers have something for all or most of your needs.
You have IaaS, PaaS, and SaaS.
- Infrastructure-as-a-Service (IaaS) includes access to virtual machine instances that give you the most level of control. You select or install and manage whatever OS or software you need, and the cloud provider manages the physical infrastructure hosting your instances.
- Platform-as-a-Service (PaaS) includes access to various software platforms such as ready-to-use SQL databases, SSD storage, and more. You can build applications that utilize these services instead of managing them yourself. So you lose a little more control.
- Software-as-a-Service (SaaS) includes access to services like Salesforce, Office 365, Gmail, etc that a provider makes available. You generally don’t manage anything here. You simply control access to them. So with this service, you’ve lost almost all control.
The ease to implement monitoring in each of these cloud services decreases as you go down the list from IaaS to SaaS. This is because you have less and less control of the infrastructure.
This can be a very good thing.
The Goodness of Clouds
When you decide to move to the cloud, there are many reasons to be happy. Your organization can have increased agility and flexibility to make changes faster to beat the competition.
In a similar way, cloud monitoring has its privileges. There are things you’ve likely had to worry about with on-premise monitoring that will go away when moving to the cloud.
When deciding to choose a monitoring solution, you always want to consider a checklist of things. Cloud monitoring either reduces or eliminates the need for some of this.
Reduced Decision Fatigue
When on-premise, you usually have to decide not only the monitoring solution, but also how you want to monitor. You can go with hardware appliances, software, or a combination of the two. Do you go agent-based, agentless, or a mix of both? So you have lots of options.
This may mean a much longer decision-making process.
When in the cloud, you have one less decision to make. You’re not going to find any vendors, particularly the cloud providers themselves, with any hardware appliances for monitoring. Your only option is only software.
So that’s one less decision to make.
Ease of Implementation
With moving to the cloud, you also no longer have to worry about the sometimes complicated installation and configuration of on-premise monitoring solutions. With cloud providers, it’s usually pretty easy to get up and running with their monitoring because they control the host running the monitoring software.
For example, with Google Cloud, Stackdriver is default on every instance you spin up. In AWS, CloudWatch is usually a simple button-click to get going.
So you can get started monitoring in the cloud fairly quickly. Setting up dashboards and alerts can start fast.
Maintenance and Upgrade Reduction
Another challenge with on-premise monitoring is maintenance and upgrades. You always want to pick a monitoring solution that reduces the time it takes to maintain. You also don’t want to spend your precious time constantly upgrading to newer versions of the product.
With cloud provider solutions, that’s no longer as much of a concern. Because the provider controls the physical host, they make sure that the monitoring solution is properly upgraded for you. All you have to do is log in and see the update.
Isn’t that great?
Until it’s not, because these benefits come at a cost that’s not just financial.
The Negative Side of Clouds
While there are clear benefits to your monitoring when moving to the cloud, there are some challenges that won’t change. You can also expect challenges that will be completely new and you haven’t had to deal with before.
Same Old Challenges
When monitoring, there are a number of challenges you encounter. Your hope is always that your monitoring solution will help with these challenges. When you move to the cloud, they will still remain challenges.
- Identifying the right metrics for collection. The whole point of having a monitoring solution is to collect data about application and infrastructure performance. Today’s applications can generate lots of data, and you need your monitoring tool to collect what’s needed for analysis. This doesn’t change whether you’re on-premise or in the cloud.
- Getting alerted about performance issues. You have other things to do with your time. You can’t sit in front of your monitoring tool’s UI and wait for performance problems. You need the tool to alert you when something bad happens. Its alerting behavior, whether static or dynamic, is very important. This is required in both on-premise and cloud environments.
- Preventing unauthorized access to data. One of the biggest concerns with moving to the cloud is data security. It seems every week some organization is getting hacked. Your monitoring solution collects a lot of information you want to keep private. This doesn’t change when you move to the cloud. In fact, it becomes an even bigger challenge to deal with, especially since you no longer have full control of the infrastructure.
New Problems
With all of the benefits, cloud monitoring presents challenges you don’t have to deal with in an on-premise environment. A few of these challenges include the following:
- Monitoring rewritten applications. Depending on the architecture, moving to the cloud may mean that your applications must be rewritten. That monolithic, single-server database application won’t behave the same in the cloud. It will likely be rewritten to take full advantage of the cloud. Because of this, how you monitor it will have to change compared to on-premise.
- Monitoring tool overhead to contain costs. While moving to the cloud brings new flexibility, it also can do so at an increased cost. With changes to the application, and how cloud providers bill, you will likely need to monitor tool overhead costs. You’re probably used to monitoring how much data overhead is added because it may affect application performance. But in the cloud, you also need to do this for billing reasons because your organization is now paying for this by the GB.
- Lack of visibility for end-to-end monitoring. When on-premise, you can lack visibility to certain applications or parts of a network because of silos. But in the cloud, there is a new challenge of lacking visibility for every application. Since you don’t control the physical infrastructure, you don’t see everything end-to-end. If there are some performance issues with an application you’re monitoring, you wouldn’t fully know if the problem was on your end or on the providers end. This is a completely new challenge that you have to deal with now in the cloud.
Monitoring Matters
As you can see, there are lots of challenges you will either have to continue to deal with and be concerned about. Or, entirely new challenges you didn’t have to be concerned with. So monitoring matters, no matter what environment you’re using – on-premise or cloud. Your cloud provider won’t do this for you. You have to do this.
So how do you try and get around these challenges, while taking advantage of the benefits?
Fill in the Cloud Gaps
The move to the cloud is happening. I hope now you agree that your cloud provider, while giving you some tools, doesn’t remove the need for monitoring. So you will need to fill in the gaps that exist between on-premise and cloud monitoring.
Here are some best practices for doing this:
Baseline End User Performance Pre-migration
Before moving your applications from on-premise to the cloud, you want to baseline application performance. Use the existing monitoring tools you have in place on-premise to get a good snapshot of how each of your applications are performing. Use those tools to forecast how performance may change in the cloud based on your cloud migration plans.
This way you will have something to compare against post-migration. How will you know if performance is getting better or worse without a baseline? So make sure to get a baseline.
The last thing you want is for users to report that an application is slower, and you had no idea.
Monitor Using a Single Platform
Depending on the size of an organization, there can be multiple monitoring tools in use. Sometimes, these tools are polling and collecting data from the same set of systems! So you always want to monitor from one platform to minimize any issues.
You want to extend this best practice to the cloud as well. But this is even more important if you are moving to a hybrid cloud or multi-cloud environment. You won’t be able to reduce your MTTR if you’re having to troubleshoot problems across multiple clouds using multiple tools.
Pay More Attention to Monitoring End User Experience
With your applications and infrastructure in the cloud, users have the flexibility of accessing them from practically anywhere. If they have internet access, users can get to your applications. They may no longer traverse private line connections your organization runs. Because of this, monitoring end user experience is even more important in the cloud.
This can be done by implementing synthetic testing and monitoring to better understand how potential users could be impacted. You should also implement real user monitoring to understand how actual users are experiencing your applications.
Implement Various Forms of Monitoring
With the move to the cloud, you’ve lost a lot of visibility and control. When on-premise, you have total control of what you can monitor. In the cloud, you lose a lot of that. From IaaS to SaaS, there’s a lot you don’t see.
So you want to ensure that you’re monitoring every piece of the cloud infrastructure you can. All of the cloud resources should be monitored.
You want to monitor the following:
- Application performance: In an IaaS environment, you have full control of the applications you move to the cloud. You want to ensure that you are monitoring their performance. The cloud provider tools don’t always focus on application performance. Many only look at resources.
- VM instances: If your organization was not already using virtual machines, or was only using them in a limited capacity, in the cloud, this all that you’ll likely be using. You want to make sure you’re monitoring all aspects of your VM instances provisioned in the cloud. CPU, memory, network I/O – all should be monitored.
- Distributed tracing: With the complexity of today’s applications, you need to know more than ever how individual application requests are performing. In the cloud, this becomes much more complex because of the various microservices that your applications could be using once they get rewritten for the cloud. In order to ensure great end user experience, you will need implement distributed tracing so that you can track a request across each microservice it traverses to solve performance problems.
Save Yourself Late Nights
The cloud is great. Being able to monitor your applications and infrastructure there offers many benefits. But there needs to be guard rails in place to ensure it’s delivering on cost and performance. Otherwise, you could be spending some late nights troubleshooting.
You must still be responsible for monitoring in the cloud. Provider tools will not do them for you. Many are still in the early stages, and some of the typical monitoring features are yet to be available.
Instead of leaving monitoring to someone else, ensure that your current monitoring solution can continue supporting your organization in the cloud. If so, use it pre-migration, during migration, and post-migration.
You will be happier you did!