The Cloud Rightsizing Challenge
1. How do I identify the most appropriate performance baseline for my applications over cloud
2. How do we estimate our VM footprint for hosting our Oracle databases in the cloud? (Finding the balance between over-provisioning and consolidation.)
3. How many VMs will we need?
4. What sizes for vCPU and RAM should we be aiming for?
5. How easy is it to scale up and down?
6. Backup / recovery strategies & handling refreshes and clones?
7. Encryption options available?
Many cloud costs reduction and optimization practices are based on the continuous observation of metrics, policies and rules to govern them leading to the ability to pick and choose the best cloud computing resource types. Right sizing on cloud for critical applications like EBS, ERP, SAP etc is an important task to avoid sticker shock.
Importance of Cloud RightSizing
All of the architectural components carry a cost tag. Allocation-based services require that you request a specific allocation at provisioning time. These could be the number of CPUs, the amount of RAM or the maximum number of IOPS of the underlying infrastructure. You pay for this allocation irrespective of whether you’re using it or not. Often, you end up using resources at a much smaller percentage than what they can deliver.
When this happens, you must rightsize your resources for most optimum performance vs costs.
Factors Impacting Pricing in Cloud Infrastructure
What is RightSizing the Cloud?
Right-size is the process by which you reserve the cloud computing instances with resources enough to achieve sufficient performance at the lowest cost possible. (e.g Containers, VMs, or bare metal, RAM, CPU, storage, network). This needs to be done by continually analysing instance performance and usage needs and patterns.
In this continuous practice, you have to adjust cloud service allocation size to the actual workload demand, to control unnecessary cost escalations. Avoiding under-sizing or over-sizing will affect the availability, performance and functionality for your critical applications.
Implementing Cloud Rightsizing During Migration
- Begin with identifying what is to be migrated, what can be left behind, what can be eliminated from the current system
- Before Cloud Migration, monitor resource utilization for the on premise application over a defined period. Apply base line and allocate resources on the cloud. Note – the job is not yet over.
- Post Cloud migration again Monitor resource utilization over a defined period on the allotted resources (for example one week).
- Compare it with provisioned capacity and change the allocation size if a resource is found larger than necessary.
- Demand may vary over time, you must be ready to rightsize in both directions — down and up — by also increasing resource size when performance is suffering.
It’s important to note that your ultimate goal is to develop a continuous rightsizing process that can enforce a defined target utilization threshold. Continuous rightsizing is no different to what is also known in the industry as “vertical autoscaling.” For example, if you set your utilization threshold for compute instances at 70% on the CPU metric, your rightsizing process would change size accordingly to keep the utilization line as flat as possible.
Examples of Public Cloud Computing Services for Rightsizing are:
- Compute services such as Oracle Cloud Infrastructure Compute, Amazon Elastic Compute Cloud (Amazon EC2), Microsoft Azure Virtual Machines (VMs) or Google Compute Engine (GCE). Client organizations specify the allocation size by choosing a provider-supplied instance flavor, which is delivered with specific sizing parameters.
- Storage services such as an Oracle Cloud Storage, Amazon Elastic Block Store (Amazon EBS), Microsoft Azure managed disks or a Google Persistent Disks. Client organizations specify an allocation of storage space and, sometimes, performance (IOPS) and durability targets.
- Database services such as Oracle Database Cloud Service, Amazon Relational Database Service (Amazon RDS), Microsoft Azure SQL Database or Google Cloud SQL.
- Container services such as Oracle Application Container Cloud Service, Amazon Elastic Kubernetes Service (Amazon EKS), Microsoft Azure Kubernetes Service (AKS) or Google Kubernetes Engine (GKE). Such services deploy nodes on top of the provider’s compute instances with a customer-chosen allocation size.
- Application PaaS services such as Oracle Cloud Platform, AWS Elastic Beanstalk, Microsoft’s Azure App Service or Google’s App Engine. These environments need to be preprovisioned and are paid for whether they are being used or not.