Cloud cost optimisation – a key lever in the age of efficiency
By Gaurav Bhatia, SVP Engineering, ShareChat and Moj
With the technology landscape constantly evolving and businesses striving for agility, the importance of cloud computing has exponentially grown over the last decade. In the wake of pandemic, macroeconomic conditions have brought a greater focus on ‘efficiency’ and cloud technology is increasingly being adopted today as a more resilient, cost-effective and scalable alternative by companies of all sizes. The same applies to industries such as social networking as well. With user base and competition constantly increasing, a robust cloud based back-end architecture prepares any business to seamlessly scale and adapt to increasing user base without compromising on performance or efficiency. While cloud brings a huge potential, it also adds cost overheads initially. For many businesses, Computing Infrastructure and server costs in the cloud tend to be one of the largest items on the P&L and even percentage point savings gains can improve the bottom line drastically. Global spending on cloud infrastructure soared to $178 billion in 2021, growing $50 billion in just one year. Gartner further forecasts spending on public cloud services to grow 20.7% to total $591.8 billion in 2023, up from $490.3 billion in 2022.
So, how does one go about making a dent in one of the largest cost levers while maintaining business goals, objectives and profitability?
Measure and Fix
One of the key fundamental gaps that organisations face is having a deep understanding of the cloud expenses. Sure, you get compute, storage, network egress in your invoice from the cloud vendor but mapping that to internal teams, specific projects and initiatives is a monumental task. Even if engineers have the discipline to label resources using a well understood ownership across organisation/team boundaries, being able to attribute costs clearly is a challenge. This often leads to wastage of precious resources as no one can make a decision regarding shutting down/cleaning up resources. One thing that has worked well in our organisation is a dashboard called Penny Gauge that we built to import the billing data from our cloud provider and it enables us to run deeper analytics using our business analytics and query tools. An early investment in the right tools and dashboards is key to success.
Setting Goals
Once you have identified your key cost items and teams, set aggressive targets per team to reduce it. Cost optimization projects work best when the individual engineers and teams who know the application and code well focus to optimise cost. This bottoms up approach ensures that engineering agility is not compromised. One thing that went well in our organisation was to give each team (termed “pod” a cost savings goal of 30%. Many teams exceeded that by 50%). Also, goals need to be tracked closely by all stakeholders including finance, technology, operations. Having a central team that provides subject matter expertise and best practices help accelerate the cloud journey. It is important to have a culture of knowledge sharing so the success of one team can be quickly replicated to others.
Understand your scaling patterns
One of the key value propositions of cloud systems is that they provide an amazing ability to scale very rapidly. Unfortunately, many times, this ends up being a scale up when additional resources are needed due to higher traffic but without a corresponding scale down when traffic decreases. Making use of auto-scaling features of various cloud components helps keep utilization at correct levels and prevents higher costs due to wastage.
Efficient resources
Cloud providers have different tiers of storage pricing based on usage and back-up requirements. Closely examining the usage patterns and requirements helps reduce costs. Understanding the business needs and aligning with the right storage type leads to significant savings. As an example, data that is not needed on a day to day or monthly basis can be archived in a cheaper storage type. Similarly, choosing the right database or queue types can provide substantial cost savings.
Self-Managed
If your technology team has expertise to run its own infra, look at PaaS services that you can self host. Self hosted databases or managed databases, queuing systems can provide significant cost savings. Do proceed with caution on this one as self hosting is not for the faint of heart. One option is to work with a vendor who will manage PaaS instance e.g. Key-Value DB for you in your cloud accounts.
Optimizing application code
One of the best savings we have got is from rewriting some of the high traffic services from Node.js to GoLang (up to 90% for some of our microservices). Examining technology choices at a fundamental level can help give massive savings. Similarly simple but fundamental technology changes such as using gRPC for inter service communication or using data payload compression to cut down on network egress costs go a far way to deliver cost benefits.
Cloud cost optimisation is not a one time effort but an operational excellence muscle and ‘DNA change’ that needs to permeate how engineers architect and build products and how it impacts the bottom line and trajectory of a company. Using a multi-pronged approach that focuses on measurement, being mindful of technology choices and resource utilisation go a long way.