Optimizing Workloads for the Cloud
Every day, more organizations are moving to the cloud. It’s typically not a wholesale move, but bits and pieces here and there. And too often, when workloads are moved to the cloud, there’s a tendency for admins to “set it and forget it.” After all, Amazon, Microsoft, Google and so on are responsible for their clouds, right? They also have all the CPU, memory, and storage, so you’re covered. Since they own the resources, you can relax; they scale, so you don’t have to.
This is diametrically opposed to traditional, on-premises resource usage. Resource optimization in your data center is a big deal indeed, owing to far more limited resources than the cloud bigwigs. Since few data centers have unlimited resources, caution and optimization must be a priority.
Does that mean optimization in the cloud is something you can ignore? The answer is no. While the cloud can support and scale to any workload needed, your budget will likely not scale the same way. Cloud providers are in the business of making money, and they do that by charging for each and every resource you use. Nothing is free, and you get charged for every CPU cycle and byte of memory you reserve and use, which makes cloud optimization a serious issue.
One of the first things to look at with cloud optimization is the overall workload itself. Just as virtualization environments have zombie workloads, so can the cloud. Virtual machines (VMs) are created so quickly and easily they can be misplaced or forgotten. These VMs range from test/dev servers to pre-production servers that get left behind as projects change. These often-abandoned VMs (“zombies”), while bad in an onsite environment, can be very expensive in a cloud environment. These workloads should be identified, confirmed that they’re not being used, and removed as soon as possible to help reduce the overall cloud workload and bill.
This isn’t a one-time process, either. If you have workloads moving in and out of the cloud frequently, there needs to be a quarterly or even monthly review process to validate that those workloads belong in the cloud. This should be no different from your reviews of onsite workloads.
This same idea applies to allocating resources for your cloud-based VMs. Did you really need that large cloud VM when a medium instance would have been just fine? While it might not be possible to reduce your VM in mid-use, you would know what size to select for the next one; that will be valuable in the future.
One of the interesting things about virtualization and the cloud is it’s often much easier to add additional resources to your workloads than remove them. So think about starting a bit closer to what you need in terms of resources. Then you can plan to add more as needed, rather than going larger (and more expensive) to start, just in case you might need it.
The key is to always look at what you end up using, and put that actual usage data in your request process; this will help you avoid the same mistake in workload sizing over and over. This is especially critical for the amount and type of storage you request in the cloud. Those extra gigabytes of SSD add up really quick, and while you may want want that snappy response time, do you need it for every workload placed in the cloud?
Often, what you’d like to have and what you need to have are two very different things. And since that storage comes at a cost, you also need to change how you use generally use storage. Installation files, temporary environments, profiles, and other setup files need to be removed as soon as you’re done with them. Good storage housekeeping matters with on-premises resources, but it matters even more in the cloud because of the costs.
Don’t Pay for Extra Services
Another thing to take a look at in the cloud is what additional services you might be paying for but don’t use. It’s easy to assume you only pick what you need when you spec out your cloud workloads, but even with the best intentions, it’s easy to be overwhelmed with all the options available.
Cloud vendors offer services from fully managed monitoring, Active Directory integration, and dedicated high-speed file transfers to simple notifications and email alerts. The number of choices is so vast that it’s easy to find yourself picking multiple options for workloads you’ll never use; you can then compound that mistake by selecting the same things for each repeated workload. This standardized pattern thinking can get very expensive, since the cloud vendors will be happy to charge you for each and every option you select, whether or not you use them. Therefore, it becomes more critical to understand what you’re selecting when purchasing your cloud-based workloads.
There’s no magic solution or switch you can select to optimize your workloads and save money in the cloud. The cloud purchasing process is fairly open regarding your options and features. To find the best balance of performance and cost, treat the cloud as you would your internal resources. Select and validate your cloud workloads carefully, be thrifty in what you select, and review actual usage. The cloud has unlimited scalability; unfortunately, your wallet does not.