Search for Well Architected Advice
< All Topics
Print

Optimize software and architecture for asynchronous and scheduled jobs

Optimizing software and architecture for asynchronous and scheduled jobs is vital for maximizing resource utilization and minimizing waste. By implementing efficient patterns such as queue-driven systems, organizations can ensure their deployed resources are utilized consistently, resulting in lower carbon footprints and improved resource management.

Best Practices

  • Implement Queue-Driven Architectures: Utilizing queue-driven architectures allows for decoupled services that can scale independently. This approach ensures consistent high utilization during peak loads while minimizing resource consumption during idle times. Implementing Amazon SQS or AWS Lambda in a serverless architecture can optimize resource utilization effectively.
  • Leverage Auto-Scaling: Auto-scaling features provided by AWS can automatically adjust resource capacity based on current demand, reducing idle resources. By configuring scaling policies, you can ensure that only the necessary resources are active at any time, thus supporting sustainability goals.
  • Schedule Non-Critical Jobs: By scheduling non-critical jobs during off-peak hours, you can optimize your resource usage and reduce the demand on your environment during high-traffic times, further contributing to efficient energy consumption.

Supporting Questions

  • Are you tracking the utilization rates of your deployed resources?
  • Have you identified any idle or under-utilized components in your architecture?
  • Are your computing resources regularly optimized for asynchronous tasks?

Roles and Responsibilities

  • Cloud Architect: Responsible for designing and implementing efficient cloud solutions while ensuring they meet sustainability metrics. The Cloud Architect should focus on planning for load smoothing and identifying underutilized services.
  • DevOps Engineer: Tasked with managing the deployment pipelines and infrastructure as code, ensuring that resource usage is monitored, and implementing automation to handle scaling effectively.

Artifacts

  • AWS CloudFormation Templates: Templates that define your AWS infrastructure and can automate the deployment and scaling of resources based on specific conditions and performance metrics.
  • Performance Monitoring Dashboards: Dashboards that track resource utilization, providing insights into underutilized components, and allowing teams to make data-driven decisions about resource consolidation or retirement.

Cloud Services

AWS

  • Amazon SQS: A fully managed message queuing service that enables decoupling of application components and ensures that workloads can maintain high availability despite demand fluctuations.
  • AWS Lambda: A serverless compute service that automatically manages scaling and runs code in response to events, allowing teams to only pay for what they use while supporting async job execution.
  • Amazon CloudWatch: A monitoring service that provides insights into resource usage patterns, enabling teams to identify underutilized resources and optimize their deployments for better sustainability.

Question: How do you take advantage of software and architecture patterns to support your sustainability goals?
Pillar: Sustainability (Code: SUS)

Table of Contents