Taming the Cloud Cost

Arun Ramakani
4 min readNov 16, 2019

Rapidly evolving product-centric software development approach along with practices like Agile/DevOps demands a fundamental shift in the way we provision and manage our cloud infrastructure and services. Theses cloud platforms provide product teams instant access to the cloud infrastructure and services in a button click or a simple API call.

Although cost is an impact factor getting considered on any architecture change to a product, we usually lack in decentralized “Run Cost Governance” to tame our cloud cost. This is very obviously visible in the RightScale 2019 state of the cloud report.

The immediate question is where is the cloud spend leaking? Following are factors driving the leaks

  • Agile Infrastructure Provisioning with no or inappropriate governance
  • Complex and Dynamic Cloud Pricing Models

Agile Infrastructure Provisioning

Product teams no longer need to wait for lengthy provisioning processes that were required in the traditional data center. This enables agility in the way we deliver products and removes bureaucratic governance. But, the product teams doing the day to day provisioning activities don’t have enough incentives or knowledge to provide cost-effective services. The cost of individual VM or resources/services may look small, but the waste adds up as the product grow. This situation demands at-least a decentralized governance on the cost of running cloud infrastructure.

Complex and Dynamic Cloud Pricing Models

Choosing cost-effective cloud resources/services is complex and involves many nuances. Below are some of the factors influencing cloud resource cost as documented by RightScale 2019 state of the cloud report.

In addition to the above facts, the environment is highly dynamic.

  1. Cloud providers adjust the pricing frequently
  2. Usage of resources changes with the dynamic demand

How do we plug the leakage?

The below three-dimensional approach can help us to tame our cloud cost

Cloud Cost Optimizer

Cloud cost optimizers are tools that reduce cloud spend by identifying mismanaged resources. Identifying unused resources and over-provisioned infrastructure are the major goals. These optimizers also recommend better-discounted service alternatives for us to choose from. Cloudcheck is an example tool that will help us with this job. How frequently we run these cloud optimizers should be based on the velocity of the change to infrastructure the product goes through. Once in six months will suite most of the agile environment.

Cost as Architecture Fitness Function

This is a new technique worth exploring from the trial ring of Thoughtworks technology radar. This technique focuses on the idea of observability and continuous monitoring of cost as a fitness function. Fitness functions are nothing but programmatic/automated governance to preserver the non-functional characteristics of a product undergoing continuous change. Enabling the observability of cloud cost means, creating a time serious data points of cost and its structure. These data points can help us to monitor cloud costs to see if we are on track with the acceptable budget range (Run Cost). With this, we can have a continuous process of setting targets to bringing down the run cost, track them to closure and evolve.

Cloud Usage Guide

Prevention is better than cure. Identifying the pitfalls in cloud cost from day one will save a lot of time and effort. Consider creating a continuously evolving enterprise guiding principle which includes policies to optimize cloud cost. We can also have a self-service questioner that the product teams can use as a safety net to avoid pitfalls. These self-service questioners can be enforced as a lightweight Goldilocks Governance within the product team, preservation the agility of product iteration. Here you can find some sample cloud cost guide.

References:

  1. https://medium.com/faun/14-1-billion-in-cloud-spending-to-be-wasted-in-2019-5c231db0711
  2. https://www.flexera.com/blog/cloud/2017/11/where-is-the-10b-in-waste-in-public-cloud-costs/
  3. http://googliers.net/static/media/uploads/download_files/2019_state_of_the_cloud_report.pdf
  4. https://www.linkedin.com/pulse/goldilocks-governance-james-kruger/
  5. https://www.thoughtworks.com/radar/techniques/run-cost-as-architecture-fitness-function
  6. https://www.sensedeep.com/blog/posts/stories/checklist-to-lower-aws-cloud-costs-v1.html
  7. https://medium.com/sensedeep/aws-cloud-cost-checklist-v2-a1ea1836237f

#CloudCost #CloudCostOptimizer #Cloud #Architecture #AutomatedCostGovernance #RunCost #ProductCost #ProductRunCost #ProductRunCostGovernance #EvolutionaryArchitecture #FitnessFunction

--

--

Arun Ramakani

#ContinuousDevOps #Kubernetes #Microservices #CloudNativeApps #DevOps #Agile