In my previous articles, we discussed FinOps methodology, Visibility, y Cost Optimization. Now let’s cover the next and, probably, the most important principle – Control.
Being able to see historical data of your cloud spending and optimize it is important but it’s crucial to have an opportunity to build a process when funds are allocated and used only for what they should and with an option to manage and forecast the expenses.
The benefits of establishing a proper cloud cost control process are obvious but let’s summarize them:
- Es el principal motor de la optimización constante cuando no hay costos ocultos ni recursos huérfanos o no utilizados.
- No budget overspending – you know your budget and can forecast the spending projecting it on the current month, quarter, or in some cases even, year.
- No hay peligro de daño para tu equipo, ya que este tiene que revisar periódicamente los gastos y encontrar una manera de optimizar para mantenerse por debajo del presupuesto.
10 steps to implement the principle of control in FinOps process
- Cree un presupuesto separado para cada elemento granular que le gustaría rastrear. Puede ser (entre otros) un trabajo de CI/CD, un clúster de aplicaciones, un equipo de I+D, un proyecto de PoC, etc.
2. Assign an owner to every specific budget. Don’t expect that one person can properly track more than 7 budgets. This can be a DevOps engineer or a team member of your FinOps team.
3. Identify a rule on how resources should fall under a specific budget and an owner. It can be a tag or a resource name prefix/postfix or some other rules used at your company. Ideally, if the resources can fall under budgets automatically (CI/CD job resources created with a tag, engineers use their name in prefix etc.).
4. Set TTL rules. It can be another tag or, for example, a rule to remove resources older than 24 hours if they don’t contain some specific ‘do-not-delete’ tag.
5. Create a cleanup script to be periodically launched and to remove resources with expired TTL. Don’t forget about volumes, snapshots and images, they are costly resources but at your company, you should have other categories.
6. Compose a script or use third-party cloud cost management tools to calculate and track budget forecasts and give up-to-date cloud expense data to every resource owner. Cloud-native tools are very limited in a way you can track expenses – keep in mind that the main idea of the cloud for you is to spend more, not to save. I suggest sending the data to the budget and resource owners every Friday morning so that they had time to review and fix the issues until the weekend starts.
7. The script from p.6 should be able to send instant alerts if there is an actual budget overspend or the forecast is 1.5 bigger than your budget. It gives more room for some corrective actions.
8. Control reserved instances and saving plans usage. It is ridiculous how many companies take those options but still use them.
9. Controla el uso de instancias puntuales para trabajos de CI/CD. For the majority of the recurring jobs, your team can use spot instances but the team may not be familiar with the functionality.
10. This is the most important step. Educate your team about the steps and explain why they are important. Running all the steps above is a process but not a one time action. The majority of the companies fail exactly because of forgetting to execute the steps recurrently.
Ten en cuenta también que hay herramientas de gestión de costos en la nube que pueden ayudar con lo principal y encargarse de la mayoría de los pasos, pero no de todos. Si tu equipo no se lo toma en serio o no está capacitado, no sacarás lo mejor de FinOps.
Tagging is one of the initial steps on a cloud cost optimization and FinOps adoption journey. It allows to identify the resource owners and the purpose of the resource usage impeccably and gain full cloud cost transparency. Learn how to define a tagging system for cloud resources → https://hystax.com/how-to-define-a-tagging-system-for-cloud-resources.
Nick Smirnov, CEO en Hystax