Vamos nos tornar os arquitetos de um mundo mais limpo e verde
A nuvem tem um
Ao mudar o consumo de eletricidade para horários e locais onde a eletricidade é mais limpa, a programação pode mitigar as mudanças climáticas e garantir um futuro mais limpo e seguro para nós e para as gerações futuras. Isso é Carbon Aware Computing e tem o potencial de tornar o desenvolvimento de software uma força crítica na mitigação das mudanças climáticas, ajudando-nos a escolher e otimizar a energia livre de carbono com um código consciente do clima.
Não há muitos exemplos de computação com consciência de carbono por aí - e é por isso que eventos como __ Carbon Hack 22 __são significativos no crowdsourcing de novas ideias e na aceleração da inovação na programação de software para criar aplicativos que sejam conscientes do clima e responsivos à energia .
A Green Software Foundation __ discute __a consciência do carbono como a ideia de fazer mais quando mais energia vem de fontes “limpas” de baixo carbono e fazer menos quando mais energia vem de fontes “sujas” de alto carbono. Como desenvolvedores, podemos fazer isso medindo e respondendo à intensidade de carbono da eletricidade (gCO2/kWh), o que pode ajudar a criar códigos para reduzir a quantidade de emissões de carbono geradas pelo software.
Existem basicamente 3 abordagens:
2. Time Shifting: Executar nosso software em um horário mais limpo; quando a energia limpa está sendo gerada pelo vento, água ou energia solar.
Construir aplicativos com reconhecimento de carbono é desafiador, apesar das várias fontes de dados, em parte porque algumas dessas fontes são difíceis de navegar. o
Se você visitar
Podemos conectá-lo a APIs como
Time Shifting: Qual é o melhor horário para executar meu software?
Ao mudar de horário, você pode usar o terminal /emissions/bylocations/best API, fornecendo a localização de seu interesse no campo de localização . Atualmente, os nomes de local são mapeados para nomes de região do Azure. Você também precisa fornecer a janela de tempo durante a qual poderá mover o trabalho. A hora de início precisa ser inserida no campo hora e a hora final no campo toTime . As datas fornecidas devem estar no formato ISO 8601.
Você pode solicitar dados diretamente da API por meio de uma solicitação Curl da seguinte forma:
curl -X 'GET' \ 'https://carbon-aware-api.azurewebsites.net/emissions/bylocations/best?location=uksouth&time=2022-10-08T00%3A00%2B01%3A00&toTime=2022-10-08T23%3A59%2B01%3A00' \ -H 'accept: application/json'
Ou mesmo apenas uma solicitação HTTP GET normal no navegador .
Como saída, você receberá uma matriz de objetos JSON, com o nome da região WattTime para o local, hora dos dados, classificação de intensidade de carbono e duração para a qual esses dados são válidos (WattTime fornece dados em intervalos de 5 minutos). Esses dados serão as classificações de carbono mais baixas para o local solicitado. Esta consulta analisa os dados de uma única janela de 24 horas, portanto, para obter um resultado preciso, você pode solicitar dados de vários dias (por exemplo, observando o ponto de extremidade /emissions/bylocations ) e verifique se não é um queda de tempo na intensidade do carbono!
[ { "location": "UK", "time": "2022-10-08T00:45:00+00:00", "rating": 351.98767912, "duration": "00:05:00" }, { "location": "UK", "time": "2022-10-08T00:40:00+00:00", "rating": 351.98767912, "duration": "00:05:00" }, { "location": "UK", "time": "2022-10-08T00:35:00+00:00", "rating": 351.98767912, "duration": "00:05:00" } ]
Ao mudar de local, você pode usar o mesmo ponto de extremidade anterior ( /emissions/bylocations/best ), mas, neste momento, forneça vários locais nos quais está interessado e uma única vez durante a qual está procurando. A consulta de exemplo abaixo tem vários locais fornecidos, levando em consideração uksouth, eastus e francecentral . Você pode fornecer a ele uma janela de tempo (semelhante ao time shifting) ou um único ponto de tempo, preenchendo os campos time e toTime .
Você pode solicitar dados diretamente da API por meio de uma solicitação Curl da seguinte forma:
curl -X 'GET' \ 'https://carbon-aware-api.azurewebsites.net/emissions/bylocations/best?location=uksouth&location=eastus&location=francecentral&time=2022-10-08T09%3A00%2B01%3A00' \ -H 'accept: application/json'
Ou mesmo apenas uma solicitação HTTP GET normal no navegador .
Como saída, você receberá o mesmo formato de resposta, com locais com a menor intensidade de carbono, juntamente com o tempo para essa leitura, o valor real da intensidade de carbono e a duração pela qual esses dados são válidos.
[ { "location": "FR", "time": "2022-10-08T08:00:00+00:00", "rating": 242.21832558, "duration": "00:05:00" } ]
Modelagem da demanda: como ajusto o comportamento do usuário?
Para implementar a modelagem de demanda, use uma combinação das consultas acima e outras para determinar a melhor forma de ajustar o comportamento de seu aplicativo.
Imagine se você ainda realizasse aqueles trabalhos de treinamento de ML devoradores de energia ... mas apenas quando a rede elétrica que os alimentava funcionava com fontes renováveis. Imagine se sua máquina de lavar funcionasse apenas no momento em que sua rede local fosse totalmente movida a energia eólica. Imagine que você deseja executar seu pipeline de CI simultaneamente todos os dias, mas garante que ele seja executado apenas em uma zona de disponibilidade (país) atualmente alimentada por energia verde. Em todos esses casos, você ainda consumiria tanta energia quanto antes, mas geraria muito menos emissões de gases de efeito estufa.
Esteja você pesquisando a API do Carbon Aware, executando-a em um contêiner local ou como uma ferramenta de linha de comando (CLI), você pode usar os padrões de desenvolvimento orientado a eventos para conectar eventos em seu aplicativo a acionadores na rede elétrica. Sua própria grade local ou uma mais verde e distante.
Dependendo de seus casos de uso, você pode permitir que todo um dispositivo, tarefa de computação ou aplicativo seja executado exclusivamente com energia renovável, seja executando apenas quando a rede local estiver verde ou funcionando apenas em zonas atualmente alimentadas por energia verde.
Em vez de ser mecânicos que mantêm o motor das emissões digitais funcionando, sejamos os engenheiros que ajudam a desacelerá-lo e talvez até contribuir para a reconstrução.
A computação com consciência de carbono é a próxima fronteira da engenharia de software sustentável. Alguns dos tomadores de decisão mais influentes do setor estão interessados em reduzir as emissões de carbono do software e mostrar que, emprestando seus recursos e contribuindo com prêmios em dinheiro significativos para
Agora também é tarefa dos engenheiros de software construir soluções que causem menos danos às pessoas e ao planeta. A computação com consciência de carbono é como as gerações atuais e futuras de engenheiros de software podem ajudar a atingir esse objetivo.
Escrito por Asim Hussain, Diretor Executivo e Presidente, Green Software Foundation