October 26, 2024

The Frugal Architect's FinOps Journey: A Series of Cost-Saving Adventures - Part – 2

Continuing our journey through "The FinOps Odyssey" series, we delve deeper into the principles of the Frugal Architect. Building on the foundation laid in Part 1, which explored the fundamental aspects mandating cost as a non-functional requirement driving efficiency and optimization, Part 2 takes us further into the realm of frugality in architecture. In this instalment, we focus on two key laws of the Frugal Architect, exploring how these laws can help align cloud cost to the business model and how architecting decisions can influence cost, performance and much more. Let’s apply it in real-world scenarios to achieve greater cost efficiency and operational excellence in the cloud.

LAW II  - Systems that Last Align Cost to Business


Image generated with https://partyrock.aws/ for AWS Cloud Cost Optimization Theme

Dr. Werner’s Cloud FinOps Insights

 

The durability of a system depends on how well its costs are aligned to the business model. When designing and building systems, we must consider the revenue sources and profit levers. It’s important to find the dimension you’re going to make money over, then make sure the architecture follows the money.

For example, in e-commerce, that dimension might be the number of orders. When orders go up, infrastructure and operation costs rise. And that’s okay, because if your system is architected well, you can start to exploit economies of scale. What’s important is that infrastructure costs have a measurable impact on the business.

As builders, we need to think about revenue – and use that knowledge to inform our choices. Because growth at all costs leads to a trail of destruction.

(excerpt from https://thefrugalarchitect.com/)

Let’s delve deeper

·      A system's longevity relies on its cost alignment with the business model.

·      When designing systems, consider revenue sources and profit drivers. 

·      Identify the key metric for revenue generation and ensure the architecture supports it. 

·      For instance, in a software-as-a-service (SaaS) business, the key metric might be the number of active users. As the user base grows, infrastructure and support costs may increase. However, with a well-designed system, you can optimize resources and scale efficiently, leveraging economies of scale. The important factor is that infrastructure costs should align with the growth of the user base and directly contribute to the profitability of the business.

·      Builders should prioritize revenue considerations to make informed decisions, as unchecked growth can have negative consequences.

 

Apply FinOps principles and AWS services

·      Cost Alignment with Business Model: The FinOps principle of cost alignment emphasizes aligning costs with revenue and profit models. Attribute costs using your cost allocation process and tags. Tags provide showback to teams not directly responsible for costs, making them aware of their contribution. Perform chargeback to teams directly responsible for costs to recover expenses and raise awareness.
AWS Example:

·      Showback and chargeback mechanisms, implemented through tools like AWS Cost Explorer, Cost and Usage Reports, and AWS Budgets, can help demonstrate how costs are allocated across different business units or projects.

·      This transparency ensures that costs are aligned with revenue streams, promoting accountability and informed decision-making. 

·      By optimizing costs based on these insights, businesses can enhance the longevity and sustainability of their systems.

 

·      Consider Revenue Sources and Profit Drivers: By aligning the system architecture with the primary revenue-driving metric, organizations can ensure that their technology infrastructure is optimized to support revenue generation and overall business success
AWS Example:

For an e-commerce application hosted on AWS with revenue sources including product sales and advertising, and profit drivers such as customer retention and average order value, the following AWS services can be used:

·      Use Amazon RDS to manage your product database efficiently, ensuring high availability and scalability to handle peak loads during sales events. This can help in maintaining customer retention by providing a seamless shopping experience.

·      Utilize Amazon CloudFront to deliver product images, videos, and other static assets to users with low latency and high transfer speeds.

·      Implement Amazon SES for sending transactional and promotional emails to customers. Personalized emails based on customer behaviour can improve customer retention and increase average order value.

·      Use Amazon Redshift to analyse customer data and gain insights into customer behaviour. This can help in targeting customers with relevant products and offers, thereby increasing average order value.

·      Use Amazon Redshift to analyse customer data and gain insights into customer behaviour. This can help in targeting customers with relevant products and offers, thereby increasing average order value.

·      Scale your application servers based on traffic demands using Amazon EC2. This ensures that your application remains responsive during peak traffic periods, leading to improved customer retention and increased sales.

·      Use AWS Lambda for serverless computing to run code in response to events, such as processing orders or updating customer profiles. This can help in automating tasks and improving operational efficiency, contributing to increased profitability.

·      Identify Key Revenue Metric:

·      Identify the primary metric that drives revenue and ensure the system architecture supports it.

AWS Example: For an e-commerce site, the key revenue metric might be the number of transactions processed. AWS provides services like Amazon RDS for database management and Amazon EC2 for scalable computing, which can support the processing of a high volume of transactions.

·      Prioritize Revenue Considerations:

·      Builders should prioritize revenue considerations to make informed decisions.

AWS Example: AWS offers services like AWS Lambda for serverless computing, which can help reduce operational costs and improve efficiency. By prioritizing revenue considerations, developers can choose cost-effective AWS services that align with their revenue goals, ensuring sustainable growth and profitability.

 

A FinOps Odyssey

 

LAW III  - Architecting is a Series of Trade-offs

Dr. Werner’s Cloud FinOps Insights

In architecture, every decision comes with a trade-off. Cost, resilience, and performance are non-functional requirements that are often at tension with each other.

As the saying goes, “Everything fails, all the time.” Being able to defend against failure means investing in resilience, but performance may pay the price.

It’s crucial to find the right balance between your technical and business needs – to find the sweet spot that aligns with your risk tolerance and budget. Remember, frugality is about maximizing value, not just minimizing spend. And to do that, you need to determine what you’re willing to pay for.

(excerpt from https://thefrugalarchitect.com/)

Let’s delve deeper

  • Architecture decisions involve trade-offs between cost, resilience, and performance.
  • Resilience requires investment but may impact performance.
  • Balancing technical and business needs is essential for cost-effectiveness.
  • Frugality is about maximizing value, not just minimizing spend.


Apply FinOps principles and AWS services

Applying the FinOps Foundation principles to architecture decisions involves a careful balancing act between cost, resilience, and performance. 
AWS provides a range of services that can help achieve this balance:

  1. Cost-Effective Architecture:

FinOps Principles:

Implement cost allocation tags as per the FinOps Framework to categorize and track costs based on business attributes, helping align technical decisions with business priorities.

AWS Example:

    • AWS Cost Explorer and AWS Budgets help monitor and optimize costs by providing insights into usage patterns and cost trends.
    • AWS Trusted Advisor offers recommendations for cost optimization based on best practices and AWS architecture.
  1. Resilient Architecture:

FinOps Principles:

Use the FinOps Framework's resilience principles to design architectures that are resilient to failure, ensuring high availability and fault tolerance.

            AWS Example:

    • AWS Auto Scaling automatically adjusts the number of instances in a scalable manner to maintain performance and optimize costs.
    • AWS Elastic Load Balancing distributes incoming traffic across multiple targets to ensure high availability and fault tolerance.
  1. Performance Optimization:

FinOps Principles:
Apply the performance optimization guidelines from the FinOps Framework to ensure that your systems are optimized for performance without compromising cost-effectiveness.

AWS Example:

·      AWS Lambda enables serverless computing, allowing you to run code in response to events without provisioning or managing servers. This can lead to cost savings and improved performance.

    • Amazon CloudFront delivers content with low latency and high transfer speeds by caching content at edge locations close to end-users.
  1. Balancing Technical and Business Needs:

FinOps Principles:

Utilize the FinOps Framework's principles for balancing technical and business needs to make informed decisions that align with both technical requirements and business priorities.

AWS Example:

    • AWS Cost Allocation Tags allow you to categorize and track costs based on business attributes, helping you align technical decisions with business priorities.
    • AWS Organizations provides policy-based management for multiple AWS accounts, allowing you to allocate resources based on organizational requirements.
  1. Maximizing Value:

FinOps Principles:

Follow the FinOps Framework's guidelines for maximizing value to ensure that your cloud resources are providing the maximum value to your organization at the lowest cost.

AWS Example:

    • AWS offers a wide range of services, such as AWS Lambda, Amazon S3, and Amazon DynamoDB, that are designed to provide high value at a low cost.
    • AWS Cost Anomaly Detection uses machine learning to identify unexpected changes in your AWS cost and usage patterns, helping you optimize spending and maximize value.

By leveraging these AWS services and principles, organizations can design architectures that are cost-effective, resilient, and optimized for performance, while maximizing overall value.

 

A FinOps Odyssey


Stay tuned for Part – 3 of The FinOps Odyssey series

October 15, 2024

The Frugal Architect's FinOps Journey: A Series of Cost-Saving Adventures - Part 1

 

Introduction

The world is rapidly advancing through migration and modernization. The integration of advanced tools, technologies, innovative solutions, and well-defined processes has heightened agility. Amidst this journey, a pivotal aspect is the transition to the cloud. 

The question arises: 
Are we considering cost efficiency at a pace that matches our swift migration to the cloud?

 Let me revisit that with a fresh perspective, drawing inspiration from Dr. Werner's "The Frugal Architect" to establish a connection with FinOps Foundation principles. I'll provide examples from AWS services and usage, followed by a FinOps Odyssey with a personal touch. This will be blended with visuals and a poetic representation of the 7 laws of the Frugal Architect. I'm presenting them as "The FinOps Odyssey" series in four parts. Here's Part 1 of the series.


[Note: In this blog, Odyssey stands for a long voyage marked by many changes of fortune ultimately maximizing the value of the cloud expense.]

AWS FinOps Journey 

For all the customers who are striving hard to reduce their carbon footprint in this universe for sustainability, Dr. Werner, calls out that Cost is a close proxy for sustainability.



Cloud FinOps discussions are generally oversimplified or misrepresented leading to misunderstandings about its scope and impact. Hence when discussing Cloud FinOps, it's important to avoid general stereotype statements such as:

  1. Cloud FinOps is just about cutting costs.
  2. Only finance and accounting teams need to worry about Cloud FinOps.
  3. Cloud FinOps is only relevant for large enterprises.
  4. Implementing Cloud FinOps is a one-time task.
  5. Cloud FinOps is only for businesses with complex cloud environments.
  6. Cloud FinOps is just another name for cloud cost management.

 

With the transition from pre-paid pricing to pay-as-you-go pricing, the detailed cost comes with every service since the inception of AWS Cloud and over the years AWS users have been reaping the benefit from the economies of scale. Architect with cost in mind was emphasized by Dr. Werner in AWS re:Invent 2012 and AWS continued to update and enhance its services over the years, hence the features and capabilities of cost management tools have evolved over the last decade. AWS Cost Management Tools have taken different dimensions, and various tools and services have been introduced to help users manage and optimize their costs.

 

As depicted in the above infographic, the launch of simple monthly calculator in 2009 to the launch of AWS Trusted Advisor to the AWS Pricing Calculator in 2018 to becoming AWS a Premier Member of the FinOps Foundation and AWS Cost Optimization Hub have been a very interesting journey. The Frugal Architect by Dr.Werner Vogels was introduced as a guidebook at AWS re:Invent 2023, detailing simple principles for constructing cost-conscious, sustainable, and contemporary architectural designs.

Let’s delve deeper into Dr.Werner’s simple laws for building cost-aware, sustainable, and modern architectures.

The Frugal Architect

The Frugal Architect by Dr.Werner Vogels was introduced as a guidebook at AWS re:Invent 2023, detailing simple principles for constructing cost-conscious, sustainable, and contemporary architectural designs.

Let’s delve deeper into Dr.Werner’s simple laws for building cost-aware, sustainable, and modern architectures.



As depicted in the above picture, The Frugal Architect is based on 3 pillars – Design, Measure and Optimize. 

Design

LAW I - Make Cost a Non-Functional Requirement

Dr. Werner’s Cloud FinOps Insights

 

A non-functional requirement specifies criteria that can be used to judge the operation of a system, rather than specific features or functions. Examples are accessibility, availability, scalability, security, portability, maintainability, and compliance. What often goes overlooked is cost.

Companies can fail because they don’t consider cost at every stage of the business – from design to development to operation – or because they’re not measuring it properly. The math is simple: if costs are higher than your revenue, your business is at risk.

By considering cost implications early and continuously, systems can be designed to balance features, time-to-market, and efficiency. Development can focus on maintaining lean and efficient code. And operations can fine-tune resource usage and spending to maximize profitability.

(excerpt from https://thefrugalarchitect.com/)

Let’s delve deeper

·      Non-functional requirements define criteria for evaluating system operation, such as accessibility, availability, scalability, security, portability, maintainability, performance and compliance. They are not part and parcel of the application you are building but become key aspects of your application to stand strong and tall amidst all the competing solutions available in the market.


·      One crucial aspect to consider is cost. By consistently integrating cost considerations throughout the business lifecycle, from design to development to operation, businesses can mitigate risks of failure. 

·      Design with a cost-consideration approach ensures that systems are designed to balance features, time-to-market, and efficiency, ultimately leading to more successful outcomes. Further, it allows development to focus on lean, efficient code and operations to optimize resource usage and spending for maximum profitability. 

Apply FinOps principles and AWS services


From a Cloud FinOps perspective, each point can be understood and applied as follows:


  1. Stay mindful of costs from the start: This aligns with the FinOps principle of "inform," which emphasizes the importance of understanding and managing costs throughout the entire lifecycle of a project. Teams should continuously monitor and analyze cost implications, making informed decisions to optimize costs.
    AWS Example:
    When planning an AWS architecture, 
    • consider using cost calculators and AWS Trusted Advisor to estimate costs and identify potential cost-saving opportunities. 
    • continuously monitor AWS Cost Explorer 
    • and set up AWS Budgets to stay on top of cost trends and anomalies.
  2. Develop systems that balance features, timing, and efficiency: This principle resonates with the "optimize" pillar of FinOps, which focuses on optimizing cloud resources to meet business objectives efficiently. By balancing features, time-to-market, and efficiency, teams can ensure that resources are utilized effectively without compromising on performance or delivery speed.

AWS Example:

When designing systems on AWS, 

·      consider using AWS services like AWS Lambda for serverless computing to optimize costs and improve efficiency. 

·      Use Lambda to process data intermittently which will be more cost effective than maintaining a fleet of servers.

  1. Keep code lean and efficient: This aligns with the "operate" pillar of FinOps, which emphasizes the importance of operational excellence and efficiency. Writing lean and efficient code helps reduce resource consumption and costs, contributing to overall cost savings.

AWS Example:

·      Inefficient use of AWS services like Amazon S3 can lead to higher storage costs. 

·      By writing code that minimizes unnecessary data transfer and storage, you can reduce costs. 

·      If you aren’t sure of the Storage class to choose, you may consider Amazon S3 Intelligent-Tiering which can help you to automate storage cost savings by moving data when access patterns change.

·      For application performance monitoring, you can use AWS native tools like Amazon CloudWatch to monitor performance metrics, trace  and identify areas for code optimization and Amazon X-ray to view, filter and gain insights into that data to identify issues and opportunities for optimization.

  1. Optimize resource use and spending: This principle is in line with the "optimize" pillar of FinOps, which encourages continuous optimization of cloud resources. By fine-tuning resource usage and spending, operations teams can identify and eliminate inefficiencies, leading to cost savings and improved performance.

AWS provides a range of tools to help fine-tune resource usage and spending. 
AWS Example:

·      Use AWS Auto Scaling to automatically adjust the number of EC2 instances based on demand, optimizing resource usage. 

·      Use Amazon EC2 Spot Instances to take advantage of unused EC2 capacity at a discounted rate, helping to reduce costs for fault-tolerant and flexible applications. 

·      Use AWS Cost Explorer to analyze spending patterns and identify opportunities for cost optimization, such as using reserved instances or spot instances for cost savings.

  1. Aim to maximize profitability: This aligns with the overarching goal of FinOps, which is to maximize the value delivered by cloud resources while minimizing costs. By adopting a FinOps mindset and implementing best practices, organizations can achieve greater profitability and efficiency in their cloud operations.

AWS Example:

·      Use AWS Trusted Advisor to monitor and optimize costs can help maximize profitability by identifying and resolving cost inefficiencies.

 

A FinOps Odyssey


Stay tuned for Part – 2 of The FinOps Odyssey series