Performance and configuration baselines are critical in understanding the current state of your application environment prior to migrating to the cloud. Without generating cloud baselines, it would be difficult for you to measure your cloud migration success.
At the onset of your cloud migration journey, you should already have an established set of KPIs which lays the groundwork for measuring the success of your cloud migration. Then, application discovery helps you understand the entirety of your enterprise environment by discovering and mapping all the components and their interdependencies. In this article, we will discuss in detail how generating cloud baselines supports your end goal as you migrate your workloads to the cloud.
What is Benchmarking in the Cloud?
Benchmarking in the cloud is a practice that measures and documents the current performance and configurations of an application environment. It is performed at the early stage of your cloud migration timeline. In the 5Ds of IT-Conductor's Cloud Migration Strategy, we call it the Distill stage where the performance and configuration baselines are generated. It comes right after the Discovery stage or the stage where the application discovery is executed.
Cloud baselines support application discovery in the sense that both are used in the Validation stage or the post-migration stage where the cloud migration assessment is performed. Without application discovery, it would be a challenge to generate cloud baselines because you don't know what resources you are getting baselines from. Without cloud baselines, knowing how your current environment is structured would not make sense at all because you're going to move them to the cloud anyway. Just merely knowing the current state of your environment without generating baselines will make your implementation tacky and prone to bugs and issues because you don't have a full understanding of how your environment should be in the cloud. So it is important that you perform these two if you want to seamlessly migrate your workloads.
Questions to Keep in Mind
When generating cloud baselines, you should take into account the following questions to help you plan, measure, and document the baselines of your current monitored systems.
What are the peak values (lowest and highest) of the metric being measured?
What is the average value of the metric being measured?
What time range to use when measuring the peak and average values?
How many data points to use when measuring performance metrics?
What are the error rates of transactions/processes/metrics in the application and infrastructure domain?
For user experience metrics, you should review the business objectives you have defined at the onset of your planning. Then generate baselines around those objectives. For instance, one of your business objectives is to improve the time it takes to process a transaction. You can then measure the peak and average process times for n transactions in a time range where there are a.) more users than usual and b.) fewer users than usual.
So far, we've discussed why benchmarking is important in cloud migrations. It is also beneficial for you to take into account the possible challenges that you may encounter when generating performance and configuration baselines.
1. Long Preparation & Execution Time for Manual Benchmarking
Gathering data when generating baselines may take some time to execute if you don't have a tool capable of exporting performance and configuration reports. Performing benchmarking manually means having to log in to the device(s) directly, capturing data points from manual queries or GUI-based wizards, refining them to support your defined business objectives and established KPIs, and organizing them in accordance with how your environment is structured.
2. Dynamic Nature of Distributed Systems
Distributed systems in production are always changing. The baselines generated at any given time may no longer represent the target behavior of your systems after migration. This is why it is important that aside from the validation stage, which is often only performed once, your target systems in the cloud should readily be available for monitoring. This allows you to capture data right after the migration activity for hyper-care monitoring purposes.
3. Performance Isolation
In distributed systems, the behavior of an application may be influenced by other applications and services running simultaneously. This makes it difficult to measure the performance metrics of each component separately without a tool capable of discovering them as individual components. It may result in service degradation and performance interference.
Generating Cloud Baselines in IT-Conductor
The common performance baselines you need to capture are the resource utilization metrics such as CPU/Memory, storage, and network. In IT-Conductor, you can capture those metrics from the service grid. You can easily drill up/down components in the service grid to capture the different metrics you need in generating performance baselines for your source environment.
Figure 1: Expanded Service Grid in IT-Conductor
Aside from these performance metrics, you also need snapshots of the last working configuration state of your source application environment. This way, it will be easier for you to revert back to its last-known good state should you encounter issues in the deployment stage.
You can use the landscape discovery information from the Discovery stage to capture the different components running in your source environment.
Figure 2: SAP Landscape Discovery
You can also export landscape inventory data with the compute, storage, and networking profiles.
IT-Conductor is also capable of generating customized reports depending on your requirements. For instance, in SAP landscapes, you can define what SAP transactions and jobs you need to measure and then generate a report for your source environment. Then after the migration, you can generate the same report(s) for the resources in the cloud.
All of these baselines will serve as your starting point for comparison during the validation stage upon completing the migration activity. You can use them to quickly perform targeted tuning or revert back to the previous state if necessary.
In summary, Baselines are generated from the Distill stage, and they provide important inputs for the subsequent activities such as:
Design (or Blueprint) of the target environment, including cloud infrastructure sizing and pricing
Migration Planning, and
Performance Validation as part of the SAP Performance Best Practices for Implementation, Upgrade & Migration
We’re almost halfway towards giving you an in-depth discussion of each stage in the 5D's of IT-Conductor's Cloud Migration Strategy. In the next parts of this series, we will go over the remaining stages particularly the Design, Develop, and Deploy.