The Road to Azure Cost Governance
Article Index
The Road to Azure Cost Governance
Chapters 3 to 6
Chapters 7&8, Conclusion

Author: Paola E. Annis et al
Publisher: Packt Publishing
Pages: 314
ISBN: 978-1803246444
Print: 1803246448
Kindle: B09NW2CTHX
Audience: Bill payers
Rating: 4.5
Reviewer: Ian Stirk

This book aims to help you reduce your Azure costs, how does it fare?

Businesses are increasingly aware of the advantages of cloud-based systems (e.g. cost, scalability), this has resulted in a growing interest in cloud-based systems, for both new and migrated systems. However, with this ease of use, it is easy to let costs proliferate. This book aims to show you how to analyze your current costs and provides advice on how to reduce costs.

The book is aimed at anyone who wants to reduce their Azure cloud costs, including cost controllers, mangers, architects, and software professionals.

Below is a chapter-by-chapter exploration of the topics covered.


Chapter 1: Understanding Cloud Bills

The book opens with the premise that reducing costs is often a neglected part of cloud systems, resulting in unnecessary expense. Billing depends on the type of agreement (e.g. Cloud Solution Provider [CSP]), the services’ price, and the usage.

There’s a helpful look at what the Azure portal provides for cost management, in particular, Azure Cost Management has many useful features, e.g. cost alerts. To provide more structure and a breakdown of your bill, there’s a discussion about having subscription hierarchies match your organization’s structure, and how Management Groups can help with this. Various tools that can provide billing information are briefly discussed, including their pros and cons. Tools include business objects, tagging, and using cost management tools with various filters. 

The Azure Cost Management Tool is a good place to start to learn the terminology, it provides useful screens, allowing filtering by subscriptions, service name, meter category, meter subcategory, resource group, and tag. Resellers can do analysis based on billing account, billing profile, and end customer and various types of charts are included. The illustration of spending forecast is useful, as is amortized versus actual costs – great for spreading cost over a period (e.g. reserved instance costs where you pay upfront).

Often the billing information is exported, so it can be used and analyzed further with other applications. The Azure Cost Management Tool can export data and graphs in Excel, CSV, and PNG images. It is possible to create an automatic job to export costs daily, and an example of this is provided. Other tools briefly discussed include the command line interface (CLI), and an API (get data as CSV or JSON). 

Each chapter starts with a technical requirements section (e.g. access to Azure Portal) that you will need to follow along with the ideas in the text. Each chapter ends with a summary, some questions (answers are at the end of the book), and links for further reading.

This chapter provides a gentle overview of Azure billing, how it can be structured to match your organization, and some of the useful tools for analyzing the data. The chapter is generally well written, with useful explanations and supporting diagrams, with a good flow between the topics. These traits apply to the whole book. That said, for me, it sometimes felt a bit dry. The problem may well lie with me, since I’m a technologist rather than a cost controller, but I do understand the importance of reducing costs. Maybe I was too eager in wanting to see how I could quickly save money. 


Chapter 2: What Does Your Cloud Spending Look Like?

Advice is provided on splitting costs across different departments. This often becomes more difficult when several departments use the same service, so you need to apportion usage and thus costs. There’s a practical example of a company with 6 departments, using differing amounts of the services. Helpfully, various questions are posed, and answers suggested (e.g. will this service be completely dedicated to a department, today and in future).

Next, we look at scaling resources up and down. Doing this regularly, often feels strange when you’re mostly familiar with on-premise infrastructure, so it might take a while to adapt. Scaling vertically (e.g. more servers), and horizontally (e.g. more powerful CPUs) are discussed. Usage options briefly discussed are: switch on server only when needed, schedule automatic turn on/off, and automatically scale on/off.

There’s an interesting section on viewing servers as pets or cattle. Pets tend to be important well-known servers that are always available, whereas cattle are largely anonymous servers. It’s suggested that in the cloud the servers should be viewed largely as cattle, this removes any attachment, making it much easier to turn off the server or reduce its resources when it’s not used or is being used less (e.g. evenings/weekends).

Next, we look at automation and policies. Ideally, having a detailed understanding of your application and its workflow will provide opportunities to make cost savings. Tagging involves attaching a label to a resource or multiple resources, this can then be used to group resources for billing purposes. There’s a useful discussion on automatic checking of tags and reporting any anomalies to correct. 

Using Management Groups to group subscriptions, enables policies to be set that can reduce costs, e.g. only provision VMs of a given type.

The last section discusses automation of cost control. This involves using various tools that can integrate into Azure resource configurations and actions directly into your batch jobs. For example, it is possible to create a scheduled job to reduce a VM’s SKU in the evening and/or weekend to a lower-level resource, with a reduced cost (and another job to change it back for normal business hours usage). Dynamically changing of resources can be applied to VMs, Managed Disks, SQL Database, Cosmos DB, App Service, etc. The authors suggest Pay-As-You-Go should become Pay-For-What-You-Really-Need.

This chapter hints that a mindset change may be needed, so you get into the habit of regularly provisioning your resources, both up and down, depending upon demand. And this should be automated. 

There’s a brief mention of Serverless technology, where your application uses a server only when it is needed. It’s suggested this will be the future of cloud computing.

Last Updated ( Tuesday, 24 May 2022 )