

# Development and deployment process
Development and deployment process

**Topics**
+ [

# SUS 6 How do your development and deployment processes support your sustainability goals?
](sus-06.md)

# SUS 6 How do your development and deployment processes support your sustainability goals?


Look for opportunities to reduce your sustainability impact by making changes to your development, test, and deployment practices. 

**Topics**
+ [

# SUS06-BP01 Adopt methods that can rapidly introduce sustainability improvements
](sus_sus_dev_a2.md)
+ [

# SUS06-BP02 Keep your workload up-to-date
](sus_sus_dev_a3.md)
+ [

# SUS06-BP03 Increase utilization of build environments
](sus_sus_dev_a4.md)
+ [

# SUS06-BP04 Use managed device farms for testing
](sus_sus_dev_a5.md)

# SUS06-BP01 Adopt methods that can rapidly introduce sustainability improvements
SUS06-BP01 Adopt methods that can rapidly introduce sustainability improvements

 Test and validate potential improvements before deploying them to production. Account for the cost of testing when calculating potential future benefit of an improvement. Develop low-cost testing methods to enable delivery of small improvements. 

 **Level of risk exposed if this best practice is not established:** Medium 

## Implementation guidance
Implementation guidance
+  Add requirements for sustainability to your development process. 
+  Allow resources to work in parallel to develop, test, and deploy sustainability improvements. 
+  Test and validate potential sustainability impact improvements before deploying into production. 
+  Test potential improvements using the minimum viable representative components. 
+  Deploy tested sustainability improvements to production as they become available. 

## Resources
Resources

 **Related documents:** 
+  [AWS enables sustainability solutions](https://aws.amazon.com/sustainability/) 

 **Related examples:** 
+  [Lab: Turning](https://www.wellarchitectedlabs.com/sustainability/300_labs/300_cur_reports_as_efficiency_reports/) cost & usage reports into efficiency reports 

# SUS06-BP02 Keep your workload up-to-date
SUS06-BP02 Keep your workload up-to-date

 Up-to-date operating systems, libraries, and applications can improve workload efficiency and enable easier adoption of more efficient technologies. Up-to-date software might also include features to measure the sustainability impact of your workload more accurately, as vendors deliver features to meet their own sustainability goals. 

 **Common anti-patterns:** 
+  You assume your current architecture will become static with no updates over time. 
+  You do not have any systems or a regular cadence to evaluate if updated software and packages are compatible with your workload. 
+  You introduce architecture changes over time without justification. 

 **Benefits of establishing this best practice:** By establishing a process to keep your workload up to date, you will be able to adopt new features and capabilities, resolve issues, and improve workload efficiency.

 **Level of risk exposed if this best practice is not established:** Low 

## Implementation guidance
Implementation guidance
+  Define a process and a schedule to evaluate new features or instances for your workload. Take advantage of agility in the cloud to quickly test how new features can improve your workload to: 
  +  Reduce sustainability impacts. 
  +  Gain performance efficiencies. 
  +  Remove barriers for a planned improvement. 
  +  Improve your ability to measure and manage sustainability impacts. 
+  Inventory your workload software and architecture and identify components that need to be updated. You can use [AWS Systems Manager Inventory](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-inventory.html) to collect operating system (OS), application, and instance metadata from your Amazon EC2 instances and quickly understand which instances are running the software and configurations required by your software policy and which instances need to be updated. 
+  Understand how to update the components of your workload.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/wellarchitected/2022-03-31/framework/sus_sus_dev_a3.html)
+  Use automation for the update process to reduce the level of effort to deploy new features and limit errors caused by manual processes. Use tools such as [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) to automate the process of system updates, and schedule the activity using [AWS Systems Manager Maintenance Windows](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html). 

## Resources
Resources

 **Related documents:** 
+  [AWS Architecture Center](https://aws.amazon.com/architecture) 
+  [What's New with AWS](https://aws.amazon.com/new/?ref=wellarchitected&ref=wellarchitected) 
+  [AWS Developer Tools](https://aws.amazon.com/products/developer-tools/) 
+  [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 

 **Related examples:** 
+  [Well-Architected Labs: Inventory and Patch Management](https://wellarchitectedlabs.com/operational-excellence/100_labs/100_inventory_patch_management/) 
+  [Lab: AWS Systems Manager](https://mng.workshop.aws/ssm.html) 

# SUS06-BP03 Increase utilization of build environments
SUS06-BP03 Increase utilization of build environments

 Use automation and infrastructure-as-code to bring pre-production environments up when needed and take them down when not used. A common pattern is to schedule periods of availability that coincide with the working hours of your development team members. Hibernation is a useful tool to preserve the state and rapidly bring instances online only when needed. Use instance types with burst capacity, Spot Instances, elastic database services, containers, and other technologies to align development and test capacity with use. 

 **Level of risk exposed if this best practice is not established:** Low 

## Implementation guidance
Implementation guidance
+  Use automation to maximize utilization of your development and test environments. 
+  Use automation to manage the lifecycle of your development and test environments. 
+  Use minimum viable representative environments to develop and test potential improvements. 
+  Use On-Demand Instances to supplement your developer devices. 
+  Use automation to maximize the efficiency of your build resources. 
+  Use instance types with burst capacity, Spot Instances, and other technologies to align build capacity with use. 
+  Adopt native cloud services for secure instance shell access rather than deploying fleets of bastion hosts. 

## Resources
Resources

 **Related documents:** 
+  [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) 
+  [Amazon EC2 Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) 
+  [What is AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 

# SUS06-BP04 Use managed device farms for testing
SUS06-BP04 Use managed device farms for testing

 Managed device farms spread the sustainability impact of hardware manufacturing and resource usage across multiple tenants. Managed device farms offer diverse device types so you can support older, less popular hardware, and avoid customer sustainability impact from unnecessary device upgrades. 

 **Level of risk exposed if this best practice is not established:** Low 

## Implementation guidance
Implementation guidance

 Test using managed device farms with representative sets of hardware to understand the impact of your changes, and iterate development to maximize the devices supported. 

## Resources
Resources

 **Related documents:** 
+  [What is AWS Device Farm?](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) 