Framing up FinOps: How to optimize your cloud costs on Google Cloud
Sarah McMullin
Group Product Manager, Google Cloud Billing
Eric Lam
Head, Cloud FinOps, delta, Google Cloud Consulting
Cloud costs are no joke, we get it. Frankly, some companies aren’t yet seeing a return on their cloud investment. Still others are watching their cloud costs increase, and they don’t understand why. If optimizing cloud costs is top of mind at your organization, you’re not alone. If you’re considering adopting Cloud FinOps practices but you still have questions, we have answers. And if you’re looking for ways to optimize your cloud spend, you’ve come to the right place.
Cost optimization — one of the 5 building blocks of the Google Cloud FinOps framework — was the hot topic of our most recent Framing up FinOps episode. In this post, we’ve recapped key takeaways from our conversation with several Google Cloud cost-optimization experts. We’ve compiled their recommendations plus common industry techniques to help you start optimizing your cloud costs now.
Three ways to optimize your cloud costs
Cost optimization is a broad topic and a continuous process. It’s a discipline that requires buy-in from everyone across your organization. That means that whether you’re an engineer, developer, finance or business leader, cost consciousness should be a part of your job. At a high level, there are three ways to optimize cloud costs: optimizing resources, pricing, and architecture.
Resource optimization
In short, resource optimization is the art of using only the resources you need, when and how you need them. This should be the first goal of optimizing cloud efficiency. It’s about managing your dynamic resource needs. It includes things like rightsizing your instances to match traffic or demand, shutting down idle services, or using techniques like autoscaling (scaling up resources when you need them and scaling back when you don’t).
Pricing optimization
Many of our customers use on-demand pricing. But with a greater understanding of the dynamics of your cloud costs, you can make informed decisions to pay a lower price for the cloud services you’re already using. Within Google Cloud, we offer committed use discounts (CUDs), which we’ll explore in more detail below. Other options include assorted lifecycle policies and slot reservations within BigQuery.
Architecture optimization
To optimize cloud costs, many customers start with their infrastructure stack. But we’ve seen time and time again that customers tend to realize the greatest value when they rearchitect their application technology stack. They’re not just optimizing their compute engine or cloud storage from a resource or pricing perspective. Rather, they’re considering the total cost of ownership. So oftentimes, they leverage Google Cloud managed platforms and serverless services such as BigQuery, Cloud Functions, etc.
Getting started with Google Cloud cost optimizations
If you’re just getting started with cloud cost optimization and starting to feel overwhelmed, don’t worry. Although rearchitecting is an excellent option, it’s not the only option. For most of our customers, it’s not the first option either. Again, cloud optimization is an iterative and continuous process. With Cloud FinOps practices in general and cost optimization specifically, we recommend a crawl, walk, run approach. Start small. Continue improving. Iterate. One of our favorite cost-optimization starting points is flexible committed use discounts, also known as CUDs.
Flexible committed use discounts (CUDs)
CUDs offer an easy and effective pricing-optimization strategy to uncover cloud cost savings. In fact, some enterprises with substantial cloud spend have realized millions of dollars in savings by strategically leveraging flexible CUDs. CUDs are spend-based commitments that offer deep flat-rate discounts in exchange for a minimum spend over one or three years. They offer both flexibility and cost predictability across multiple VM families and changing workload needs. Importantly, CUDs offer savings opportunities for cloud services you’re already using.
Committed use discount recommendations
CUD recommendations, which are based on historical usage data, are a great way to uncover cloud cost savings opportunities. With CUD recommendations, you can analyze your application architecture and on-demand usage. And with the yearly, monthly, daily, and even hourly cloud usage visibility they provide, you can make informed decisions about the right commitment level for your needs. The CUD recommender and CUD analysis dashboard tool come standard with your GCP billing console. CUD recommendations are available for multiple Google Cloud products, including Compute Engine, Cloud SQL, Cloud Run, Google Kubernetes Engine (GKE), and Cloud VMware Engine. To uncover your own cloud cost savings, take advantage of these tools!
Navigating cost optimization with GKE
GKE is a multitenant environment where multiple teams are running multiple workloads in the cloud. As such, it presents unique cost-optimization challenges and opportunities. For example, with multiple workloads running simultaneously, cost attribution, application rightsizing, and demand-based downscaling are especially important.
To manage costs, your organization should have visibility into cloud-spend costs for disparate teams. You should have sufficient visibility and flexibility to ensure your VM instances are properly provisioned to your workloads. And you should be able to scale down cluster usage when demand is low. GKE offers cost-allocation visibility out of the box for multi-tenant architectures. Within BigQuery billing exports, for example, you can get granular cost data to determine what’s driving your GKE costs by cluster name, namespace, and pod labels for core, RAM, or persistent discs.. And with unique GKE features like Autopilot, you pay only for the resources your application has requested. With Autopilot, we manage your cluster configuration to optimize costs so you can enjoy discounts without the complexity.
Optimizing costs with Google Cloud storage services
Data drives business value, and data lives in cloud storage. That said, most of our customers spend more on cloud storage than they do on cloud computing. They often assume cloud storage is an irreducible commodity. But these assumptions are only partially true. There are several ways you can optimize your storage cost — especially if you understand where, when, how, and how often you need to access your data to drive business value.
Location type optimization
Location-type storage is basically how much your data is replicated across various regions in the cloud. The three location types in Google Cloud are regional, multiregional, and dual regional. Where you store data impacts your cloud costs. But deciding where to store your data is more than just a fiscal decision. It depends on your availability needs and your application’s disaster tolerance. You must ask yourself: Does my organization need high availability for an application? If yes, multiregional and dual regional cloud storage are your best bets. They replicate data across multiple regions in the cloud so even if one region goes down, your application still sees 100% uptime. It can pull data from the second region. Choose regional and dual regional location types if your reads mainly come from the cloud. If you’re reading mainly from the internet (e.g. content services), multiregional is the ideal location type.
Storage class optimization
At Google, we have four cloud storage classes ranging from hot (most expensive) to cold (least expensive): standard, nearline, coldline, and archive. Choosing the right storage class depends on how long you need to store your data and how often you intend to read or access it. To keep it simple, if your data is short lived or you need to access it more than once a month, you should go with the hottest class: standard. This will help you optimize performance for frequent reads and high-performance analytics. Conversely, if you’re storing data for a long time, rarely need to access it, and you’re looking to keep costs low (e.g., archiving or back up), your data will be well-placed in archive cloud storage.
Access patterns optimization
How often do you need to read or use your data in cloud storage? Knowing the access patterns of your data can help you optimize placement costs. Generally, data is hot when it’s first written. Over time, it grows cold. That said, it makes sense to place new data in standard storage immediately. But as the number of reads decreases, moving cold data to coldline or archive cloud storage will help you optimize costs. With Object Lifecycle Management, a self-service tool you can access for free, you can set rules to better manage your data lifecycle and optimize your storage spend.
Automating cloud storage cost optimization with Autoclass
If you’re starting to feel tense, wondering how your organization can possibly manage the complexity of your cloud storage costs with everything else you need to take care of, we’ve got you covered. With Autoclass, a managed service that automatically places your data in the most appropriate storage class based on its last access, you can automate your cloud cost savings. Autoclass eliminates the retrieval fees and surcharges commonly associated with colder storage classes. You can save not only on operational overhead, but also gain greater price predictability. If you’re looking to optimize your cloud storage costs, but you’d rather spend organizational resources on developing and managing new solutions and technology, consider investing in Autoclass.
What not to do when you’re optimizing cloud costs
If you’re feeling intense pressure to save on cloud costs, you may be inclined to make drastic optimization decisions — don’t. Making rash decisions without visibility and context into cloud spend can create unnecessary chaos. It may compromise productivity and contribute to a subpar customer experience.
Instead, consider the following questions: What’s driving your decision making? Do you have adequate visibility into your cloud spend? How does it contribute to your business value? Who’s accountable for what? Remember, with a Cloud FinOps practice, it’s important to crawl before you run. As you make decisions to optimize cloud costs, don’t make the mistake of jumping into optimization without having the right framework.
Framing up cost optimization
As you start small, continue improving, and iterate, remember these Cloud FinOps cost-management fundamentals.
Cost visibility. Ensure that everyone in your organization has access to cloud-cost reporting.
Governance. Ensure you have cost-control policies and standards (e.g., automation and resource hierarchy) in place.
Intelligence. To make better business decisions, capture and consider operational and infrastructure trends, intelligence, and insights.
Enablement. Remember cost-optimization is an organization-wide endeavor. Enable your teams with best practices to design for cost efficiency in the cloud.
Cost visibility, governance, intelligence, and enablement will not only improve your optimization efforts, they can also help to create better organizational and customer experiences.
Hopefully you’ve identified at least one cost-optimization strategy you can start leveraging today. For more on this and other Cloud FinOps topics, be sure to check out Framing up Cloud FinOps on Twitter Spaces. New episodes launch every other week.