

# Processo de melhoria
<a name="improvement-process"></a>

 O processo de melhoria da arquitetura inclui a compreensão do que você tem e o que pode ser feito para melhorar, definir o que precisa ser melhorado, testar as melhorias, adotar melhorias bem-sucedidas, quantificar seu êxito e compartilhar o que você aprendeu para que possa ser replicado em outras partes e, então, repetir o ciclo. 

 As metas de melhoria podem ser: 
+  Eliminar desperdício, baixa utilização e recursos ociosos ou não utilizados 
+  Maximizar o valor dos recursos que você consome 

**nota**  
Use todos os recursos que você provisiona e conclua o mesmo trabalho com o mínimo de recursos possível. 

 Nos estágios iniciais da otimização, concentre-se primeiro em áreas com resíduos ou baixa utilização e, depois, passe para otimizações mais direcionadas que se ajustam à sua workload específica. 

 Monitore as mudanças no consumo de recursos ao longo do tempo. Identifique onde as mudanças acumuladas resultam no consumo ineficiente ou significativamente maior de recursos. Determine a necessidade de melhorias para resolver os desafios no consumo e implemente aquelas que você prioriza. 

 As etapas a seguir foram projetadas para ser um processo iterativo que avalia, prioriza, testa e implementa melhorias focadas na sustentabilidade para workloads na nuvem. 

1.  **Identifique metas de melhoria:** revise suas workloads em relação às práticas recomendadas de sustentabilidade identificadas neste documento e identifique metas de melhoria. 

1.  **Avalie melhorias específicas:** avalie alterações específicas quanto a possíveis aprimoramentos, custo projetado e risco empresarial. 

1.  **Priorize e planeje melhorias:** priorize as mudanças que oferecem as maiores melhorias com o menor custo e risco e estabeleça um plano para testes e implementação. 

1.  **Teste e valide melhorias:** implemente alterações nos ambientes de teste para validar seu potencial de melhoria. 

1.  **Implemente alterações na produção:** implemente alterações em todos os ambientes de produção. 

1.  **Avalie os resultados e replique os sucessos:** procure oportunidades de replicar os sucessos em todas as workloads e reverta as alterações com resultados inaceitáveis. 

## Exemplo de cenário
<a name="example-scenario"></a>

 O exemplo de cenário a seguir é mencionado posteriormente neste documento para ilustrar cada etapa do processo de melhoria. 

 Sua empresa tem uma workload que executa manipulações complexas de imagens em instâncias do Amazon EC2 e armazena os arquivos modificados e originais para acesso do usuário. As atividades de processamento consomem muita CPU e os arquivos de saída são extremamente grandes. 

# Identificar metas para melhoria
<a name="identify-targets-for-improvement"></a>

 Entenda as práticas recomendadas que podem ajudar a atingir suas metas de sustentabilidade. Descrições detalhadas dessas [práticas recomendadas](best-practices-for-sustainability-in-the-cloud.md) e outras recomendações para melhorias podem ser encontradas posteriormente neste documento. 

 Analise suas workloads e os recursos usados. Identifique *pontos críticos*, como grandes implantações e recursos usados com frequência. Avalie esses pontos críticos em busca de oportunidades de melhorar a utilização efetiva de seus recursos e reduzir o total de recursos necessários para alcançar seus resultados comerciais. 

 Analise sua workload em relação às práticas recomendadas e identifique candidatos para melhorias. 

 Ao aplicar essa etapa ao [Exemplo de cenário](improvement-process.md#example-scenario), você identifica as seguintes práticas recomendadas como prováveis alvos de melhoria: 
+  Use a quantidade mínima de hardware para atender às suas necessidades 
+  Use tecnologias que melhor ofereçam suporte aos seus padrões de acesso e armazenamento de dados 

## Recursos
<a name="resources-1"></a>
+  [Otimizar a sua infraestrutura da AWS para sustentabilidade, Parte I: Computação](https://aws.amazon.com/blogs/architecture/optimizing-your-aws-infrastructure-for-sustainability-part-i-compute/) 
+  [Otimizar a sua infraestrutura da AWS para sustentabilidade, Parte II: Armazenamento](https://aws.amazon.com/blogs/architecture/optimizing-your-aws-infrastructure-for-sustainability-part-ii-storage/) 
+  [Otimizar a sua infraestrutura da AWS para sustentabilidade, Parte III: Redes](https://aws.amazon.com/blogs/architecture/optimizing-your-aws-infrastructure-for-sustainability-part-iii-networking/) 

# Avaliar melhorias específicas
<a name="evaluate-specific-improvements"></a>

 Entenda os recursos provisionados pela sua workload para concluir uma unidade de trabalho. Avalie possíveis melhorias e estime seu impacto potencial, o custo de implementação e os riscos associados. 

 Para medir as melhorias ao longo do tempo, primeiro entenda o que você provisionou na AWS e como esses recursos estão sendo consumidos. 

 Comece com uma visão geral completa do seu uso da AWS e use os relatórios de custo e uso da AWS para ajudar a identificar pontos críticos. Use este [código de exemplo da AWS](https://github.com/aws-samples/aws-usage-queries) para obter ajuda para revisar e analisar seu relatório com o Amazon Athena. 

## Métricas proxy
<a name="proxy-metrics"></a>

 Ao avaliar alterações específicas, você também deve avaliar quais métricas melhor quantificam o efeito dessa alteração no recurso associado. Essas métricas são chamadas de *métricas proxy*. Selecione métricas proxy que melhor reflitam o tipo de melhoria que você está avaliando e os recursos visados pela melhoria. Essas métricas podem evoluir com o tempo. 

 Os recursos provisionados para oferecer suporte à sua workload incluem os recursos de computação, armazenamento e rede. Avalie os recursos provisionados usando suas métricas proxy para ver como esses recursos são consumidos. 

 Use suas métricas proxy para medir os recursos provisionados para alcançar resultados comerciais. 


|  **Recurso**  |  **Exemplo de métricas proxy**  |  **Metas de melhoria**  | 
| --- | --- | --- | 
|  Computação  |  Minutos de vCPU  |  Maximize a utilização dos recursos provisionados  | 
|  Armazenamento  |  GB provisionados  |  Reduza o total provisionado  | 
|  Rede  |  GB transferidos ou pacotes transferidos  |  Reduza o total transferido e a distância da transferência  | 

## Métricas empresariais
<a name="business-metrics"></a>

 Selecione métricas de negócios para quantificar a obtenção dos resultados comerciais. Suas métricas de negócios devem refletir o valor fornecido pela sua workload, por exemplo, o número de usuários ativos simultâneos, as chamadas de API atendidas ou o número de transações concluídas. Essas métricas podem evoluir com o tempo. Tenha cuidado ao avaliar métricas de negócios baseadas em finanças, pois a inconsistência no valor das transações invalida as comparações. 

## Indicadores-chave de performance
<a name="key-performance-indicators"></a>

 Usando a fórmula a seguir, divida os recursos provisionados pelos resultados comerciais alcançados para determinar os recursos provisionados por unidade de trabalho. 

![\[Diagrama mostrando esta fórmula: Recursos provisionados por unidade de trabalho = métrica proxy para recurso provisionado/métrica comercial para resultado\]](http://docs.aws.amazon.com/pt_br/wellarchitected/latest/sustainability-pillar/images/key-performance-indicators-formula.png)


 Use seus recursos por unidade de trabalho como KPIs. Estabeleça linhas de base para os recursos provisionados como base para comparações. 


|  **Recurso**  |  **Exemplos de KPIs**  |  **Metas de melhoria**  | 
| --- | --- | --- | 
|  Computação  |  Minutos de vCPU por transação  |  Maximize a utilização dos recursos provisionados  | 
|  Armazenamento  |  GB por transação  |  Reduza o total provisionado  | 
|  Rede  |  GB transferidos por transação ou pacotes transferidos por transação  |  Reduza o total transferido e a distância da transferência  | 

## Estimar as melhorias
<a name="estimate-improvement"></a>

 Estime a melhoria com base na redução quantitativa nos recursos provisionados (conforme indicado por suas métricas de proxy) e na variação percentual dos recursos básicos provisionados por unidade de trabalho. 


|  **Recurso**  |  **Exemplos de KPIs**  |  **Metas de melhoria**  | 
| --- | --- | --- | 
|  Computação  |  % de redução de minutos de vCPUs por transação  |  Maximize a utilização  | 
|  Armazenamento  |  % de redução de GB por transação  |  Reduza o total provisionado  | 
|  Rede  |  % de redução de GB transferidos por transação ou pacotes transferidos por transação  |  Reduza o total transferido e a distância da transferência  | 

## Avaliar as melhorias
<a name="evaluate-improvements"></a>

 Avalie possíveis melhorias em relação ao benefício líquido previsto. Avalie o tempo, o custo e o nível de esforço para implementar e manter, além dos riscos comerciais, como impactos imprevistos. 

 Melhorias direcionadas geralmente representam compensações entre os tipos de recursos consumidos. Por exemplo, para reduzir o consumo de computação, é possível armazenar um resultado ou, para limitar os dados transferidos, você pode processar os dados antes de enviar o resultado para um cliente. Essas [compensações](sustainability-as-a-non-functional-requirement.md) serão discutidas em mais detalhes posteriormente. 

 Inclua requisitos não funcionais ao avaliar os riscos de sua workload, incluindo segurança, confiabilidade, eficiência de performance, otimização de custos e o impacto das melhorias em sua capacidade de operar sua workload. 

 Aplicando essa etapa ao [Exemplo de cenário](improvement-process.md#example-scenario), você avalia as melhorias desejadas com os seguintes resultados: 


|  **Prática recomendada**  |  **Melhoria direcionada**  |  **Potencial**  |  **Custos**  |  **Risco**  | 
| --- | --- | --- | --- | --- | 
|  Use a quantidade mínima de hardware para atender às suas necessidades  |  Implemente ajuste de escala preditivo para reduzir os períodos de baixa utilização  |  Médio  |  Baixo  |  Baixo  | 
|  Use tecnologias que melhor ofereçam suporte aos seus padrões de acesso e armazenamento de dados  |  Implemente mecanismos de compactação mais eficazes para reduzir o armazenamento total e o tempo necessário para alcançá-lo  |  Alta  |  Baixo  |  Baixo  | 

 A implementação do ajuste de escala preditivo reduz as horas de vCPU consumidas por instâncias subutilizadas ou não utilizadas, oferecendo benefícios moderados em relação aos mecanismos de ajuste de escala existentes com uma redução estimada de 11% nos recursos consumidos. Os custos envolvidos são baixos e incluem a configuração dos recursos de nuvem e a operação de ajuste de escala preditivo para o Amazon EC2 Auto Scaling. O risco é a limitação de performance quando a expansão é executada de forma reativa em resposta à demanda que excede as previsões. 

 A implementação de uma compactação mais eficaz pode ter um impacto significativo com grandes reduções no tamanho do arquivo em todas as imagens originais e manipuladas, gerando uma redução estimada de 25% nos requisitos de armazenamento na produção. A implementação do novo algoritmo é uma substituição de baixo esforço com pouco risco envolvido. 

# Priorizar e planejar melhorias
<a name="prioritize-and-plan-improvements"></a>

 Priorize suas melhorias identificadas com base no maior impacto previsto com os menores custos e riscos aceitáveis. 

 Decida em quais melhorias focar inicialmente e inclua-as em seu roteiro de planejamento e desenvolvimento de recursos. 

 Ao aplicar essa etapa ao [Exemplo de cenário](improvement-process.md#example-scenario), você prioriza as melhorias desejadas da seguinte forma: 


|  **Priority**  |  **Melhoria**  |  **Potencial**  |  **Custos**  |  **Risco**  | 
| --- | --- | --- | --- | --- | 
|  1  |  Implementar mecanismos de compactação mais eficazes  |  Alta  |  Baixo  |  Baixo  | 
|  2  |  Implementar o ajuste de escala preditivo  |  Médio  |  Baixo  |  Baixo  | 

 O alto potencial, o baixo custo e o risco de atualizar a compactação de arquivos a tornam uma meta de alto valor para sua empresa e uma prioridade em relação à implementação do ajuste de escala preditivo. Você determina que a implementação do ajuste de escala preditivo com seu impacto potencial médio, baixo custo e baixo risco deve ser a melhoria prioritária após a conclusão da compactação do arquivo. 

 Você define um membro da equipe para implementar uma compactação aprimorada de arquivos e adicionar ajuste de escala preditivo à sua lista de pendências. 

# Testar e validar as melhorias
<a name="test-and-validate-improvements"></a>

 Realize pequenos testes com investimento mínimo para reduzir o risco de um esforço em grande escala. 

 Implemente uma cópia representativa de sua workload em seu ambiente de teste para limitar o custo e o risco de realizar testes e validação. Execute um conjunto predefinido de transações de teste, meça os recursos provisionados e determine os recursos usados por unidade de trabalho para estabelecer uma linha de base de teste. 

 Implemente sua meta de melhoria no ambiente de teste e repita o teste usando a mesma metodologia sob as mesmas condições. Em seguida, meça os recursos provisionados e os recursos usados por unidade de trabalho com sua melhoria implementada. 

 Calcule a variação percentual de sua linha de base dos recursos provisionados por unidade de trabalho e determine a redução quantitativa esperada nos recursos provisionados em seu ambiente de produção. Compare esses valores com os valores previstos. Determine se o resultado é um nível aceitável de melhoria. Avalie se alguma compensação nos recursos adicionais consumidos torna o benefício líquido da melhoria inaceitável. 

 Determine se a melhoria foi um sucesso e se os recursos devem ser investidos na implementação da mudança na produção. Se a mudança for avaliada como malsucedida no momento, redirecione seus recursos para testar e validar sua próxima meta e continuar seu ciclo de melhoria. 


|  **% de redução nos recursos provisionados por unidade de trabalho**  |  **Redução quantitativa nos recursos provisionados**  |  **Ação**  | 
| --- | --- | --- | 
|  Atendeu às expectativas  |  Atendeu às expectativas  |  Prossiga com a melhoria  | 
|  Não atendeu às expectativas  |  Atendeu às expectativas  |  Prossiga com a melhoria  | 
|  Atendeu às expectativas  |  Não atendeu às expectativas  |  Buscar melhorias alternativas  | 
|  Não atendeu às expectativas  |  Não atendeu às expectativas  |  Buscar melhorias alternativas  | 

 Aplicando essa etapa ao [Exemplo de cenário](improvement-process.md#example-scenario), você executa testes para validar o sucesso. 

Depois de realizar os testes no algoritmo de compactação aprimorado, a redução percentual nos recursos provisionados por unidade de trabalho (o armazenamento necessário tanto para a imagem original quanto para a imagem modificada) atendeu às expectativas com uma redução média de 30% no armazenamento provisionado e um aumento insignificante da carga computacional.

Você determina que os recursos computacionais adicionais necessários para aplicar o algoritmo de compactação aprimorado aos arquivos existentes em produção são insignificantes em comparação com a redução no armazenamento alcançada. Você confirmou o sucesso com a redução quantitativa dos recursos necessários (TBs de armazenamento), e a melhoria foi aprovada para implantação em produção.

# Implantar alterações na produção
<a name="deploy-changes-to-production"></a>

 Implemente melhorias testadas, validadas e aprovadas na produção. Implemente usando implantações limitadas, confirme a funcionalidade de sua workload, teste a redução real nos recursos provisionados e nos recursos consumidos por unidade de trabalho dentro da implantação limitada e verifique as consequências não intencionais da mudança. Prossiga com as implantações completas após o teste bem-sucedido. 

 Reverta as alterações se os testes falharem ou se você encontrar consequências não intencionais inaceitáveis da sua alteração. 

 Aplicando essa etapa ao [Exemplo de cenário](improvement-process.md#example-scenario), você executa as ações a seguir. 

 Você implementa as mudanças na produção usando uma implantação limitada por meio de uma metodologia de implantação azul-verde. Os testes de funcionalidade nas instâncias recém-implantadas foram bem-sucedidos. Você observa uma redução média de 26% no armazenamento provisionado para arquivos de imagem originais e manipulados. Você não observa nenhuma evidência de um aumento na carga de computação compactando novos arquivos. 

 Você percebe uma diminuição inesperada no tempo decorrido para compactar arquivos de imagem e atribui isso ao código altamente otimizado do novo algoritmo de compactação. 

 Você prossegue com a implantação completa da nova versão. 

# Avaliar os resultados e replicar os sucessos
<a name="measure-results-and-replicate-successes"></a>

Avalie os resultados e replique os sucessos das seguintes formas: 
+ Meça a melhoria inicial dos recursos provisionados por unidade de trabalho e a diminuição quantitativa nos recursos provisionados. 
+  Compare as estimativas iniciais e os resultados dos testes com suas medições de produção. Identifique os fatores que possam ter contribuído para as diferenças e atualize suas metodologias de estimativa e teste quando apropriado. 
+  Determine o sucesso e o grau de sucesso e compartilhe os resultados com as partes interessadas.
+  Se você precisou reverter as alterações devido a falhas nos testes ou a consequências negativas não intencionais da alteração, identifique os fatores contribuintes. Faça iterações onde for viável ou avalie novas abordagens para atingir os objetivos da alteração.
+  Pegue o que você aprendeu, estabeleça padrões e aplique melhorias bem-sucedidas em outros sistemas que também podem se beneficiar. Capture e compartilhe sua metodologia, artefatos relacionados e benefícios líquidos entre equipes e organizações para que outras pessoas possam adotar seu padrão e replicar seu sucesso. 
+ Monitore os recursos provisionados por unidade de trabalho e acompanhe as alterações e o impacto total ao longo do tempo. Mudanças em sua workload, ou na forma como seus clientes consomem a workload, podem ter um impacto na eficácia de sua melhoria. Reavalie as oportunidades de melhoria se notar reduções significativas de curto prazo na eficácia de sua melhoria ou uma redução acumulada na eficácia ao longo do tempo.
+ Quantifique o benefício líquido de sua melhoria ao longo do tempo (incluindo os benefícios recebidos por outras equipes que aplicaram sua melhoria, se disponível) para mostrar o retorno sobre o investimento das suas atividades de melhoria. 

 Ao aplicar essa etapa ao [Exemplo de cenário](improvement-process.md#example-scenario), você mede os resultados a seguir. 

 Sua workload mostra uma melhoria inicial de 23% de redução nos requisitos de armazenamento após a implantação e aplicação do novo algoritmo de compactação aos arquivos de imagem existentes. 

 O valor medido está amplamente de acordo com as estimativas iniciais (25%), e a diferença significativa em relação ao teste (30%) é determinada como resultado do fato de os arquivos de imagem usados nos testes não serem representativos dos arquivos de imagem presentes na produção. Você modifica o conjunto de imagens de teste para refletir mais adequadamente as imagens em produção. 

 A melhoria é considerada um sucesso total. A redução total no armazenamento provisionado é 2% menor do que os 25% estimados, mas 23% ainda é uma grande melhoria no impacto da sustentabilidade e é acompanhada por uma redução de custos equivalente. 

 As únicas consequências não intencionais da alteração são a redução benéfica no tempo decorrido para realizar a compactação e uma redução equivalente no consumo de vCPU. Essas melhorias são atribuídas ao código altamente otimizado. 

 Você estabelece um projeto interno de código aberto no qual compartilha seu código, artefatos associados, orientações sobre como implementar a mudança e os resultados de sua implementação. O projeto interno de código aberto facilita que suas equipes adotem o código para todos os casos de uso persistente de armazenamento de arquivos. Suas equipes adotam a melhoria como padrão. Os benefícios secundários do projeto interno de código aberto são que todos que adotam a solução se beneficiam das melhorias na solução, e qualquer pessoa pode contribuir com melhorias no projeto. 

 Você publica seu sucesso e compartilha o projeto de código aberto em toda a sua organização. Cada equipe que adota a solução replica o benefício com um investimento mínimo e aumenta o benefício líquido recebido do seu investimento. Você publica esses dados como uma história de sucesso contínua. 

 Você continua monitorando o impacto da melhoria ao longo do tempo e fará alterações no projeto interno de código aberto conforme necessário. 