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
- Princípios de Engenharia de Software Verde
- Fundação de Software Verde
- Microsoft Cloud para Sustentabilidade
- Módulo de Aprendizado: Engenharia de Software Sustentável
Ferramentas
- SDK Consciente de Carbono
- “Lista Incrível” de Software Verde
- Impacto de Emissões
- API de Intensidade de Carbono Azure GreenAI