Cost optimization on cloud
Data security and cloud cost optimization are the two biggest hurdles for companies that keep companies away from adopting cloud computing. Google collected internal data on existing clients and came up with the conclusion that
- 70% of customers do not have a cost optimization and cost management plan in place
- 69% customer overspend more than their budget
- 70% of customers on the cloud has no plan for cost management
In this article, I will enquire about key reasons for cloud overspending and propose administrative and organizational practices for cost management on the cloud. In my journey with the cloud, I observed that organizational challenges can be very hard to overcome. To implement a successful cloud optimization policy organizational accountability, the culture of cost optimization and cost management has to be instilled in the organization. However, application design is a key factor in the cloud implementation of resources. It is very important to identify efficient design and business value of application which are deployed on your cloud infrastructure. I will share key factors regarding application design and engineering practices that successfully helped us in cloud optimization and some cases reduce cost up to 63% of existing cost.
Implement a culture of Cost optimization and cost-saving on cloud
There are various factors of cloud cost which should be taken into account while setting up cloud optimization and cost management policy. All resources should be visible to important team members for the collection of billing data in their respective domains. Usually, each team has a billing administrator who keeps the billing data. Data collection can be done on the resource level as well. To make sure resources are utilized to their full extent. Collection and analysis of billing data is the biggest source of acquiring knowledge about cloud expenditure and helps to manage cost. Apart from data analysis on billing data, data on resource usage also should be collected. This data helps in understanding resource utilization and mitigate unused resources and underutilize resources from the system. Resources like unattached storage disk and snapshots are often go undeleted and add up huge cost in the end. Data analysis is useful to answer questions about current usage as well as helps to predict future usage of resources also. Finally, another part of Cost optimization is accountability. Most importantly there should be a culture of cost-saving and cost optimization among the team which will automatically reflect at other places also. All cloud platforms provide tools like quota and billing alerts. After acquiring knowledge about cloud usage and optimized cost for cloud quota can be put into place for different teams. So that after monthly limit passed users cannot create new resources without scrutiny.
Choose a suitable application design
Application design the most rigid factor in controlling cost over the cloud platform. Design decisions are often taken by developers without taking into account any feedback from the operations team. Organizations working in this traditional way of development often in very hard to actualize any cost management in the app development lifecycle. Before the development of the application, it has to be identified what is the business value of your application. Cloud facilitates for development and deployment of a wide array of application designs including micro service, static, and distributed. According to its design application can bear the cost of operation which may is hard to calculate before deployment of the application. For example, a distributed application can be deployed on multiple availability zones but then it will also bear the cost for traffic passing in between these Availability zones. To reduce cost CDN should be used which would store data on a local server until there is no change in data.
Check and remove unused resources
All unused resources should be checked regularly and should be removed. It’s very easy for developers and administrators to forget the deletion of resources like attached storage. And cost on these resources keeps on accruing. This is an unnecessary cost that keeps on adding up your cloud bills. Most cloud providers provide API support for billing usage. Users can use API for creating scripts that would schedule the deletion, starting, and stopping of machines. There is also a facility for scheduling jobs for you. It is useful for clients to schedule their VMs and shared resources on the cloud. So that you’re VMs will not keep on running on weekends and at night if they are not required. It is advisable to put a lifecycle policy in place for the automatic removal of resources like snapshots.
Use Tagging of resources
The practice of using tagging with resources helps to categorize resources. It allows us to view resources utilized on a project basis and maintain the lifecycle of resources. Often resources are orchestrated by using some kind orchestrating tools like terraform. These resources are deleted at the same time using the same tool. Apart from maintaining the lifecycle it also used for the understanding cost of operations on the application level. Cloud providers facilitate tag level view of resources that can directly be used in the existing environment. It is possible to introduced tagging anytime during the lifecycle. You can add multiple tags to an object and create a multi-dimensional view of your resource.