IBM & Red Hat on AWS

Optimizing Workload Performance and Cost with IBM Turbonomic on AWS

Customers who are interested optimizing workload performance and costs while achieving sustainability objectives can now leverage IBM Turbonomic on AWS. IBM Turbonomic is an AI-driven Application Resource Management (ARM) solution that helps organizations improve the performance and cost of their IT infrastructure on AWS and hybrid cloud environments.

This containerized, microservices ARM application is offered by IBM on the AWS Marketplace, providing flexibility for customers to deploy it in their own AWS accounts or opt for the Software-as-a-Service (SaaS) subscription model.

In this blog post, we’ll explain how Turbonomic works on AWS, helping in continuous optimization and cost efficiency of your AWS resources, while improving application performance. Additionally, we’ll show how Turbonomic can facilitate migrations to AWS.

IBM Turbonomic architecture overview

Turbonomic runs as a SaaS offer on AWS (figure 1), or it can be deployed on Amazon Elastic Kubernetes Service (Amazon EKS), Red Hat OpenShift Service on AWS (ROSA), Red Hat OpenShift Container Platform (OCP) or Amazon Elastic Compute Cloud (Amazon EC2).

Diagram showing an AWS architecture view of Turbonomic SaaS on AWS.

Figure 1. Reference architecture of IBM Turbonomic SaaS on AWS.

Turbonomic is an agentless solution that  uses AWS APIs and Amazon CloudWatch to retrieve metadata and configuration details of AWS resources, including:

It uses AWS Cost Explorer to identify underutilized resources, adjust instance sizes, or use Amazon EC2 Reserved Instances (RI) for better performance and lower costs.

Turbonomic can also take information from Application Performance Monitoring (APM) tools such as IBM Instana, Cisco AppDynamics, Dynatrace , Datadog or New Relic, gaining visibility over resource requirements, and providing suggestions to enhance performance and efficiency.

Integration with messaging platforms such as Slack or email provide real-time notifications. Authentication can be done with Amazon Cognito, while automation tools like Ansible or Terraform enable automated actions.

Turbonomic concepts

Turbonomic supply chain

Turbonomic helps you maintain application performance and resource efficiency through continuous application resource management. Maintaining environments in their desired states through efficient resource utilization. It models your environments using an application-driven perspective, similar to a market with buyers and sellers forming a supply chain. Figure 2 illustrates this supply chain, demonstrating the flow of resources from the datacenter through physical tiers, virtual tiers, and into the cloud.

Diagram of Turbonomic modelling an environments as a market of buyers and sellers linked together in a supply chain.

Figure 2. Turbonomic models environments as a market of buyers and sellers linked together in a supply chain.

Actions and Policies

Actions are created based on Turbonomic’s understanding of application resource requirements and the infrastructure where applications are running. Actions include:

  • Purchase cloud instances at discounted rates through Buy actions to minimize on-demand costs.
  • Move actions to address performance issues, or improve infrastructure efficiency.
  • Provision actions to increase capacity by adding resources to the environment.
  • Reconfigure actions to fix misconfigurations and bring resources into compliance.
  • Scale or Resize resource allocation for workloads to meet performance needs.
  • Start, Stop, Suspend, or Delete actions to resources such as Amazon EC2 instances, or Amazon RDS databases, to optimize costs, utilization and efficiency.

You can also define placement, automation and parking policies to create rules that control how Turbonomic analyses resource allocation, displays resource status, and recommends or runs actions.

Targets

To execute actions on your environment and monitor workloads, Turbonomic uses targets. You can add as many targets as you want to your Turbonomic instance. For AWS targets, it requires AWS IAM User or Role with permissions to discover, monitor and execute actions on your AWS resources.

You can add AWS as a target in Turbonomic following the steps below:

After setting up AWS targets, Turbonomic continuously analyzes CPU, memory, storage, and network through Amazon CloudWatch metrics. It also uses historical data on resource utilization and application performance, to make recommendations and maintain your infrastructure’s desired state.

AWS resources optimization

Amazon EC2 optimization

Turbonomic collects continuous metrics, instance and configuration details from Amazon EC2 instances including virtual CPU (vCPU), virtual memory (VMem), Network and storage input/output (IO), quotas, disk count, RI inventory, pricing and discounts among others. This data enables actions, including scaling recommendations and instance type or size optimizations. Turbonomic uses CPU effective capacity, instead of CPU processor speed, to identify the best suitable instance for your workload.

Customized deployment architectures or using optimal Amazon EC2 instance types can offer a better price-to-performance ratio. For instance, downsizing to a smaller Amazon EC2 instance can optimize workload efficiency by maximizing instance capacity usage. Turbonomic determines CPU effective capacity using benchmark data from the Standard Performance Evaluation Corporation (SPEC).

Turbonomic also recommends moving workloads from On-Demand to RIs when appropriate. To do that, it takes into consideration factors like RI inventory, pricing, discounts, number of attached Amazon EBS volumes, quotas and Amazon EC2 instance types by AWS Region.

It can make use of “parking” actions to temporarily stop Amazon EC2 instances and lower costs. While stopped EC2 instances incur no charges, keep in mind that associated resources like Amazon EBS volumes or Elastic IP addresses generate fees. Start instances when necessary. Utilize the Parking page to execute parking actions or apply parking schedules to your instances.

In the Turbonomic Action Center (Figure 3), you’ll find a list of recommended actions for your Amazon EC2 instances. Including details such as your AWS account, Amazon EC2 instance types, discount coverage, and On-Demand cost.

Screenshot showing some suggested actions to optimize Amazon EC2 instances for performance or savings.

Figure 3. Suggested actions to optimize Amazon EC2 instances for performance or savings.

Details of each action are also available from the Turbonomic Action Center console. You can see when an instance must be scaled down because it has underutilized vCPU, memory, or  network throughput (see Figure 4).

Screenshot of Action Screen showing details of all actions recommended to optimize an EC2 instance.

Figure 4. Details of all actions recommended to optimize an EC2 instance.

Turbonomic executes actions independently, via ServiceNow integration, HTTP APIs, or Red Hat Ansible Automation Platform. With ServiceNow, actions are logged for approval workflows. Webhook APIs enable complex workflows, such as notifications to Microsoft Teams or Slack, allowing IT teams to review and execute actions in the Turbonomic interface. Additionally, with Red Hat Ansible Automation Platform actions can be automated.

Amazon EBS optimization

Turbonomic recommends and automatically adjusts volume sizes and types on Amazon EBS based on your defined policies, to match your workload needs. These adjustments happen in real-time, optimizing both performance and cost to meet your objectives. You have the flexibility to fine-tune settings such as input/output (I/O), input/output operations per second (IOPS) and bandwidth.

Scaling actions on AWS storage are non-disruptive, resulting in zero downtime (Figure 5). This means that changes can take effect without requiring a reboot of the Amazon EC2 instance to which your volume is attached.

Screenshot showing suggested scaling actions for Amazon EBS volumes.

Figure 5. Suggested scaling actions with zero downtime for Amazon EBS volumes.

Turbonomic can detect low-storage Amazon EC2 instances and proactively increase volume sizes before running out of space, as well as sending notifications to IT teams to investigate root-causes.

Figure 6 shows two types of scaling actions for Amazon EBS volumes, addressing performance or cost reduction.

Screenshot showing suggested actions to optimize Amazon EBS volumes performance or costs.

Figure 6. Suggested actions to optimize Amazon EBS volumes performance or costs.

Amazon RDS optimization

With Amazon Relational Database Service (Amazon RDS), Turbonomic’s actions combine both compute and storage scaling.  It supports Amazon Aurora and Amazon RDS engines for MySQL, MariaDB, PostgreSQL, Oracle, and Microsoft SQL Server. To reach your desired state, Turbonomic continuously monitors CPU, memory, DB Cache Hit Rate, storage size, and IOPS metrics for scaling adjustments.

Actions include adjustments to compute and storage tiers, storage size, Provisioned IOPS, or a combination of these. Examples include:

  • Increasing instance size to mitigate vCPU performance risks.
  • Downsizing oversized instances to optimize compute resource utilization without performance impact.
  • Scaling up IOPS capacity to alleviate congestion or expanding storage capacity.
  • Downsizing Provisioned IOPS or migrating to alternative storage tiers.

Turbonomic decides memory scaling for Amazon RDS instances with Performance Insights by using the DB Cache Hit Rate metric. It adjusts instance types based on the cache hit rate and memory utilization ratio, where a high cache hit rate suggests efficiency (the percentage of database accesses resulting in cache hits versus total attempts).

You can visualize all Amazon RDS scaling suggested actions, including actions that can be disruptive and actions that can be reversed. This helps you understand if an Amazon RDS service downtime is required when performing scaling actions (Figure 7).

Screenshot showing suggested actions to modify Amazon RDS databases and their cost impact.

Figure 7. Suggested actions to modify Amazon RDS databases and their cost impact.

Amazon EKS optimization

Turbonomic uses an agent named KubeTurbo to gather data from Amazon EKS and OpenShift clusters. To enable Turbonomic management, you need to deploy KubeTurbo to each cluster. Deployment options include a single YAML file, Helm, or an Operator, allowing flexibility to meet your needs.

Once deployed, KubeTurbo enables Turbonomic to discover, monitor, and optimize containerized workloads, including services, containers, pods, and namespaces. It continuously gathers metrics and configuration details such as response times, transactions, CPU and memory utilization, quotas, limits, and more.

Turbonomic doesn’t recommend actions at the cluster level; instead, it recommends actions for individual resources like pods. These actions include:

  • Provisioning new pods.
  • Suspending pods, pausing their operation temporarily when needed.
  • Suspending nodes to temporarily stop their operation.
  • Moving Pods between nodes to addresses performance or efficiency issues.
  • Resizing container specs vertically or scaling replicas horizontally.
  • Increasing namespace quotas; Turbonomic doesn’t generate actions to decrease quotas.
  • Provision additional resources, like memory, vCPU, memory requests, vCPU requests.
  • Modifying node volume tiers.

Turbonomic shows these actions when you navigate to a Container Cluster and check the Pending Actions chart (Figure 8).

Screenshot showing suggested actions to move pods between Amazon EKS nodes.

Figure 8. Suggested actions to move pods between Amazon EKS nodes.

Use Turbonomic to migrate on-premises workloads to AWS

IBM Turbonomic provides a Migrate to Cloud planning functionality that simulates on-premises virtual machine migration to AWS Cloud. It provides two migration options – Lift & Shift and Optimized. The lift & shift option suggests a like-to-like migration of a workload from source to destination, while an optimized plan is focused on optimizing performance and costs, by choosing the most suitable AWS resources for your VMs and volumes.

Turbonomic uses historical monitoring data of your on-premise resources to make migration sizing recommendations. It combines this with information about AWS services to create AWS sizing recommendations for your workloads.

Costs of your workloads on AWS are calculated based on negotiated billing, price adjustments, compute, service, and license costs. These details are available through the Turbonomic migration plan dashboard (Figure 9).

Screenshot of the Migration planning dashboard showing two different options for migrating a workload to AWS.

Figure 9. Migration planning dashboard showing two different options for migrating a workload to AWS.

Summary

In this blog, we have explained how IBM Turbonomic can be used to help you make more efficient use of your AWS resources. By optimizing AWS resource utilization you can help improve power and energy consumption and reduce your carbon footprint to achieve your sustainability goals.

Additional resources

IBM Turbonomic offers on the AWS Marketplace:

Learn more about IBM and IBM Turbonomic on AWS: