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
Descubra o Jitsi: a solução completa para videoconferências
Logo do Jitsi Introdução Durante o momento que vivemos, basicamente todas nossas interações se tornaram virtuais, com o home office sendo a alternativa primaria para muitas empresas, tivemos um súbito
Descubra como otimizar seu cluster Kubernetes com o plugin de rede Calico
Olá mundo DevOps! Nesse post irei mostrar como se comporta um cluster Kubernetes quando trabalhamos com nós de trabalho divididos em várias instâncias cloud como Amazon Web Services (AWS), Google
O agente de DevOps que nunca vê as suas credenciais
Todo mundo já entendeu que dá para pedir Terraform para um LLM. O problema é o acesso: para fazer algo útil, o agente precisa da cloud, do cluster, do state,





