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

Chapter 7: Application Performance and Cloud Cost

Another source of cost saving is a byproduct of application performance – faster and more-considered applications can use less resources and for less time, both potentially leading to reduced costs.

The chapter starts with a look at database performance, this makes sense since most applications use databases, and they offer great potential for improvement. Various optimizations are discussed including:  

  • disk tuning (e.g. stripping to allow parallel I/O processing)

  • ORM to generate SQL (balance ease of code generation with query performance)

  • database optimization (optimal queries run faster) 

Similarly, application performance is examined. Poor performance may be due to the application being migrated as lift-as-shift, without due consideration of the cloud environment (e.g. use of microservices). Perhaps minimum changes were made with the migration, and more are needed. The Data Migration Assistant (DMA) can be used to discover migration issues, target new features, migrate the database, and offer guidance. The rest of the section discusses technical debt, ways to modernize your application (i.e. move towards microservices), and useful monitoring tools.  

The chapter ends with some practical examples.

I found this chapter of mixed usefulness. The first section gives some generic advice (e.g. chatty applications, partitioning, deadlocking pattern), but it seems a bit unstructured and random – and terms are not explained (e.g. deadlocks). There’s a useful diagram of workflow for data optimization, but it isn’t discussed. It really needs to be explained, because it is probably the crux of improving a central area. It says tune query, indexes, etc, but I wanted much more. Similarly, because SQL Database is the core component of Azure, I expected some detailed steps on how to optimize it. 

There is nothing about archiving data. Often removing unnecessary data means queries run faster, improving performance, and potentially reducing costs. Sometimes, when moving between subtopics, the change seems abrupt rather than smooth. I sometimes asked myself ‘why are we now looking at this topic?’, e.g. The antipattern for the brave. 

The monitoring tool Azure Application Insights is very useful for understanding applications and troubleshooting problems, it would have been useful to have more information on this.

Chapter 8: Sustainable Applications and Architectural Patterns

The book now looks at reducing costs from a different angle, that of sustainable software, where applications are designed to save on carbon emissions, and these are typically linked to reduced costs.

The chapter opens with a look at the need for sustainability, covering the familiar ground of the rise in carbon dioxide, and the earth’s temperature rise since the 1700s. Further temperature rises need to be limited else there will be more extreme weather conditions with its associated upheaval. It’s stated that data centers may be responsible for 20% of global electricity usage by 2025. Having more efficient infrastructure and optimized code should reduce carbon emissions and reduce costs.

There’s a look at the Green Software Foundation, which advocates guidelines for creating sustainable code. Methods include: use as little electricity as possible, reduce distance data travels, demand shifting (move workloads to regions), demand shaping (separate workloads prioritize according to energy consumption), make applications more accessible to older computers/devices, exchange less data, co-locate tightly coupled microservices, and optimize databases.

Next, we discuss cloud-native architectures, with more efficient use of services, ambitious emissions targets, on-demand usage, simple design, and automatic scaling. Serverless technology looks particularly useful here – where the server is only used when it’s needed. There’s a very insightful example of a green serverless application. It’s suggested compiled languages should be used instead of bytecode, since it uses less CPU cycles.

The chapter ends with a discourse on measuring and fostering sustainability. A roadmap for carbon governance is explained. Microsoft, like other companies, is investing effort in encouraging sustainability, and the Microsoft Emissions Impact Dashboard can be used to view cloud carbon emissions based on subscriptions and services used.

This chapter discusses, what at first seems an oblique topic. But, perhaps luckily, what’s good for the planet also seems to be good for reducing your Azure costs.

Conclusion 

This book aims to help you reduce your Azure costs, and undoubtedly succeeds. The topic is important to both bill payers and the planet. 

Many options are provided for reducing your Azure bill, focusing on right-sizing, cleanup, and reservations. The book is generally easy to read, with useful discussions, diagrams, example workflows, and links for further information. Some of the initial chapters, might feel a bit dry to a technologist, but stick with it, they provide useful background for the core middle chapters. Some of the links between topics within a chapter could have been smoother, especially Chapter 7).

I would have liked to have seen discussion of serverless technology, spot pricing, elastic and instance pools, the use of sqlAssessment.exe to right-size an on-premise SQL Server ready for the cloud. That said, these are mostly minor concerns, and the core topics have been covered. Perhaps the biggest disappointment for me, was insufficient depth on database/query optimization. 

Probably the biggest change for people moving from on-premise to the cloud, is adopting a dynamic cloud mindset, where you can, and should, resize your resources regularly to save money.

The book deserves a wide audience, all Azure bill payers should buy this book. It should pay for itself relatively quickly. The book needs a catchier title, such as “How To Reduce Your Azure Costs”

To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.

Banner


JavaScript: The New Toys

Author: T.J. Crowder
Publisher: Wrox
Date: July 2020
Pages: 260
ISBN: 978-1119367956
Print: 1119367956
Kindle: B08C9PH74Z
Audience: Experienced JavaScript developers
Rating: 4.5
Reviewer: Mike James
Great title! Can the book be as good?



Learn to Code by Solving Problems

Author: Dr. Daniel Zingaro
Publisher: No Starch Press
Date: June 2021
Pages: 335
ISBN: 978-1718501324
Print: 1718501323
Kindle: B08FH92YL8
Audience: People wanting to learn Python
Rating: 4
Reviewer: Mike James
Solving problems - sounds good?


More Reviews



Last Updated ( Tuesday, 24 May 2022 )