View on GitHub

manual-da-engenharia-para-codar

Este é o manual para compromissos de "código com" a engenharia.

Engenharia de Software Sustentável

As escolhas feitas ao longo do processo de engenharia, relacionadas a serviços em nuvem, design de arquitetura de software e automação, podem ter um grande impacto na pegada de carbono de uma solução. Algumas escolhas são sempre benéficas, como desligar recursos não utilizados. Outras escolhas exigem uma compreensão mais detalhada do caso de negócios em questão e seu potencial impacto ambiental.

Objetivo

Um dos objetivos desta seção é fornecer orientações concretas sobre ações sustentáveis que você pode aplicar em determinadas situações e as ferramentas para implementar essas recomendações. Outro objetivo é destacar os muitos recursos disponíveis para aprender sobre o amplo domínio do software sustentável.

Checklist de Engenharia Sustentável

Esta lista de verificação deve ser usada para identificar rapidamente cenários nos quais ações sustentáveis comuns são aplicáveis. Marque a caixa se o cenário se aplicar ao seu projeto e, em seguida, siga as ações e ferramentas que podem ser usadas para construir um software mais sustentável para esses casos. Se houver nuances importantes a serem consideradas, elas serão mencionadas na seção ‘Observações’.

Para facilitar a leitura, algumas considerações estão em branco, indicando que a ação se aplica à primeira consideração acima dela.

Consideração Ação Princípio Ferramentas Observações
  Para qualquer software/serviços em execução Desligue recursos não utilizados. Consumo de Eletricidade Identificar Recursos Não Associados  
    Redimensione máquinas físicas ou virtuais para melhorar a utilização. Proporcionalidade de Energia Recomendações de Custo do Azure Advisor Compreendendo Recomendações do Advisor
  Para VMs de desenvolvimento e teste Configure as VMs para desligar fora do horário de expediente. Consumo de Eletricidade Iniciar/Desligar VMs durante o horário de expediente  
  Para VMs com volumes anexados Limite a quantidade de capacidade de armazenamento anexada ao que você espera usar e expanda conforme necessário. Consumo de Eletricidade Expandindo o armazenamento de VMs ativas Compreensão do custo energético do armazenamento
  Para sistemas que utilizam armazenamento de objetos (Azure Blob Storage, AWS S3, GCP Cloud Storage, etc) Comprima dados acessados ​​raramente. Consumo de Eletricidade, Carbono Incorporado Comprimir e extrair arquivos em .NET Compreendendo o custo energético do armazenamento
    Exclua dados quando não forem mais necessários. Consumo de Eletricidade Configurar uma política de gerenciamento de ciclo de vida Compreendendo o custo energético do armazenamento
  Para sistemas em execução em data centers locais Migrar para um provedor de nuvem em escala hiper. Carbono Incorporado, Consumo de Eletricidade Abordagens de Adoção em Nuvem Benefícios ambientais da computação em nuvem
  Para sistemas migrando para um provedor de nuvem em escala hiper Considere enviar fisicamente dados para o provedor. Rede Azure Data Box Compreendendo as compensações do envio de dados
  Para cargas de trabalho de tempo flexível (https://docs.microsoft.com/en-us/azure/architecture/best-practices/background-jobs) Utilize “Spot VMs” para computação. Moldagem de Demanda Como usar Spot VMs  
  Para serviços com padrões de utilização variados Configure o dimensionamento automático. [Proporcionalidade de Energia](./sustainable-engineering-principles.md#energy-pro    
portionality) Documentação sobre Dimensionamento Automático          
      Use funções sem servidor. Proporcionalidade de Energia Design de Arquitetura sem Servidor  
    Para serviços com usuários geograficamente localizados (por exemplo, aplicativos internos para funcionários) Selecione uma região de data center fisicamente próxima a eles. Rede Produtos Azure disponíveis por região  
      Considere o uso de dispositivos de borda para reduzir a transferência excessiva de dados. Rede Azure Stack Edge Compreendendo as compensações de dispositivos de borda
    Para sistemas que enviam dados pela rede Use políticas de cache para manter os dados na máquina local. Rede APIs de Cache HTTP, Gerenciamento de Cache em .NET Compreendendo as compensações do cache
      Considere o cache de dados próximo aos usuários finais com uma CDN. Rede Benefícios de uma CDN Compreendendo as compensações de CDN
      Envie apenas os dados que serão usados. Rede    
      Comprima dados para reduzir o tamanho. Rede Comprimir e extrair arquivos em .NET  
    Ao projetar para o usuário final Considere fornecer aos usuários visibilidade e controle sobre seu consumo de energia. Consumo de Eletricidade Moldagem de Demanda Design para o modo eco  
      Projete e teste sua aplicação para ser compatível com uma ampla variedade de dispositivos, especialmente dispositivos mais antigos. Carbono Incorporado Extensão da vida útil do dispositivo Testes de Compatibilidade  
    Ao selecionar uma linguagem de programação Considere a eficiência energética das linguagens. Consumo de Eletricidade Raciocínio sobre o consumo de energia de linguagens de programação, Eficiência Energética de Linguagens de Programação (PDF) Tomando decisões informadas sobre linguagens de programação

Recursos

Ferramentas

Projetos