Darshan Wakchaure
D&A Head
Tech Mahindra

Cloud usage has grown, cloud environments have become incredibly complex, and anticipating costs is becoming more challenging than ever. As data movement to the cloud has increased, many enterprises are looking to reduce their spend, but aren't sure where to begin. Here are a few guidelines that can be considered your starting point in the direction to leverage technology with proper evaluation:

Model Your Cloud Costs in Advance

As migration spins off and data gets consolidated in a new environment, teams should spend adequate time thinking about cloud instances, understanding data volumes, perceived volumes leveraged by organization as a central repository, and the likelihood of costs associated with it. According to a Flexera survey, the majority of large enterprises (75%) have a centralized cloud team or cloud centre of excellence that takes the lead in managing costs. Whenever possible, these teams should be creating models that estimate best-case, worst-case and most likely scenarios for cloud costs. Even if your organization doesn't have a centralized team or sophisticated modelling tools, all the major cloud providers have calculators that can help you generate a ballpark estimate of your likely costs. Establishing a process that requires users to model these costs in advance is the first step to getting cloud costs under control.

Establish Budget for Data Analytics Cloud Projects

After the first step of ballpark figures on data, volumes are aligned, and the next step should be to set up a budget for the upcoming cloud project. Many new upcoming in-flight projects would have a probable storage capacity and compute power requirements in the cloud environment. Ensuring the business implementations are counted is one of the critical factors to avoid any future surprises.

Most third-party cloud governance and cost management tools can cut off spending if you exceed a certain limit. The cloud computing providers have also made similar services available. AWS BudgetsAzure Cost Management and Billing, and Google Cloud Billing all give you the ability to set up – and stick to – budgets so that you don't overspend. Third-party tools may also give you the ability to make those budgets more granular and project-based.

Set Up Cloud Spending Alerts

As a part of the cloud journey, it's crucial to keep track of the activities planned and costs incurred. Therefore, it is important to have some alerting mechanisms in place, especially if there is a data migration involvement. The usage and expenses have to be checked constantly to avoid any surprises at the month's end.

It is advisable to set up multiple thresholds that give advance notice of usage and money spent to avoid the problem. For example, an alert that sends an email or text when the usage is up 25%, 50%, 75%, and 90% of monthly budget allocation. This can be achieved via third-party cloud management services or through the tools provided by public cloud vendors.

Use a Cloud Monitoring Tool

Cloud infrastructure is different from on premise servers. Cloud spending alerts don't add much value unless there is a way to dig into cloud usage and see the next level details. A good cloud monitoring tool should be deployed based upon the specific need to achieve the same.

Organizations can use the logging tools provided by the vendors themselves, but ideally, a tool that can span multiple providers is good to have. The same Flexera report found that 92% of enterprises have a multi-cloud strategy; 80% have a hybrid cloud strategy; so tools that can aggregate data from multiple vendors in one place while also giving the ability to dive deep and troubleshoot problem areas are ideal. The right choice of monitoring tool with features to drill down the logs can play a BIG role to reduce unnecessary costs incurred by the organization.

Leverage Auto-scale Feature of Cloud

One of the critical factors for movement to the cloud was the ease at which computing capacities can be increased or decreased.

Unfortunately, enterprises don't always take advantage of the autoscaling services at their disposal, preferring instead to overprovision and use manual processes to control the size and number of their public cloud instances. But while manual processes can give you the illusion of being in control and prepared for a surge in demand, human-dependent processes can never react as quickly as automation. In many cases, an overreliance on human intervention leads to overspending on instances that aren't needed. Instead, use autoscaling and automation as much as possible. This can help take care of running high volume loads faster; at the same time, during a month-end or year-end, business analysts can leverage the compute power to get their job quicker. There is also extensive configuration available to reduce the idle services and spin up more servers using automation.

Pay Attention to Cloud Support and License Fees

Most organizations use a mix of cloud-based and on-premises services. They often find that they are getting charged twice for applications, operating systems, or support fees. It is recommended to understand what existing licenses cover before turning to a new cloud service. Also, audit existing licenses and look for ways to negotiate more favourable terms when renewing subscriptions and contracts. This hidden source of savings can help reduce overall spend. Many analytics tools have multiple versions, and quite possible that the existing version of software is sufficient for Cloud workload. It is often seen as an opportunity to rationalize tools across the organization during the cloud journey to yield better savings and maintain org-wide standardization.

Rethink Your Cloud Storage

How many copies of your data are currently stored? If the cloud provider is also backing up data, are there the right number of backups? Is the data stored to less expensive archival services at the right time? Are good compression algorithms being used? Is the data cleanup and temporary storage removed regularly? Are the data services leveraged, closed, post-use?

Because the volume of data that organizations are storing in the cloud is growing so quickly, cloud storage is one of the most likely culprits of budget overruns. Auditing current usage, re-evaluating strategy, and automation to optimize storage costs can help prevent these problems. Redundant copies of data being stored and achieved multiply the cost to the organization. The right architecture needs to be deployed, taking into consideration the efficiency and priority of data.

Optimize Your Code

For organizations that use infrastructure as a service (IaaS) or platform as a service (PaaS) to run internally developed applications, internally developed code might be contributing to expenses. Make sure that developers understand how they incur charges when accessing public cloud services. For example, if an application makes multiple, inefficient calls to a database, that might be more expensive than making fewer database calls that request more information each time. They might achieve other cost savings by minimizing the number of storage writes or refactoring code in different ways that both improve performance and optimize costs. Utilizing DevOps practices can help break down the barriers between developers and operations teams and give developers more awareness of how to help control cloud costs.

Analyze Your Cloud Strategy

Is the organization using primarily IaaS, or using primarily PaaS, or even serverless? If using IaaS, is the organization running virtual machines (VMs) or containers and using the cloud service's management tools or its own tools? Choosing a particular strategy for cloud computing is going to affect your overall costs. And unfortunately, there isn't a one-size-fits-all approach that will always result in the lowest costs and fewest cost overruns. But an analysis of current spending and projected spending for switching to another style of service might turn up some opportunities for savings or to at least minimize overruns. It's advisable to relook at the Cloud strategy from time to time; identify the gaps, and if there is a need to switch architecture/tools before it gets too late.