I've been recently introduced to the concept of Cloud Waste. A concept that is taxing many companies severely; but that can be avoided by implementing simple, yet effective measures. According to devops.com, more than 17 billion USD is spent on cloud waste. This humongous number represents potential savings for companies of every level. Therefore, tackling it is imperative.
In this article, we'll define Cloud Waste and present some steps that will help you minimize it.
The Cloud
If you are a user of one (or more) of the cloud services available (Azure, AWS, etc.) then you probably know that one of the main objectives of the usage of the cloud is the pay-as-you-go modality. This modality allows its users to pay only for the resources they use. So, for instance, let's consider the example depicted in Figure 1. We have a Java application that only needs 8GB of memory. In the on-premises implementation, our company could have acquired a 64GB server to run it. Disregarding virtual machines and other possible applications running on this server, it would mean that 56GB of memory is unused. We have a surplus of memory.
On the other hand, if we deploy the same 8GB application to the cloud, we could allocate exactly 8GB thus optimizing our usage of the resources and the costs incurred. There's no surplus memory.
With this comparison, the benefits of a cloud implementation with the pay-as-you-go modality are evident:
- From the financial perspective, we don't have to pay for more than they need. We can allocate precisely the resources we need and manage our costs efficiently.
- The surplus resources. acquired during an on-premises implementation, are subject to depreciation and need for maintenance, increasing thus the financial and technical burden on the company. On the other hand, cloud implementation allows us to increase/reduce the allotted resources with just one click.
- If the resources needed by an application are previously identified, it can facilitate budgeting and minimize costs (such as electricity, hardware acquisition, installation, etc.).
Introducing Cloud Waste
- The golden rule, in this case, is: "You cannot manage what you cannot measure", so measure, measure, MEASURE! You can monitor the usage of resources using tools such as Grafana and Prometheus. If you are using Spring Boot, enable the actuator package. Last, do not disregard the metrics provided by your Cloud provider.
- Remember to turn off any idle or inactive machines. For this, two kinds of monitors can be in place: (a) one that notifies individual users about the inactive status of their machines or (b) a robot that disconnects and turns off all dormant machines after a given period of time of inactivity has elapsed.
- Assign cloud resources appropriately. This is the key to minimizing cloud waste. Your operators should know how many resources each application needs and how critical it is to the business.
- Use serverless. Serverless is a development model that delegates the work of provisioning, maintaining, and scaling the server infrastructure to the Cloud provider. Hence, serverless apps respond to demand and automatically scale up and down as needed.
Comments
Post a Comment