Search for Well Architected Advice
< All Topics
Print

Remove or refactor workload components with low or no use

Removing unused components and refactoring under-utilized ones is crucial for minimizing waste in your architecture. This practice enhances sustainability by reducing the energy consumption of your overall system, leading to more efficient resource utilization and lower operational costs.

Best Practices

Regularly Assess Usage and Performance

  • Conduct periodic audits of your workload and components to identify underutilized or idle resources. Regular assessments help you make informed decisions to optimize compute, storage, and networking resources, leading to a more sustainable workload.
  • Monitor and analyze usage metrics and trends over time to ensure resources are consistently right-sized. Implement automated monitoring and alerts that notify you when resource utilization falls below a certain threshold.

Refactor or Decommission Idle Components

  • Remove components that show no usage or minimal impact on business outcomes. This reduces unnecessary energy consumption and lowers operational costs while minimizing carbon footprint.
  • Refactor or consolidate low-use services into shared resources or smaller footprints where possible. This maximizes resource utilization while maintaining required functionality.

Automate Resource Rightsizing and Retirement

  • Implement automated scripts or tools to rightsize resources based on usage patterns. Automation ensures quick, consistent adjustments without manual intervention.
  • Establish decommissioning workflows for resources that are flagged as no longer needed. Automated processes help prevent resource sprawl and reduce waste.

Continuously Reevaluate Architecture

  • Adopt a culture of iterative improvement where teams regularly revisit architecture decisions, looking for consolidation opportunities. This helps you stay aligned with evolving user behavior and technology trends.
  • Incorporate learnings into future architecture designs, eliminating unnecessary features, services, or resources that do not add value. Continuously refining your architecture drives sustainability over time.

Questions to ask your team

  • Do you have a method or process to identify and monitor workload components that are underutilized or idle?
  • How do you assess the necessity of each component to determine if it should be retired, consolidated, or refactored?
  • Are you automating remediation steps (for example, decommissioning resources) to minimize potential waste from idle components?
  • How do you measure the performance impact of consolidating or removing components before implementing changes?
  • Have you considered automated scheduling or on-demand scaling to reduce runtime on components that experience fluctuating demand?
  • What metrics and time thresholds do you use to decide when a workload component should be removed or refactored?
  • Do you have governance or policies ensuring teams regularly audit and clean up unused or low-utilization services?

Who should be doing this?

Solutions Architect

  • Evaluate architectural components to identify underutilized workloads
  • Develop strategies for refactoring or removing obsolete components
  • Ensure proposed changes align with sustainability and performance goals

DevOps Engineer

  • Implement removal or refactoring of low-usage components
  • Monitor resource usage and establish automated scaling policies
  • Optimize deployment pipelines to minimize waste and idle resources

Product Owner

  • Prioritize tasks related to removing or refactoring underused components
  • Align sustainability initiatives with broader product roadmap
  • Coordinate with stakeholders to approve resource optimization investments

Business Analyst

  • Analyze workload utilization data to identify unnecessary components
  • Conduct cost-benefit analysis for refactoring or component retirement
  • Present findings to guide decision-making on resource optimization

What evidence shows this is happening in your organization?

  • Retirement Policy: A policy outlining the criteria and process for removing or refactoring low or no-use components to reduce waste.
  • Resource Consolidation Plan: A plan that details steps for consolidating under-utilized resources, including timelines, responsibilities, and expected sustainability outcomes.
  • Periodic Report on Unused Workloads: A regular report to identify and track workloads with little or no usage, ensuring timely refactoring or decommissioning.

Cloud Services

AWS

  • AWS Trusted Advisor: Identifies opportunities to remove or refactor unused resources through various checks, improving sustainability.
  • Amazon CloudWatch: Monitors resource utilization, helping detect underutilized components so you can consolidate and reduce waste.
  • AWS Cost Explorer: Analyzes cost and usage patterns to highlight idle resources, enabling more efficient workload configurations.

Azure

  • Azure Advisor: Provides clear recommendations for removing or refactoring underutilized services to optimize resource usage.
  • Azure Monitor: Gathers and tracks performance data, allowing you to identify low-use components and optimize or remove them.
  • Azure Cost Management + Billing: Helps visually analyze resource cost and usage, making it simpler to spot and eliminate idle services.

Google Cloud Platform

  • Google Cloud Recommender: Identifies inefficient resource usage and proposes actions to remove or refactor low-use components.
  • Cloud Monitoring: Continuously monitors service health and resource utilization, helping you pinpoint wasteful components.
  • Cloud Billing: Provides cost visibility and insights for spotting underused resources and consolidating them effectively.
Table of Contents