Glenn Gruber, Senior Digital Strategist
Managing your company’s computing infrastructure is hard enough, but managing budgeting and cost allocation adds another layer of complexity and ends up being a big part of the job in virtually every company. You can be an unsung hero when you find ways to save your company money or fall victim to the office evil-eyes when you've gone over budget. The sad part of this is when balancing delivering performance, speed and capacity that the business requires with the budget you’re given, cost optimization is also crucial when migrating to the cloud.
Oftentimes the response from your boss and/or colleagues is: “Make it work” (doubly so if your boss is Tim Gunn). Here are some tips for reducing the cost of your bill (and saving your hide), no matter what type of cloud option you use:
If you are using a public cloud,
go cloud native. So what exactly does that mean? In short, when designing your infrastructure there are a certain set of technical constraints that a traditional on-premise architecture presents. The cloud offers a different set of capabilities and constraints. Going cloud native is usually straightforward for greenfield workloads because you’re not starting from any legacy preconceptions. However, for those migrating to the cloud, some organizations do the lift-and-shift portion of a cloud migration then stop. While there may be benefits to doing it like this, such as quicker roll outs, it doesn’t unlock all the value that a true cloud solution can provide. Worse yet, in stopping their cloud journey there these same organizations usually end up spending enormous sums with AWS as those workloads are not optimized for cloud environments. #doublewhammy
Post the lift and shift phase, an organization can realize order-of-magnitude savings, particularly if they tackle the thorny problems like data storage refactoring. In AWS the combination of Lambda with step functions, S3, SQS, DynamoDB, and Aurora can be a compelling formula for a large number of workloads.
The side benefit to cloud native is a reduced headcount for the management and usually the maintenance of those workloads via automation (e.g. Terraform, CI/CD, etc.). The excess headcount can then be used to take the business in new directions or extensions of existing workloads.
If you are using a private cloud,
such as a well automated environment of VMWare or Xen, you should also rethink your licensing requirements. Microsoft has embraced Linux and so should you! There can be big savings in switching the OS from Windows to Linux. 90% of public cloud workloads run on Linux, and the majority of Azure instances are running Linux. Database licensing is another area ripe for the picking: you can transition from Microsoft SQL Server and Oracle to MySQL and PostgreSQL. In addition to the licensing savings, your ratio of support personnel to the number of servers will go down dramatically.
If you are using a hybrid cloud or multi-cloud approaches, there anumber of different strategies to consider
● For hybrid clouds, specifically focus on refactoring the workloads in the public cloud to be cloud native and then improve the interfaces of workloads in the private cloud so that the traffic is limited to ReSTful HTTPS only.
● If you are using multiple clouds, instead of going down the Lambda path, you should implement containerization, as this will often encourage you towards the least common denominator for each cloud. Also, implement a platform that can support them all. For compute this will likely mean using Kubernetes for container orchestration.
Now you can do all the things I recommended above, but you’ll still come up short unless you aggressively track and manage the resources you use across clouds. In Gartner’s 2018 report titled, “How to Identify Solutions for Managing Costs in Public Cloud IaaS”, they forecasted ““Through 2020, 80% of organizations will overshoot their cloud IaaS budgets due to a lack of cost optimization approaches”. A large reason behind this is that the billing models across clouds can vary significantly, and is exacerbated by the challenge of keeping track of what you’re using. So here are a few suggestions:
● Pricing Model Headaches: When many companies started using the public cloud, they weren’t all that concerned with the cost because the cloud will auto-magically scale to serve their needs and it was all just pay-as-you-go. But the fact is that there is a somewhat byzantine set of discounts, billing models, tiers and pricing structures that can make it very hard to know if you’re getting the “best deal” (aka “the Rodgers rate”; thanks Jake at State Farm). Consider tools, like VMWare’s Cloudhealth platform, which can help identify opportunities to optimize your spend.
● Monitor Consumption Trends: Along those same lines, you can use these types of tools to monitor consumption trends and forecasted usage to estimate future costs and steer you to better pricing plans as you grow. This can also help you identify anomalies in your spend that might help you differentiate between a one-off oddball situation versus a long-term impact.
● Trim Reduced or Orphaned Resources: Over time there inevitably is a set of resources that we once needed, but no longer need. Yet, we keep paying for them. Look at your resource utilization continuously to find accounts or resources that have been forgotten and orphaned and close them out. Similarly make sure that seldom used resources are turned off when not in use. It may not seem like much at a glance, but those savings can add up to a whole lot over time.
● Make Users “Partners” in Cost Control: Establish some governance to track which business units or groups are consuming the various cloud computing resources (costs, storage, usage, performance) and have them bear some shared responsibility in managing costs (chargebacks aren’t necessary, but often useful in getting your point across ☺).You can even go one step further and look to identify KPIs that tie spend to ROI and overall corporate objectives.
And finally, for all your cloud implementations - especially for public cloud and containerization - be aggressive in training your team. Expecting optimization (aka cost savings) from teams struggling to learn all the required platforms is unrealistic.
Employ these tips and you will reap the benefits of cloud cost control, “Happy savings!”