A emergência climática não pode esperar. De acordo com a Organização Mundial da Saúde (OMS), atualmente, a taxa de mortalidade por exposição à poluição é de 6.7 milhões de pessoas por ano. Além disso, 99% da população mundial vive em lugares onde a poluição do ar excede os limites recomendados pela OMS.
Ìý
O efeito estufa consiste na emissão de gases que retêm o calor da Terra, aumentando sua temperatura, e permitindo a existência de vida no planeta. Contudo, o aumento excessivo na emissão de gases que causam o efeito estufa tem elevado a temperatura da Terra, implicando em consequências no clima.Ìý
Ìý
Considerando o impacto causado pelos humanos, o dióxido de carbono (CO2) é o principal responsável pelo efeito estufa. Isso acontece porque o CO2 é o gás causador do efeito estufa mais emitido, além de possuir um tempo mÃnimo de permanência no ambiente de 100 anos. Em vista dos impactos ambientais, existe um esforço mundial para reduzir a emissão de CO2.Ìý
Ìý
Neste artigo, discutiremos como a emissão de CO2 está relacionada ao uso insustentável de recursos daÌýcloud, além de melhorias de código e deÌýdesignÌýde arquitetura que podem reduzir o impacto ambiental causado pela tecnologia.
Cloud e Emissão de carbono
Ìý
Cloud computing já emite mais carbono que a indústria de aviação comercial, alcançando entre 2.5% e 3.7% da emissão global de gases causadores do efeito estufa. Os principais fatores de emissão de carbono emÌýCloud Computing ²õã´Ç:
Ìý
- Consumo de energia para rodar os servidores.
- Consumo de água para esfriar os servidores.
- O ciclo de vida dos equipamentos impacta na frequência de suas substituições
Ìý
Por isso, é importante pensar em como a escalabilidade precisa estar aliada à sustentabilidade das aplicações.
Green Cloud
Ìý
Para alcançar sustentabilidade emÌýCloud Computing, a Climatiq traz algumas pontos para se atentar:
- Quantidade deÌýCPU, rede, memória e armazenamento dos serviços.
- A taxa de utilização das máquinas noÌýdata center.
- A eficiência de resfriamento doÌýdata center, além do uso de eletricidade. Geralmente, ela é especificada como Power Usage Effectiveness (PUE), uma métrica usada para medir a eficiência energética doÌýdata center.
- O local onde estão osÌýdata centers.
Cloud Carbon Footprint (CCF)
Ìý
Essa ferramenta gratuita e de código aberto compara os dados de uso da maioria dos provedores de nuvem e calcula a energia estimada e a emissão de gás carbônico, apresentando estimativas de poluição geradas por uma aplicação.
Ìý
Com uso da ferramenta CCF, a ÷ÈÓ°Ö±²¥ apoiou sua parceira Holaluz alcançando redução na emissão de CO2 e nas métricas de consumo de energia. Como consequência, também houve uma redução de 3% de custos anual com infraestrutura.
Machine Learning e Emissão de carbono
Ìý
A computação de dados para inferência e treinamento de modelos também é um contribuidor relevante para a emissão de carbono em uma aplicação de Machine Learning (ML). Isso se dá porque o volume de processamento necessário, principalmente na etapa de inferência do modelo, é alto. A NVIDIA estima que, durante a etapa de inferência, uma rede neural emite cerca de 80-90% a mais de CO2 comparado à etapa de treinamento.
Ìý
De acordo com um artigo publicado pela Universidade do Massachusetts, Amherst, o treinamento de um modelo de Inteligência Artificial (AI) pode emitir cerca de 284 toneladas de dióxido de carbono, o que representa mais do que 5 carros ao longo de seu ciclo de uso (incluindo a fabricação).
Ìý
As otimizações empregadas nos recursos da cloud também tornam mais sustentável o modelo de ML. Por isso, é importante estar atento a como os recursos de hardware estão sendo utilizados pelos modelos, assim como seu código e decisões de design.
Código e Emissão de Carbono
Ìý
Para alcançar a sustentabilidade, além de repensar a nuvem, é preciso descer mais um nÃvel, e repensar o código que estamos escrevendo. Qualidade de código também é sobre sustentabilidade.
Ìý
Green Software Foundation e Green Software Patterns
Ìý
Green Software Foundation (GSF) é uma organização sem fins lucrativos com o objetivo de unir pessoas, práticas, ferramentas e padrões na construção deÌýsoftware sustentável. A ÷ÈÓ°Ö±²¥, ao lado de outras gigantes, faz parte do comitê diretor da GSF.
Ìý
Green Software Patterns (GFP) é um banco de dados de padrões de código revisado e curado pela GSF que destaca práticas sustentáveis de código. A seguir, vamos aprofundar em práticas destacadas no GSF e relacionadas ao mundo de dados.
Ìý
Cloud Computing e Machine Learning Sustentáveis
Ìý
A seguir, apresentamos algumas das recomendações sustentáveis para o desenvolvimento deÌýCloud ComputingÌýeÌýMachine LearningÌýoferecidas pelas pessoas especialistas da GSF. Elas estão divididas de acordo com a nossa visão de onde elas se encaixam no processo de desenvolvimento.
Otimização de Recursos
Ìý
- Remover recursos de armazenamento não utilizados, otimizando o uso deÌýhardware e portanto de energia.
- Equiparar os requisitos de utilização com servidores pré-configurados e os requisitos de utilização de máquinas virtuais (VMs). É melhor ter umaÌýVM em alta utilização do que duas rodando em baixa utilização.
- Minimizar o número total de ambientes de implantação. Para eficiência energética, é melhor ter menos recursos provisionados quando não estão sendo utilizados.
- Otimizar utilização de armazenamento. Duas unidades de armazenamento em baixa utilização consomem mais energia do que uma em alta utilização. Além disso, a capacidade não utilizada da unidade pode ser usada mais eficientemente para outra tarefa.
- Otimizar utilização média deÌýCPU. Para entender qual o nÃvel ótimo de recurso, é preciso compreender como o sistema reage a aumento de tráfego e escalabilidade. Do ponto de vista energético, otimização e reduzir a média deÌýCPU utilizada reduzem a energia necessária para suportar tráfego e tornam os requisitos de hardware necessários mais predizÃveis. Do ponto de vista de hardware, essa otimização e redução diminuem a quantidade de recursos necessários para suportar o tráfego.
- Configurar polÃticas de retenção de armazenamento deletando automaticamente recursos não utilizados.
- Diminuir tráfego de baixa prioridade reduzindo energia e recursos necessários para suportá-lo quando houverem picos.
- Otimizar o pico de utilização daÌýCPU. Quanto maior a variação de média e pico deÌýCPU utilizado, mais recursos precisam ser provisionados em modoÌýstand-by para absorver esses picos no tráfego. Para resolver esse problema, é preciso entender o comportamento de tráfego da aplicação. Alguns exemplos de como mitigar picos de uso deÌýCPU envolvem: adicionar camadas deÌýcache, reduzir a quantidade de dados transmitida e renderizada ou criar uma fila paraÌýrequests não urgentes.
- Escanear vulnerabilidades, evitando que atacantes ganhem domÃnio sobre recursos.
Otimização de Recursos da Cloud
Ìý
- Utilizar a região mais próxima dos usuários na hora de selecionar a região para a instância na nuvem, o que faz com que o pacote necessite percorrer menos distância (e, portanto, se gaste menos energia) para alcançar seu destino. Além disso, escolher servidores em regiões sustentáveis para o treinamento de modelos de ML/AI.
- Escalar fluxos de trabalho do KubernetesÌýWorkloads baseado em métricas relevantes.
- Configurar aplicações Kubernetes para reduzir o número deÌýpods quando não estão em uso.
- Alterar o horário de CronJobs do Kubernetes de acordo com a previsão de intensidade de emissão de carbono, encontrando o melhor horário para executar umÌýjob.
- Utilizar ferramentas e controles de segurança de rede nativa da nuvem que escalem sob demanda filtrando tráfego de entrada e saÃda na fonte para bloquear qualquer transmissão de dados não autorizada.
- Selecionar o tamanho adequado de instância para o treinamento de modelos de ML/AI, evitando subutilização de recursos.
Green Cloud
Ìý
- Encerrar Transport Layer Security (TLS) ao chegar noÌýgateway de borda utilizando menosÌýCPU.
- Comprimir dados durante a transmissão de forma a utilizar menos tráfego na rede.
- Otimizar o armazenamento e recursos necessários para um modelo de ML/AI. Aplicar estratégias como quantização e avaliação de otimização de modelos contra as métricas necessárias.
- Usar modelos de ML/AI mais eficientes em energia. Por exemplo, DistilBERT provê funcionalidades similares ao BERT, rodando 60% mais rápido e preservando 97% da performance do modelo BEST.Ìý
- Utilizar modelos pré-treinados e transferência de conhecimento para o desenvolvimento de modelos de ML/AI.
Design de Arquitetura
Ìý
- Utilizar aÌýcache para dados estáticos, como imagens ou músicas, de forma a reduzir a necessidade de buscar arquivos pela rede, utilizando menos energia.
- ImplementarÌýdesign stateless. Isto é, removerÌýservice state doÌýdesign para reduzir dados em memória e no disco, utilizando menos recursos deÌýhardware.
- Adotar arquitetura serverless garantindo o uso máximo dos recursos de hardware.
- Ajustar oÌýdesign de solução para entender a disponibilidade necessária. Caso osÌýservice downtimes sejam aceitáveis, não é necessário (nem sustentável) ter o serviço disponÃvel todo o tempo.
- Utilizar formatos eficientes para o desenvolvimento de modelos de ML/AI. Por exemplo, o formato Parquet ao invés de csv.
- Avaliar e rodar modelos de ML/AI na borda, baseado nos requisitos da aplicação, diminuindo o uso de rede para transferência de dados. Também é possÃvel realizar processamentos, como limpeza e geração de features, na borda, garantindo mais eficiência e menor latência.
- Selecionar um framework de ML/AI mais eficiente em energia. Tipicamente, frameworks construÃdos em C/C++ são mais eficientes do que aqueles construÃdos em outras linguagens de programação.
°ä´Ç²Ô³¦±ô³Ü²õã´Ç
Ìý
O planeta pede socorro, e temos poder nas mãos para tornar a tecnologia que construÃmos mais responsável. Por meio de práticas simples de código e otimização de recursos, podemos promover mais sustentabilidade e garantir o nosso próprio bem-estar.
Ìý
Como co-fundadora da Green Sofware Foundation e sendo tradicionalmente atenta ao impacto da tecnologia no mundo, a ÷ÈÓ°Ö±²¥ está investindo em como tornar a tecnologia que criamos mais sustentável e ajudar nossas clientes nessa jornada.
¸é±ð´Ú±ð°ùê²Ô³¦¾±²¹²õ
- ;Ìý;Ìý;Ìý;Ìý;Ìý;Ìý;Ìý;Ìý;Ìý
Aviso: As afirmações e opiniões expressas neste artigo são de responsabilidade de quem o assina, e não necessariamente refletem as posições da ÷ÈÓ°Ö±²¥.