Cost Savings and Sustainability; Byproducts of Well-Architected

In this post I will look at why I find it hard to understand why people have to focus specifically on cost-optimisation and sustainability initiatives rather than them being part of everyday design and build activities.

I am not implying these two items are not relevant, I am also not saying they shouldn't be in the Well-Architected Framework.

What I am saying is that, if you do the first 4 pillars (Operational Excellence, Security, Reliability, Performance Efficiency) well, then most of the benefits should have already been achieved and there should not be a need to perform "Cost Optimizations" or "Sustainability Audits" of your AWS estate. There might be some tweaks and improvements but the base level of "Well-Architected" for those pillars should have been achieved.


Cost Optimisation

First, lets look at the the cost optimisation pillar. It sets out 5 main goals for cost optimisation that should be considered by organisation.

  • Practice Cloud Financial Management
  • Expenditure and usage awareness
  • Cost effective resources
  • Manage demand and supply resources
  • Optimize over time

For me the biggest mistake is that these are often owned by a central team and, while the pillar talks about a cost function, it builds a silo. As a result it becomes a cyclical process of reviewing the estate, finding high costs, and trying to remove those costs. In reality this will never make an organization good at cost optimization.

The real benefit is when the whole developer community are aware of costs. Thats why, for me the following best practices are the key to cost optimisation

These focus on cost being an intergral part to the organisation and the fact everyone remembers costs when making a decisions. As a result when looking at anything cost is considered. So, for example, when looking at Performance Efficiency its not just about performance metrics but cost. Perf 1-7 (Data Driven Approach) and Perf 2-1 (Select best compute) should be including cost. We could say best compute is equal to fastest EC2 available, but it is about optimizing so it the right balance of CPU/Memory for the workload at the lowest price point. So hence, if you are doing performance management correctly cost, and as a by product sustainability will happen.


Sustainability

So lets now look at the the sustainability pillar. It main goals is for organisations to "build architectures that maximize efficiency and reduce waste".

It then talks about 6 areas that can be considered in order to do this.

When looking into many of these it talks about how effective management and reduction of use is the bigest impact on sustainability. By writting effective code, running it effeciently, as and when needed, and in the right place (Region) ensures that the environmental impact is reduced.

These however also have an affect on other things. If we manage data so we only have the data we need, and where we need it, we reduce imapct from storage. But it also reduces cost to store that data, especially if in a database of compute service. It also improves the security, as by applying lifecycle to remove data we dont need to reduce carbon impact, we also meet objective Sec 7-04 (Data Lifecycle Managment). We also make things more performant as a database query has less data to scan.


So, for some where they are not doing any of the pillars well, it might seem there is a lot to do for cost and sustainability. However, I think that if you have focused on the other 4 pillars, and are doing the majority of best practices and recommendations, then there is not a significant amount needed to become Well-Architected in terms of Cost Optimisation and Sustainability.

I think this view is also in line with AWS'. Where as cost optimisation used to be a dedicated domain the the Solution Architect Proffessional Certification (SAP-C01 Guide), it is now a skill in each of the other domains (SAP-C02). This direction is that everything should consider cost. Your building a network in the cloud, think of cost as well as latency and security.


I'd be interested in your view.

Do you see cost and sustainability easier because your doing the others well?

Are you doing all the others well and still strugging with cost and sustainability?