DevOps Sustentável – Green Software e o poder do KubeGreen
Olá pessoal!
Tudo bem com vocês?
Hoje no blog da 4Linux, vamos falar sobre Green Software, Que é um conjunto de práticas e princípios que buscam diminuir o impacto ambiental de aplicações e infraestruturas digitais.
O que é Green Software?
Green Software é o conjunto de práticas e princípios que buscam diminuir o impacto ambiental de aplicações e infraestruturas digitais. Ele parte da ideia de que software também consome energia e recursos físicos, e que decisões técnicas ao longo do ciclo de vida — do design à operação — podem tornar esse consumo mais sustentável.
Em termos simples: software verde é software mais eficiente, consciente e sustentável.
Pilares do Green Software
- Eficiência energética
- Reduzir o uso de CPU, memória e rede.
- Escolher algoritmos e linguagens mais eficientes.
- Evitar redundâncias e desperdícios de processamento.
- Infraestrutura sustentável
- Rodar workloads em data centers que usam energia renovável.
- Usar cloud regions mais verdes (AWS, GCP e Azure já divulgam dados sobre isso).
- Adotar scheduling verde: processar tarefas pesadas quando há maior oferta de energia limpa.
- Observabilidade e métricas
- Monitorar consumo energético e emissões de CO₂.
- Utilizar padrões como o Software Carbon Intensity (SCI), da Green Software Foundation
- Design consciente
- Evitar transferências desnecessárias de dados (imagens pesadas, logs excessivos).
- Construir APIs mais enxutas.
- Aplicar princípios de Lean Software: entregar valor com o mínimo de desperdício.
Por que isso importa?
Segundo relatórios recentes, a indústria de TI já é responsável por mais de 2% das emissões globais de CO₂, número comparável à indústria da aviação. Com a expansão da IA e do edge computing, esse impacto tende a crescer.
Adotar práticas de Green Software não é só uma questão ambiental, mas também de eficiência operacional: menos energia e menos desperdício também significam menos custos de infraestrutura.
KubeGreen
O KubeGreen é um projeto open source que ajuda a tornar o uso de clusters Kubernetes mais eficiente e sustentável do ponto de vista energético. A ideia central é reduzir o consumo de recursos e energia em horários em que aplicações não estão em uso, algo alinhado ao movimento de Green Software.
Imagine que sua equipe tem um cluster Kubernetes de homologação que só é usado em horário comercial (9h–18h). O KubeGreen pode desligar automaticamente esses serviços fora do expediente e ligá-los novamente no início do dia seguinte.
Principais pontos do KubeGreen
- Escalonamento automático para zero: ele pode desligar (scale down to 0) Deployments, CronJobs e até HPA (Horizontal Pod Autoscaler) durante períodos de inatividade.
- Agendamento por horário: permite configurar intervalos de tempo em que workloads devem estar desligados ou ativos (por exemplo, desligar à noite e ligar pela manhã).
- Economia de recursos e energia: reduz custos em nuvem e também a pegada de carbono, já que VMs e nós deixam de rodar pods desnecessários.
Exemplos práticos no dia a dia
Vamos criar um cluster com o Kind.
kind create cluster --name kubegreen-demo
O KubeGreen tem um Helm chart oficial. Vamos instalar no namespace kubegreen-system:
## Instale o Cert-Manager
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.18.2/cert-manager.yaml
helm repo add kube-green https://kube-green.github.io/helm-charts/
helm repo update
kubectl create namespace kubegreen-system
helm install kube-green kube-green/kube-green --namespace kube-green --create-namespace
Vamos rodar um NGINX para simular uma aplicação qualquer:
kubectl create deployment nginx --image=nginx --replicas=2
kubectl expose deployment nginx --port=80 --type=ClusterIP
O SleepInfo é o recurso do KubeGreen que define quando desligar e religar pods. Exemplo: desligar às 19h e religar às 07h.
apiVersion: kube-green.com/v1alpha1
kind: SleepInfo
metadata:
name: nginx-sleep
namespace: default
spec:
sleepAt: "19:00"
weekdays: "Mon-Fri"
wakeUpAt: "07:00"
timeZone: "America/Sao_Paulo"
Aplicar o manifesto:
kubectl apply -f sleepinfo.yaml
Durante o horário definido como sleep, o KubeGreen vai escalar o Deployment para 0 réplicas. No horário de wake-up, ele volta automaticamente para as réplicas configuradas.
Você pode testar manualmente simulando o comportamento:
kubectl annotate deployment nginx kubegreen.dev/sleep=true
kubectl annotate deployment nginx kubegreen.dev/sleep-
kubectl get deployments.apps
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 0/0 0 0 6m41s
Conclusão
Green Software é mais do que uma tendência: é uma necessidade estratégica. Times que adotam essa mentalidade não apenas contribuem para um futuro mais sustentável, mas também constroem aplicações mais eficientes, econômicas e resilientes.
Um exemplo claro é o KubeGreen, que permite “hibernar” workloads no Kubernetes fora do horário de uso, reduzindo consumo de energia e custos de cloud sem impactar a experiência dos usuários.
No fim das contas, pensar em software verde é pensar em software inteligente — e ferramentas como o KubeGreen mostram que sustentabilidade e eficiência podem andar lado a lado.
Então é isso galera! Nos veremos no proximo post. Compartilhe em suas redes sociais!
Tmj!
About author
Você pode gostar também
Acelere seus algoritmos de Machine Learning com CUDA no Linux
Se você deseja trabalhar com algoritmos de Machine Learning, provavelmente precisará usar processamento paralelo para acelerar os resultados dos seus algoritmos. Muitos frameworks como por exemplo, o TensorFlow, já possuem
Por que você deve investir tempo estudando Python
Por que você deve investir tempo estudando Python No mundo cada vez maior das linguagens de programação, uma delas se destaca como uma ferramenta versátil e poderosa que conquistou os
Descubra como explorar vulnerabilidades em diferentes plataformas com nosso guia passo a passo
Na continuação dos artigos da série, vamos recriar os passos utilizados para se descobrir uma vulnerabilidade real (CVE-2010-0083) encontrada pelo autor, bem como definir a forma de explorar tal vulnerabilidade.





