What is the cloud and why controlling cloud costs has become essential for organizations?
These days cloud computing is all the buzz. But what is cloud computing? In the past most companies used to purchase and manage their own computer infrastructure. This included servers, storage, network equipment etc. They then had to be housed in specific temperature controlled rooms with adequate power supply with built in redundancies. Then you could write your software applications which ran on this infrastructure. In turn the applications were used by the company personnel and would assist with the various business functions. As the company's IT needs grew they would either need to lease space in data centers (co-locations) or some of the bigger enterprises managed their own data centers.
With the advent of cloud computing companies like Amazon ( AWS) and Microsoft (Azure) came out and started providing shared infrastructure which anyone could purchase (rent) on an hourly, monthly or annual basis. What this meant was that the companies or individuals no longer needed to purchase and maintain their own equipment but could leverage the cloud. This offered economies of scale and therefore became very attractive from a cost and manageability standpoint. The companies could focus on their core competencies instead of having to spend a lot of their resources in managing an entire IT infrastructure and maybe in not such an optimized way as could be done by these cloud providers leveraging their economies of scale.
In addition, some companies started building software applications on top of the public clouds and started selling those applications directly. This model is referred to as SAAS( Software as a service). This made it even more easier for companies to leverage existing functionality built at scale and in an optimized way.
All of this became possible because of technology evolution and growth in multiple areas like computer networking, internet, increased band width which allowed for ever increasing amounts of data and information that could be transferred across and utilized. In addition these public cloud providers figured out ways to network their servers and infrastructure in a modular way which could be scaled very quickly. In essence the development time and time to market software has gotten increasingly smaller for most organizations.
So, What's the problem here?
Having provided a brief history of cloud computing let's look at the cost implications which is our main focus for this article. At a high level this has resulted in two kinds of problems - one is the purchase of public cloud and usage which is mainly restricted to the technology teams and departments and the second kind is that of SAAS applications being purchased from by all teams and departments across the organization. In effect since cloud is so easy to buy it has resulted in a sprawl and proliferation across the organization and has resulted in something called shadow IT.
At this point just to give an idea about the size of the problem we're dealing with here these are the total revenues generated by the public cloud providers just in the last year (2023) what that means is that companies are buying this much amount of public cloud computing services from just the top three providers.
Provider | Cloud Revenue (Billions) |
Amazon (AWS) | USD 90.8 |
Microsoft (Azure) | USD 70B (Based on estimates) |
Google (GCP) | USD 33.7 |
In addition the total SAAS market is estimated to be worth approximately 197 Billion U.S. Dollars. With this kind of staggering growth for cloud services, organizations will only be spending more on the cloud.
"By 2025, more than 85% of organizations will embrace a cloud-first principle, meaning cloud cost management will be a necessity, not a choice." – Gartner
How do we control this spend?
In order to rein in the cloud spending we need to use multiple approaches. It starts with understanding current usage patterns. Here are some essential tools to consider:
Cloud Service Provider Native Tools: Most cloud providers offer built-in tools for usage and cost analysis. For example, AWS Cost Explorer, Azure Cost Management, and Google Cloud's Cost Management provide insights into your spending patterns and resource utilization.
Third-Party Solutions: These days there are a number of third party tools such as CloudHealth, Flexera, Apptio, Tangoe and CloudCheckr that offer comprehensive analytics and reporting capabilities that can help us better understand the organization's cloud usage.
Once we understand where the spend is we can look at optimization. At a very high level, These are some of the techniques that can be used -
Rightsize Resources: which means adjusting resources to better match the workload for eg. we might have to downgrade an instance ( typically a virtual server with a certain fixed amount of computing power) to a smaller size if it is being underutilized.
Utilize Reserved Instances (RIs) and Savings Plans: Cloud vendors allow the provisioning of reserve instances at substantial discounts as it allows them to better plan the backend infrastructure on their end. An on demand purchase will always be more expensive.
Implement Auto-scaling: which is a feature where the servers automatically adjust to an increasing workload and additional processing power and other resources can be allocated on the fly based on demand.
Implement Storage Tiering: Storage on the cloud can get pretty expensive. Vendors provide storage classes based on the needs for eg. AWS offers S3 which is standard storage for files which needs to be accessed quite often as opposed to IA which is Infrequent access and Glacier which is mainly used for archival storage. Basically depending on the speed and time of data retrieval required for a specific application we could switch to a different storage class. In addition we could also dynamically move data from one tier to the other based on specific needs. So less frequently used data could reside in lower priced tiers for which the access could take longer.
In addition there are many other optimizations which we can work on based on continuous monitoring which are no different than if we had actual physical infrastructure like tuning the database (data repository) and network performance to reduce latency and speed up data transfers. These become even more important in the cloud space as it is very easy to throw additional hardware at a problem in the cloud which may not result in the most optimal configuration.
In addition to address the purchase of SAAS applications by different departments we need to establish a company wide SAAS Governance framework. These are a set of processes and practices that help identify and manage the use of subscription based software and SAAS applications. Such a program has to be structured very carefully making sure that the purchase of software applications is not entirely restricted as sometimes the business units are best positioned to assess their particular needs and find the right solution, but at the same time make sure that there is enough due diligence so that the same software or functionality is being purchased by different departments and each of them paying a higher price.
Hopefully I was able to shed some light as to why we need to focus on cloud cost management and the right balance of controls and autonomy can allow the organization to flourish and leverage the top of the line technologies to achieve the necessary competitive advantage in the marketplace at the same time use the limited resources to get the best possible bang for the buck. Feel free to reach out to us if you need any help in this area.
Chao for now,
Jai Prabakaran
Commentaires