Cloud cost optimisation tools, strategy and best practice
Cloud computing has transformed the way the world does business.
It has enabled organisations to connect you with their people, customers, service users, data and processes in new ways, to embrace the possibilities enabled by modern technologies.
The cloud offers fully integrated capabilities across apps, data, and infrastructure to boost productivity, improve collaboration and increase efficiency.
However, while many applications and workloads run more efficiently in a public cloud environment, without the right controls in place, cloud usage and spending can escalate quickly and place increasing pressure on ICT budgets.
Because cloud services are so flexible and scalable, a common assumption is that you pay for only what you need.
While this is true to some extent, the ‘hidden’ costs associated with the ongoing maintenance and other forms of expenditure can soon add up, especially if your cloud environment hasn’t been optimised sufficiently.
And with spending being a key performance indicator for most organisations and ICT departments, the better the spending optimisation, the better the return on investment.
Fortunately, there are many ways that you can optimise your public cloud environment to trim your cloud spending, reduce risk and achieve best value.
However, while short-term cost management tools can improve cost efficiencies in the cloud, you’ll also need a longer-term strategy to eliminate unnecessary cloud spend.
What is cloud cost optimisation?
Cloud cost optimisation defines the way an organisation plans and implements the most efficient and economical ways to run their cloud environments, to achieve their desired levels of performance and reliability.
It includes understanding what resources – such as storage, databases, memory and networking – a
workload uses, how it uses them, and how much they cost.
There is also a need to understand who uses each service and when they use them, as this will allow your organisation to scale its architecture according to this usage profile.
Most organisations use tools to identify and address inefficiencies in existing workloads and processes. However, these often provide only a short-term fix.
True cloud cost optimisation requires long-term planning and sound system design and implementation.
How to reduce your cloud costs
Short-term options can bring about quick results, so these should be defined as part of your strategy. It could be as simple as what cost monitoring and optimisation tools you will use, and who will be given the job of looking at it.
However, embracing a long-term cost optimisation strategy is the key to minimising your organisation’s cloud expenditure, achieving greater operational efficiencies and maximising the return.
Before embarking on your cost optimisation journey, you’ll need to understand which resources and software you have deployed within your cloud environment, how much they cost, and their relationship with your other assets and services.
You should also identify unused or obsolete servers and hardware that are still utilising resources in the cloud.
This will enable your organisation to model its current ICT provision and assess which applications and services should be retained as part of your cloud optimisation strategy.
Once this analysis of your existing provision has been carried out, your organisation can start to consider the longer-term ways to bring down its overall cloud costs.
While cloud cost optimisation will vary between organisations depending on their needs, there are a few common approaches to bear in mind:
Focus on your redundancy needs
There are several different approaches to achieving redundancy in the cloud.
At one end of the scale, hosting that distributes workloads across multiple datacentres within the same cloud region can be the least expensive, but it also provides the lowest levels of redundancy.
At the other end, mirroring a workload across two or more cloud regions can deliver greater redundancy levels but can cost significantly more.
Not all workloads require the same level of redundancy, and some don’t need any.
Irrespective of what approach you use, offering redundancy in a system will double its cost, and unless all parts of the system are redundant is potentially pointless.
The key point here is to provide only as much redundancy and disaster recovery / business continuity for an application as the service users and owners require that application to have. If an application on-premise is based on a single server, then moving to a cloud based solution with more redundancy ought to be a business decision, rather than an ICT decision. This means that users and owners need to be engaged at an early stage.
Use native tooling
Most native monitoring, security and management tools are free to use for workloads running in the vendor’s cloud services.
Most cloud vendors now have very mature cost monitoring and optimisation tools that are free and integrate more tightly into their platform than third-party products.
Consequently, third-party cost optimisation tools may be unnecessary unless your organisation has a multi-cloud environment. The cost of these tools tends to be per monitored resource and adds significantly to the overall cost, and may in fact cost more than the money saved through their use.
Right-size your environment
When moving to cloud, it’s easy to decide that using a more powerful server, better storage and better networking will help avoid a performance drop, in comparison to on-premise infrastructure.
However, this has a cost implication. If your resources are only 10% utilised, then you still pay 100% of the cost.
So, make sure you look at the optimisation reports available to identify situations like this and take steps to right-size overprovisioned resources.
Rightsizing is also important when using Software as a Service (SaaS) solutions. You don’t have access to the compute resource utilisation but you do pay a fixed cost per user or service. So, if you are paying for 100 units of something but are only using 50, you are paying twice as much as necessary.
Understand the network costs and utilisation
Typically, Infrastructure as a Service (IaaS) and Platform as a Service (PaaS) cloud services charge for egress data but not for ingress data so make sure that your data charges are minimised by:
- Understanding how your cloud vendor charges for data connections
- Situating all primary parts of a service in the same location
- Only replicating data between locations when necessary
- Ensure backup data is minimised through source-based deduplication and compression, and done only as regularly as necessary
- Monitor the bandwidth on private circuits such as ExpressRoute and when possible reduce their size to ensure you only pay for the bandwidth you need
It’s also worth looking at how your applications are designed, in particular how different elements of a single application communicate and how an application communicates with other applications. If the current design requires data to frequently exit the cloud environment or transit between different cloud based regions this can lead to substantial costs. These could be avoided by redesigning how your workloads communicate with each other to minimise unnecessary data movement.
Turn Resources Off
You pay for what is turned on or being used in cloud.
For example, a virtual machine is paid for while it is powered up, storage is paid for when you have it connected to your environment in use.
So, if you aren’t using something make sure it is turned off, deprovisioned or deleted from your environment.
Make sure that test and development resources have clearly understood usage timeframes, and that when the expiry date is reached the continued usage is reviewed and either extended or that the resources are deleted.
If services have a cyclic usage pattern – for example have peak utilisation at 10am-2pm but no utilisation overnight – consider using an autoscaling solution to ramp up the available resources to support the service when it’s in use and scale it down when it isn’t. This will also help reduce costs.
Oh, and if you have services that no one uses or very few people use – get rid of them (the services not the people!). Look at alternative ways to meet these requirements based on other services you have that could be extended – for example could PowerApps do what these services do?
Consider your choices
There are essentially four choices for provisioning a service:
- On-premise based on servers
- In-cloud based on servers
- In-cloud based on PaaS (such as Azure App Service)
- Outsource delivery/purchase as SaaS
Each of these options has a cost and knowing the cost of these options for each of your applications/ services is important.
For example, a particular service might currently be delivered on-premise but have a very high maintenance, very demanding, user group and consequently it might be better for this service to be delivered and managed by someone else as Software as a Service (SaaS).
Conversely, other services might currently be delivered using a server that is always on but only occasionally used and might be better delivered as an on-demand PaaS application.
AMDH Services Ltd is an Office 365 and Azure specialist. As your ICT partner, we can help you optimise your cloud system to deliver greater cost efficiency and value. To find out how we can help, give us a call on 01332 322588.