

# SUS 6 Como os processos organizacionais apoiam as metas de sustentabilidade?
<a name="sus-06"></a>

Procure oportunidades para reduzir seu impacto na sustentabilidade fazendo mudanças nas suas práticas de desenvolvimento, teste e implantação. 

**Topics**
+ [SUS06-BP01 Adotar métodos que podem apresentar melhorias na sustentabilidade rapidamente](sus_sus_dev_a2.md)
+ [SUS06-BP02 Manter a workload atualizada](sus_sus_dev_a3.md)
+ [SUS06-BP03 Aumentar a utilização de ambientes de desenvolvimento](sus_sus_dev_a4.md)
+ [SUS06-BP04 Usar parques de dispositivos gerenciados para testes](sus_sus_dev_a5.md)

# SUS06-BP01 Adotar métodos que podem apresentar melhorias na sustentabilidade rapidamente
<a name="sus_sus_dev_a2"></a>

Adote métodos e processos para validar possíveis aprimoramentos, minimizar o custo dos testes e fornecer pequenas melhorias.

 **Antipadrões comuns:** 
+  A avaliação da sustentabilidade de sua aplicação é uma tarefa que é feita apenas uma vez no início de um projeto. 
+  Como o processo de lançamento para introduzir pequenas alterações em prol da eficiência dos recursos é muito trabalhoso, sua workload ficou ultrapassada. 
+  Você não tem mecanismos para melhorar a sustentabilidade de sua workload. 

 **Benefícios do estabelecimento desta prática recomendada:** por meio da criação de um processo para introduzir e monitorar melhorias de sustentabilidade, você conseguirá adotar novos recursos e capacidades, eliminar problemas e melhorar a eficiência da workload continuamente. 

 **Nível de risco exposto se esta prática recomendada não é estabelecida:** médio 

## Orientações para a implementação
<a name="implementation-guidance"></a>

 Teste e valide as possíveis melhorias de sustentabilidade antes de implantá-las na produção. Considere o custo do teste ao calcular o benefício futuro potencial de uma melhoria. Desenvolva métodos de teste de baixo custo para oferecer pequenas melhorias. 

 **Etapas da implementação** 
+  Adicione requisitos de melhoria da sustentabilidade às suas pendência de desenvolvimento. 
+  Use um [processo de melhoria](https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/improvement-process.html) iterativo para identificar, avaliar, priorizar, testar e implantar essas melhorias. 
+  Melhore e otimize continuamente seus processos de desenvolvimento. A título de exemplo, [automatize seu processo de entrega de software usando pipelines de integração contínua e entrega contínua](https://aws.amazon.com/getting-started/hands-on/set-up-ci-cd-pipeline/) a fim de testar e implantar possíveis melhorias para reduzir o nível de esforço e limitar os erros provocados por processos manuais. 
+  Desenvolva e teste possíveis melhorias usando os componentes representativos mínimos viáveis para reduzir o custo dos testes. 
+  Avalie continuamente o impacto das melhorias e faça ajustes conforme necessário. 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [A AWS viabiliza soluções de sustentabilidade](https://aws.amazon.com/sustainability/) 
+ [ Práticas de desenvolvimento ágil escaláveis com base no AWS CodeCommit](https://aws.amazon.com/blogs/devops/scalable-agile-development-practices-based-on-aws-codecommit/)

 **Vídeos relacionados:** 
+ [ Entregar arquiteturas sustentáveis e de alta performance ](https://www.youtube.com/watch?v=FBc9hXQfat0)

 **Exemplos relacionados:** 
+  [Laboratório do Well-Architected: Transformação de relatório de custo e uso em relatório de eficiência](https://www.wellarchitectedlabs.com/sustainability/300_labs/300_cur_reports_as_efficiency_reports/) 

# SUS06-BP02 Manter a workload atualizada
<a name="sus_sus_dev_a3"></a>

Mantenha sua workload atualizada para adotar recursos eficientes, eliminar problemas e melhorar a eficiência geral da workload. 

 **Antipadrões comuns:** 
+ Você pressupõe que sua arquitetura atual é estática e não será atualizada ao longo do tempo.
+  Você não tem nenhum sistema ou ritmo regular para avaliar se software ou pacotes atualizados são compatíveis com sua workload. 

 **Benefícios do estabelecimento desta prática recomendada:** ao estabelecer um processo para manter a workload atualizada, você pode adotar novos recursos e capacidades, resolver problemas e aumentar a eficiência da workload.

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** baixo 

## Orientações para a implementação
<a name="implementation-guidance"></a>

 Sistemas operacionais, tempos de execução, middleware, bibliotecas e aplicações atualizados podem melhorar a eficiência da workload e facilitar a adoção de tecnologias mais eficientes. Um software atualizado também pode incluir recursos para medir o impacto na sustentabilidade da workload com maior precisão, pois os fornecedores oferecem recursos para atender às suas próprias metas de sustentabilidade. Adote um ritmo regular para manter a workload atualizada com os recursos e versões mais recentes. 

 **Etapas da implementação** 
+  Defina um processo e um cronograma para avaliar novos recursos ou instâncias para sua workload. Aproveite a agilidade da nuvem para testar rapidamente como novos recursos podem melhorar sua workload com o intuito de: 
  +  Reduzir impactos de sustentabilidade. 
  +  Obter eficiências de performance. 
  +  Remover barreiras de melhorias planejadas. 
  +  Aumentar sua capacidade de medir e gerenciar impactos na sustentabilidade. 
+  Fazer o inventário de software e arquitetura da workload e identificar os componentes que precisam ser atualizados. 
  +  Você pode usar o [AWS Systems Manager Inventory](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-inventory.html) para coletar metadados de sistema operacional (SO), aplicação e instância das instâncias do Amazon EC2 e entender rapidamente quais instâncias executam o software e as configurações exigidas pela política de software e quais instâncias precisam ser atualizadas. 
+  Entenda como atualizar os componentes de sua workload.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/wellarchitected/2023-10-03/framework/sus_sus_dev_a3.html)
+  Use automação no processo de atualização para reduzir o nível de esforço para implantar novos recursos e limitar erros causados por processos manuais. 
  +  Você pode usar [CI/CD](https://aws.amazon.com/blogs/devops/complete-ci-cd-with-aws-codecommit-aws-codebuild-aws-codedeploy-and-aws-codepipeline/) para atualizar automaticamente AMIs, imagens de contêiner e outros artefatos relacionados à sua aplicação de nuvem. 
  +  Você pode usar ferramentas como o [Gerenciador de Patches do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) para automatizar o processo de atualizações de sistema e programar a atividade usando as [Janelas de Manutenção do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html). 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [Central de arquitetura da AWS](https://aws.amazon.com/architecture) 
+  [Quais as novidades da AWS](https://aws.amazon.com/new/?ref=wellarchitected&ref=wellarchitected) 
+  [Ferramentas do desenvolvedor na AWS](https://aws.amazon.com/products/developer-tools/) 

 **Exemplos relacionados:** 
+  [Laboratórios do Well-Architected: Gerenciamento de inventário e patches](https://wellarchitectedlabs.com/operational-excellence/100_labs/100_inventory_patch_management/) 
+  [Laboratório: AWS Systems Manager](https://mng.workshop.aws/ssm.html) 

# SUS06-BP03 Aumentar a utilização de ambientes de desenvolvimento
<a name="sus_sus_dev_a4"></a>

Aumente a utilização dos recursos para desenvolver, testar e compilar suas workloads.

 **Antipadrões comuns:** 
+  Você provisiona ou encerra manualmente seus ambientes de compilação. 
+  Você mantém seus ambientes de compilação em execução independentemente de atividades de teste, compilação ou lançamento (por exemplo, execução de um ambiente fora do horário de expediente dos membros de sua equipe de desenvolvimento). 
+  Você provisiona recursos em excesso para seus ambientes de compilação. 

 **Benefícios do estabelecimento desta prática recomendada:** ao aumentar a utilização dos ambientes de compilação, você pode melhorar a eficiência geral de sua workload de nuvem e, ao mesmo tempo, alocar recursos aos compiladores para que eles desenvolvam, testem e compilem com eficiência. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** baixo 

## Orientações para a implementação
<a name="implementation-guidance"></a>

 Use a automação e a infraestrutura como código para ativar ambientes de compilação quando necessário e desativá-los quando não forem usados. Um padrão comum é programar períodos de disponibilidade que coincidam com as horas de trabalho dos membros da equipe de desenvolvimento. A configuração dos ambientes de teste deve ser bem semelhante à do ambiente de produção. Entretanto, procure oportunidades para usar tipos de instância com capacidade de expansão, instâncias spot do Amazon EC2, serviços de banco de dados com escalabilidade automática, contêineres e tecnologias sem servidor para alinhar a capacidade de desenvolvimento e teste com o uso. Limite o volume de dados apenas para atender os requisitos de teste. Se usar dados de produção no teste, explore possibilidades para compartilhar os dados da produção em vez de movimentá-los. 

 **Etapas da implementação** 
+  Use a infraestrutura como código para provisionar os ambientes de compilação. 
+  Use a automação para gerenciar o ciclo de vida de seus ambientes de desenvolvimento e teste e maximizar a eficiência dos recursos de compilação. 
+  Use estratégias para maximizar a utilização de seus ambientes de desenvolvimento e teste. 
  +  Use ambientes representativos mínimos viáveis para desenvolver e testar possíveis melhorias. 
  +  Utilize tecnologias sem servidor, se possível. 
  +  Use instâncias sob demanda para complementar os dispositivos de desenvolvedor. 
  +  Use tipos de instância com capacidade de expansão, instâncias spot e outras tecnologias para alinhar a capacidade de compilação com o uso. 
  +  Adote serviços de nuvem nativos para acesso seguro ao shell de instância em vez de implantar frotas de hosts bastion. 
  +  Escale automaticamente seus recursos de compilação de acordo com seus trabalhos de compilação. 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [Gerenciador de sessões do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) 
+  [Instâncias de performance expansível do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) 
+  [O que é o AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+ [O que é o AWS CodeBuild? ](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [ Programador de Instâncias da AWS](https://aws.amazon.com/solutions/implementations/instance-scheduler-on-aws/)

 **Vídeos relacionados:** 
+ [ Práticas recomendadas de integração contínua ](https://www.youtube.com/watch?v=77HvSGyBVdU)

# SUS06-BP04 Usar parques de dispositivos gerenciados para testes
<a name="sus_sus_dev_a5"></a>

Use parques de dispositivos gerenciados para testar com eficiência um novo recurso em um conjunto representativo de hardware.

 **Antipadrões comuns:** 
+  Você testa e implanta manualmente sua aplicação em dispositivos físicos individuais. 
+  Você não usa o serviço de testes de aplicação para testar e interagir com suas aplicações (por exemplo, Android, iOS e aplicações Web) em dispositivos físicos reais. 

 **Benefícios do estabelecimento desta prática recomendada:** usar parques de dispositivos gerenciados para testar aplicações habilitadas para a nuvem oferece inúmeros benefícios: 
+  Eles contam com recursos mais eficientes para testar a aplicação em uma ampla variedade de dispositivos. 
+  Eles eliminam a necessidade de infraestrutura interna para testes. 
+  Eles oferecem diversos tipos de dispositivo, incluindo hardware mais antigo e menos conhecido, eliminando a necessidade de atualizações de dispositivo desnecessárias. 

 **Nível de exposição a riscos quando esta prática recomendada não é estabelecida:** baixo 

## Orientações para a implementação
<a name="implementation-guidance"></a>

Usar parques de dispositivos gerenciados pode ajudar a otimizar o processo de testes de novos recursos em um conjunto representativo de hardware. Os parques de dispositivos gerenciados oferecem diversos tipos de dispositivo, incluindo hardware mais antigo e menos conhecido, e evita o impacto sobre a sustentabilidade por parte do cliente devido a atualizações desnecessárias de dispositivo.

 **Etapas da implementação** 
+  Defina seus requisitos e plano de testes (como tipo de teste, sistemas operacionais e programação dos testes). 
  +  Você pode usar o [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) para coletar e analisar dados do lado do cliente e moldar seu plano de testes. 
+  Selecione o parque de dispositivos gerenciados capaz de atender aos seus requisitos de teste. Por exemplo, você pode usar o [AWS Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) para testar e conhecer o impacto de suas alterações sobre um conjunto representativo de hardware. 
+  Use a integração contínua/implantação contínua (CI/CD) para programar e executar seus testes. 
  + [ Integração do AWS Device Farm com seu pipeline de CI/CD para executar testes Selenium entre navegadores ](https://aws.amazon.com/blogs/devops/integrating-aws-device-farm-with-ci-cd-pipeline-to-run-cross-browser-selenium-tests/)
  + [ Compilação e teste de aplicativos iOS e iPadOS com DevOps e serviços móveis da AWS](https://aws.amazon.com/blogs/devops/building-and-testing-ios-and-ipados-apps-with-aws-devops-and-mobile-services/)
+  Avalie continuamente os resultados dos testes e faça as melhorias necessárias. 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+ [Lista de dispositivos do AWS Device Farm](https://awsdevicefarm.info/)
+ [ Visualização do painel do CloudWatch RUM ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-view-data.html)

 **Exemplos relacionados:** 
+ [ Aplicativo de exemplo do AWS Device Farm para Android ](https://github.com/aws-samples/aws-device-farm-sample-app-for-android)
+ [ Aplicativo de exemplo do AWS Device Farm para iOS ](https://github.com/aws-samples/aws-device-farm-sample-app-for-ios)
+ [ estes Web Appium para AWS Device Farm](https://github.com/aws-samples/aws-device-farm-sample-web-app-using-appium-python)

 **Vídeos relacionados:** 
+ [Otimização de aplicações por meio de insights sobre o usuário final com o Amazon CloudWatch RUM ](https://www.youtube.com/watch?v=NMaeujY9A9Y)