Cost Optimization

Overview

When running VDAs on Google Cloud, you’re paying for the compute, storage, and networking resources you use. This means there’s a direct correlation between the amount of capacity you consume and the costs you incur. The choices you make and the practices you adopt have a direct correlation to the operational cost of the virtualization system.

First off, make sure you choose the right workload delivery options - the topics you just read through if you’re reading this front to back. These can have a dramatic impact on the total cost of the solution! Here are a few other recommendations and topics to consider as you work to balance cost with capacity and optimize the user experience.

On-demand Provisioning

When you use MCS to create non-persistent machine catalogs in Compute Engine, MCS uses on-demand provisioning to reduce your storage costs, provide faster catalog creation, and provide faster instance power operations. With on-demand provisioning, Compute Engine instances are created only when Citrix DaaS initiates a power-on action. On-demand provisioning is used for non-persistent machine catalogs.

Note:

Some administrators find on-demand provisioning confusing initially, as VDA instances do not show up in the Google Cloud console until MCS powers them on. Also, since the instances receive a new virtual NIC and MAC address, it can take some time for Active Directory DNS entries to update/replicate successfully. VDA identity disks DO persist between reboots and creation/deletion events.

Rightsizing VDA Instances

Now that you’ve gotten some insight into the important decisions related to workload delivery options, let’s dig into right-sizing your VDA instances. For VDI based delivery models, selecting the right instance type is straightforward. Assuming you’ve done some homework and have a decent understanding of the resource requirements of the OS, apps, and users of the VDI instances, you can simply map these requirements to the instance types available in the Google Cloud region of your choice. Don’t worry if you don’t have a perfect match between available instance types and workload requirements. Google Cloud supports custom instance types, which allow you to tweak the shape of your VDA instances as you go. Sustained use and committed use discounts still apply to custom instance types, so don’t let that deter you from adjusting as needed to get the right size up front.

Also - Google Cloud’s sizing recommendations feature can be used to identify adjustments to VDA shapes you may want to make over time.

Rightsizing VDA Instances

Note:

One important thing to note - workload resource consumption can change over time. Sometimes events/activities reduce resource requirements - like when an administrator applies optimizations to the environment. Conversely, sometimes these requirements go up, like when an OS or app vulnerability is patched, or an update is applied. Find your baseline, but it’s important to monitor consumption trends over time and adjust as necessary to find the optimal balance between user performance and costs.

When selecting the right instance size for hosted shared VDAs, things get a bit more complicated. What you’re ultimately searching for is a moving target - the right balance of performance, cost, and manageability. To further complicate things, every workload is different. Variances between OS, applications, settings, tuning, and user expectations make it tough to nail down the right shapes for your VDAs. It also tends to change over time as well.

Fortunately, the tools and techniques for finding that ‘goldilocks’ balance between performance, cost, and manageability are well known and thoroughly documented. One excellent article we’d recommend starting with is Citrix Scalability in a Cloud World 2018 Edition. This article is still relevant today as it discusses leading practices regarding instance selection based on performance, manageability, cost, available pricing models, and LoginVSI scalability testing. These concepts and considerations are still valid today, even though instance choices and pricing have likely changed since its initial publication.

Another article worth mentioning is Right-sizing Citrix on Google Cloud Platform. Although a bit dates, this article digs even deeper into the considerations and provides an example of how to find the most cost effective instance type based on single VDA scaling and your instance costs.

Finally, for extra insight into strategies for optimizing VDA costs, see this Autoscale tech brief on Citrix TechZone. It helps align your instance cost estimates with the capabilities of the Citrix Autoscale feature, including the use of vertical load balancing.

Speaking of Citrix Autoscale - read up on it and use it: with a bit of thought and clever design, you are able to cost optimize your VDA fleet while ensuring you’ve got capacity available to handle expected and unexpected fluctuations in system demand.

Speaking of demand patterns - you want to invest some time and resources into understanding the unique patterns of each workload. Expect them to change and evolve over time, and be prepared to adjust your capacity management strategy and tactics to accommodate.

Choosing the right Pricing Models

Google Cloud offers various different pricing models customers can use for the different types of workloads you run there. Understanding the demand patterns for different use cases can help you choose the right model for each resource to balance cost and service availability/performance. In a Citrix virtualization system, customers commonly consider sustained use vs. committed use discount models for the resources that run on GCP. Sustained use discounts can vary between instance types (N1 vs. N2, for example) and some instance types (such E2) don’t offer sustained use discounts. See VM instance pricing for more details.

The following is a simplified chart illustrating sustained use vs committed use discounts for N1 instance types:

optimizing-cost

Some resources are unique, highly scalable, and must be available for a Citrix virtualization system to function. As such, they’re commonly run 24/7 and deployed N+1 for availability, and are great candidates for committed use discounting. This includes Active Directory, Citrix Cloud Connectors, Citrix ADC/Gateway VPX, and Citrix StoreFront VM instances.

For VDA instances, the choice isn’t quite as simple, but the more clearly you understand your demand patterns, the clearer the choice is. It all boils down to how long the VDA needs to be powered on for. Consider the following chart (specific to N1 instance types), which is reproducible with a bit of back-of-the-envelope math:

break-even

This diagram shows that if a resource (running on an N1 instance type) will be on for over 50% of the time during a given billing cycle, you start saving money if you can apply 3 year committed use discounting. The break even point on a 1 year committed use discount is approximately 82%. If a resource is going to be powered on for more than that during a billing cycle, and 3 year committed use isn’t available, then a 1 year committed use makes sense.

Cost Optimization