Translate

Mostrar mensagens com a etiqueta Cloud Native. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Cloud Native. Mostrar todas as mensagens

terça-feira, 24 de março de 2026

🚀 O Mainframe Não Morreu — Ele Aprendeu Docker, Kubernetes e Cloud Native (E Está Rindo da Nuvem)

 

Bellacosa Mainframe fala quando o Mainframe conquistou a Cloud

🚀 O Mainframe Não Morreu — Ele Aprendeu Docker, Kubernetes e Cloud Native (E Está Rindo da Nuvem)

Um guia Bellacosa-style para o Padawan que acha que Cloud Native nasceu ontem.


☕ Prefácio do Mestre

Jovem Padawan… 🧠

Se você acredita que:

“Cloud Native substituiu o Mainframe”

… então prepare-se para um choque digno de IPL sem aviso.

A verdade é outra:

🔥 O Mainframe não foi substituído — ele evoluiu.
🔥 E agora roda containers, Kubernetes e microsserviços dentro dele.

Sim. Dentro do z/OS. Sem sair do prédio. Sem drama. Sem hype.


🏢 Antes da Nuvem Existia… o Datacenter Jedi

Muito antes de “Cloud” virar buzzword, o mainframe já fazia:

✔ Multi-tenant
✔ Virtualização
✔ Alta disponibilidade
✔ Workload management
✔ Segurança absurda
✔ Escala vertical e horizontal
✔ Processamento transacional massivo

O nome disso era:

👉 IBM Z

Curiosidade nível Easter Egg 🥚
O conceito de virtualização robusta já existia no VM/370 em 1972.

Sim… antes do seu PC existir.


📦 Containers — A Caixa Mágica da Portabilidade

Um container é basicamente:

👉 Uma aplicação empacotada com tudo que precisa para rodar.

Sem instalar dependências manualmente. Sem “na minha máquina funciona”.

🧠 Analogia Bellacosa™

  • VM = apartamento completo
  • Container = quarto pronto dentro do prédio

⚖️ Containers vs Máquinas Virtuais

CaracterísticaVMContainer
SO próprio
PesoAltoBaixo
InicializaçãoMinutosSegundos
EscalabilidadeMédiaAlta
Kernel compartilhado

👉 Containers virtualizam o SO.
👉 VMs virtualizam o hardware.


🐳 Docker — O Cara que Popularizou Tudo

Docker transformou containers em padrão de mercado (2013).

🔄 Cadeia essencial

Dockerfile → Image → Container

📄 Dockerfile = receita

Exemplo mínimo:

FROM ubuntu:22.04
RUN apt-get update
CMD ["echo", "Olá, Padawan"]

Construa a imagem:

docker build -t hello-padawan .

Execute:

docker run hello-padawan

Pronto. Você invocou um container.


🧩 Microservices — Dividir para Escalar

Aplicações modernas não são um bloco único.

São Lego. 🧱

Exemplo: E-commerce moderno

  • Serviço de usuários
  • Catálogo
  • Carrinho
  • Pagamento
  • Entrega
  • Recomendações

Cada um:

✔ Escala independente
✔ Atualiza sem parar o sistema
✔ Pode usar tecnologia diferente


☸️ Kubernetes — O Maestro dos Containers

Gerenciar poucos containers é fácil.

Gerenciar milhares? Boa sorte sem automação.

Kubernetes resolve isso.

O que ele faz automaticamente

✔ Deploy
✔ Escala
✔ Balanceamento
✔ Autorreparo
✔ Atualizações sem downtime
✔ Service discovery


🧠 Componentes chave

Control Plane = cérebro

  • API Server
  • Scheduler
  • Controllers
  • etcd (memória do cluster)

Worker Nodes = músculos

  • Pods
  • Containers
  • Kubelet
  • Networking

💾 etcd — A Memória do Cluster

Sem etcd, Kubernetes sofre amnésia total.

Ele guarda:

  • Configurações
  • Estado desejado
  • Deployments
  • Secrets
  • Serviços

👉 É o “SYS1.PARMLIB” da nuvem. 😉


🟥 OpenShift — Kubernetes com Gravata Corporativa

OpenShift = Kubernetes + ferramentas empresariais + segurança integrada.

Pode rodar em:

  • Cloud pública
  • On-premises
  • Power Systems
  • 💥 IBM Z Mainframe

🏦 zCX — Containers Dentro do z/OS

Agora vem a parte que explode cérebros.

🔥 z/OS Container Extensions (zCX)

Permite rodar:

✔ Linux
✔ Docker
✔ Aplicações modernas
✔ Microsserviços

👉 Dentro do z/OS
👉 Sem LPAR Linux dedicada


💾 Storage? VSAM!

Os “discos” Linux são:

👉 VSAM Linear Data Sets (LDS)

Sim. VSAM rodando containers modernos.

Se isso não é cyberpunk corporativo, não sei o que é.


🧰 Provisionamento zCX — Passo a passo simplificado

1️⃣ z/OS 2.4 ou superior
2️⃣ z/OSMF
3️⃣ Alocar VSAM LDS
4️⃣ Provisionar instância
5️⃣ Subir Docker
6️⃣ Rodar containers


☁️ Cloud Native — Não é “rodar na nuvem”

É ser construído para ambientes dinâmicos.

Características

✔ Microservices
✔ Containers
✔ Automação
✔ DevOps
✔ Escala horizontal
✔ Infraestrutura imutável


🧊 Immutable Infrastructure — Nada de “mexer em produção”

Mudou algo?

👉 Crie nova versão
👉 Implante
👉 Substitua a antiga

Rollback = voltar para versão anterior.

Muito mais seguro que “editar servidor vivo”.


🏗️ Monolito vs Cloud Native

MonolitoCloud Native
Código únicoMicrosserviços
Deploy arriscadoDeploy contínuo
Escala verticalEscala horizontal
Forte acoplamentoBaixo acoplamento
Infra fixaInfra dinâmica

🔁 DevOps — A Mudança Cultural

Não é ferramenta.

É mentalidade.

👉 Dev + Ops trabalhando juntos
👉 Automação do ciclo inteiro
👉 Feedback contínuo

Ferramentas típicas:

  • GitHub / GitLab
  • Jenkins
  • Ansible
  • Selenium
  • Splunk
  • Nagios

🧠 Easter Egg Mainframe

Sabe quem já fazia algo parecido com DevOps?

👉 Operações de mainframe com JCL + automação + scheduling + change management.

Só não tinha camiseta escrita “DevOps”.


🌟 A Verdade Incômoda

Cloud Native não matou o Mainframe.

🔥 Ele absorveu os conceitos.
🔥 E o Mainframe absorveu Cloud Native.

Hoje vemos:

👉 APIs modernas consumindo CICS
👉 Containers próximos ao DB2
👉 Kubernetes integrando sistemas legados
👉 Hybrid Cloud dominando o mercado


🏁 Conclusão do Mestre

Padawan…

O futuro não é:

❌ Mainframe ou Cloud

O futuro é:

🔥 Mainframe + Cloud + Open Source + Automação

Quem entende isso se torna arquiteto.

Quem ignora… vira legado.


☕ Desafio Final

Se você chegou até aqui, responda mentalmente:

Seu sistema está pronto para rodar em qualquer lugar…
ou está preso a um único ambiente?

Se doeu… é porque precisa evoluir. 😉


segunda-feira, 23 de março de 2026

☁️💥 Do JCL ao Kubernetes: Como um Padawan Pode Dominar a Nuvem Sem Virar Vapor

 

Bellacosa Mainframe do JCL ao Kubernetes

☁️💥 Do JCL ao Kubernetes: Como um Padawan Pode Dominar a Nuvem Sem Virar Vapor

“Na galáxia da TI, alguns pilotam X-Wings… outros ainda estão aprendendo a ligar o hyperdrive.”

Se você é um Padawan da Cloud — ou até um Jedi do mainframe explorando novos planetas — este artigo é para você. Vamos atravessar juntos o caminho do zero até arquiteto, com exemplos reais, curiosidades, easter eggs e aquela pitada Bellacosa de conhecimento que não se aprende em slide corporativo. ☕🖥️☁️


🧠 Episódio I — O Despertar da Nuvem

Antes de containers, Kubernetes ou nomes complicados…

👉 Cloud é só alguém rodando computadores para você — em escala absurda.

No mundo on-premises:

  • Você compra hardware 💸
  • Instala tudo 🧱
  • Mantém tudo 🔧
  • Culpa o ar-condicionado quando cai 🧊

Na cloud:

  • Você aluga capacidade
  • Paga pelo uso
  • Escala sob demanda

💡 Curiosidade mainframe:
O modelo pay-per-use da cloud lembra MUITO o velho conceito de capacity on demand dos grandes sistemas.


🏗️ Episódio II — IaaS, PaaS, SaaS… ou “Quem Faz o Trabalho?”

Imagine que você quer comer pizza 🍕

  • 🧱 On-Prem → você planta o trigo, cria a vaca e assa
  • 🏗️ IaaS → você assa
  • ⚙️ PaaS → você só coloca o recheio
  • 🍕 SaaS → entregam pronta

👉 Quanto mais alto na pilha, menos trabalho (e menos controle).


🌍 Episódio III — Onde Mora a Nuvem?

Modelos de deployment:

  • ☁️ Public — infraestrutura compartilhada
  • 🏢 Private — exclusiva
  • 🌗 Hybrid — mistura dos dois
  • 🌍 Multicloud — vários provedores
  • 🤝 Community — organizações com interesses comuns

💡 Exemplo real:
Banco com dados críticos on-prem + analytics na nuvem = Hybrid.


📦 Episódio IV — Storage: O Cofre dos Dados

Três tipos dominam a galáxia:

🧱 Block Storage

Disco bruto — ideal para bancos.

👉 Pense: DASD virtual.


📂 File Storage

Pastas e arquivos hierárquicos.

👉 Tipo um compartilhamento NFS/SMB.


🎬 Object Storage

Para dados não estruturados:

  • Vídeos
  • Fotos
  • Logs
  • Backups

💡 Easter egg:
Object storage não tem “diretórios de verdade”. Aquela pastinha é só uma ilusão… tipo o Millennium Falcon parado no espaço.


🐳 Episódio V — Containers: O Segredo da Cloud Moderna

VMs são como apartamentos completos 🏢
Containers são kitnets minimalistas 🐳

Containers:

✔️ Mais leves
✔️ Iniciam rápido
✔️ Compartilham o kernel
✔️ Escalam fácil


🧾 Dockerfile — A Receita do Container

FROM ubuntu
COPY app /app
CMD ["./app"]

👉 Isso vira uma imagem → que vira container → que roda seu app.

💡 Comentário Bellacosa:
Se JCL descreve job steps… o Dockerfile descreve build steps.


☸️ Episódio VI — Kubernetes: O Maestro dos Containers

Se Docker cria containers, Kubernetes governa exércitos deles.

Principais conceitos:

  • Pod → unidade mínima
  • Node → máquina
  • Cluster → várias máquinas
  • Service → endereço fixo
  • Deployment → controla versões

🗄️ etcd — O Cérebro do Cluster

👉 Banco de dados que guarda TODO o estado.

Sem ele:

Kubernetes vira um amnésico digital.


⚡ Episódio VII — Serverless: Código Sem Servidor?

Sim e não.

Você não vê o servidor.

FaaS roda código:

  • Sob demanda
  • Escala automática
  • Paga só pelo uso

💡 Ideal para eventos, APIs simples e automações.


🔐 Episódio VIII — Segurança e Sensibilidade

Nem tudo deve ir para public cloud.

Private ou hybrid são comuns quando há:

  • Dados financeiros 🏦
  • Dados médicos 🏥
  • Segredos governamentais 🏛️

🤖 Episódio IX — Infraestrutura Imutável

Antigamente:

👉 Atualize o servidor.

Hoje:

👉 Destrua e recrie.

Isso reduz inconsistências e bugs misteriosos.

💡 Analogia:
Trocar a nave inteira em vez de consertar no espaço.


🧬 Episódio X — Cloud-Native vs Monólito

🧱 Monólito

Tudo num bloco só.

Vantagem: simples.
Desvantagem: difícil de escalar.


☁️ Cloud-Native

  • Microservices
  • APIs
  • Containers
  • Automação
  • Observabilidade

👉 Projetado para falhar e continuar funcionando.


🏆 Episódio XI — O Caminho do Arquiteto

Um arquiteto cloud não escolhe tecnologia… escolhe compromissos:

⚖️ Custo × Performance × Segurança × Resiliência

Princípios Jedi:

  • 🛡️ Design for failure
  • 📈 Scale out
  • 🔗 Loose coupling
  • 🤖 Automação
  • 💰 Otimização de custos

☕ Easter Egg Mainframe Edition

Cloud parece nova… mas várias ideias nasceram no mainframe:

  • Time sharing → multi-tenant
  • Capacity on demand → elasticidade
  • Virtualização → VMs
  • Alta disponibilidade → Sysplex

👉 A nuvem não reinventou a roda. Só colocou foguetes nela.


🚀 Missão Final para o Padawan

Se você quer evoluir de dev para arquiteto:

1️⃣ Entenda fundamentos
2️⃣ Aprenda containers
3️⃣ Domine Kubernetes
4️⃣ Explore serverless
5️⃣ Pense em arquitetura, não em código


🌟 Conclusão — Que a Força da Nuvem Esteja com Você

Cloud não é só tecnologia.

É uma nova forma de operar sistemas em escala planetária.

Você não precisa saber tudo.
Precisa saber como as peças se encaixam.

“Um Padawan aprende ferramentas.
Um Jedi entende sistemas.”

 

terça-feira, 19 de novembro de 2024

Kubernetes sem Mistérios : O Guia Definitivo do Programador COBOL Padawan para Entender a Plataforma que Virou o "z/OS da Nuvem"

 

Bellacosa Mainframe e o kubernetes sem misterios

☕ Um Café no Bellacosa Mainframe

Kubernetes sem Mistérios

O Guia Definitivo do Programador COBOL Padawan para Entender a Plataforma que Virou o "z/OS da Nuvem"

"A tecnologia muda. Os princípios permanecem."

— Adaptado da filosofia vulcana do Sr. Spock


Introdução — Quando o mundo saiu do CPD

Se você começou sua carreira em um CPD tradicional, talvez tenha ouvido frases como:

  • "O programa está em produção."

  • "Vamos fazer o deploy no fim de semana."

  • "Precisamos subir outra LPAR."

  • "Chama o operador."

  • "O Sysprog já autorizou."

Durante décadas, essa foi a realidade do desenvolvimento corporativo.

Enquanto isso, um novo mundo surgia.

Primeiro vieram os servidores Linux.

Depois as máquinas virtuais.

Depois os containers.

E finalmente apareceu uma tecnologia que mudou completamente a forma de executar aplicações:

Kubernetes.

Hoje praticamente toda grande empresa utiliza Kubernetes em algum lugar.

Google.

Amazon.

Netflix.

Spotify.

Nubank.

Mercado Livre.

IBM.

Red Hat.

Microsoft.

Oracle.

SAP.

Mas existe uma curiosidade interessante.

Embora muitos pensem que Kubernetes representa uma revolução completa, para quem trabalha há anos com IBM Z, muita coisa parece incrivelmente familiar.

Na verdade, boa parte dos conceitos que hoje são chamados de "Cloud Native" já existiam no universo mainframe, apenas com nomes diferentes.

Hoje vamos fazer exatamente essa viagem.

Pegue sua caneca de café.

Abra o ISPF...

...ou o VS Code.

E vamos descobrir por que Kubernetes talvez seja o primo moderno do z/OS.


O que é Kubernetes?

A resposta rápida costuma ser:

"É um orquestrador de containers."

Correto.

Mas extremamente incompleto.

Uma definição muito melhor seria:

Kubernetes é um Sistema Operacional Distribuído capaz de administrar milhares de aplicações executando simultaneamente em centenas ou milhares de servidores.

Perceba a palavra importante:

administrar.

Ele não executa apenas containers.

Ele administra:

  • disponibilidade

  • escalabilidade

  • armazenamento

  • rede

  • segurança

  • monitoramento

  • atualização

  • recuperação

  • balanceamento

  • automação

Ou seja...

Ele faz exatamente aquilo que o z/OS faz há décadas.


A evolução da infraestrutura

Vamos visualizar essa evolução.

Era 1 — Servidor físico

Hardware

↓

Sistema Operacional

↓

Aplicação

Muito simples.

Muito limitado.


Era 2 — Virtualização

Servidor

↓

VMware

↓

Máquinas Virtuais

↓

Aplicações

Agora era possível executar diversos servidores no mesmo hardware.


Era 3 — Docker

Em vez de criar máquinas completas...

Criamos containers.

Muito mais leves.

Muito mais rápidos.


Era 4 — Kubernetes

Agora imagine:

50 servidores

↓

20.000 containers

↓

5.000 aplicações

↓

Tudo funcionando sozinho.

É exatamente isso que Kubernetes faz.


Easter Egg nº 1 ☕

Se o Docker é como um apartamento...

O Kubernetes é o síndico.

Ele decide:

  • onde cada morador ficará

  • quem troca de prédio

  • quem recebe visitas

  • quem ganha mais espaço

  • quem precisa sair

O container apenas mora.

Quem administra é o Kubernetes.


O verdadeiro problema

Imagine uma empresa moderna.

Ela possui:

  • 600 microsserviços

  • 1.200 APIs

  • 300 bancos

  • milhares de usuários

Agora imagine que um servidor falha.

Quem:

  • percebe?

  • reinicia?

  • move aplicações?

  • redistribui carga?

  • atualiza DNS?

  • mantém disponibilidade?

Fazer isso manualmente seria impossível.

Foi exatamente para isso que Kubernetes nasceu.


Cluster — O universo inteiro

O Cluster representa todo o ambiente Kubernetes.

Pode possuir:

10 servidores

100 servidores

1.000 servidores

10.000 servidores

Tudo pertence ao mesmo ambiente.

No IBM Z...

Pense em um grande Sysplex.


Node — O servidor

Cada servidor chama-se Node.

Pode ser:

  • físico

  • virtual

  • cloud

Analogia:

No mainframe seria parecido com uma LPAR.

Cada Node executa dezenas ou centenas de Pods.


Pod — A menor unidade

Aqui existe uma confusão comum.

Muitos acreditam que Kubernetes administra containers.

Na verdade...

Ele administra Pods.

Um Pod pode conter:

Container principal

+

Container Sidecar

+

Volumes

+

Rede

Exemplo:

Aplicação Java

+

Agente OpenTelemetry

+

Coletor de Logs

Tudo no mesmo Pod.


Deployment

Imagine dizer ao Kubernetes:

Quero exatamente

5 Pods.

Ele responde:

"Sem problemas."

Se um morrer...

Outro nasce imediatamente.

Sem operador.

Sem intervenção.

Sem JCL.

Sem abrir chamado.


ReplicaSet

ReplicaSet é o guarda-costas do Deployment.

Sua única missão é garantir que o número correto de Pods esteja sempre disponível.

Se deveria haver:

8 Pods

mas existem apenas:

7

Ele cria automaticamente o oitavo.


Service

Os Pods vivem pouco.

Eles nascem.

Morrem.

Mudam de IP.

Isso seria um pesadelo para aplicações.

Então surge o Service.

Ele fornece um endereço permanente.

db-service

api-service

payment-service

Não importa onde o Pod esteja.

O nome continua igual.


Control Plane — O cérebro

Se o Cluster fosse um corpo humano...

O Control Plane seria o cérebro.

Ele contém diversos componentes.


API Server

Tudo passa por ele.

Quando digitamos:

kubectl apply

Na realidade estamos enviando chamadas REST para o API Server.

Ele decide:

  • aceitar

  • validar

  • armazenar


etcd

Este talvez seja o componente mais importante.

O etcd é um banco chave-valor extremamente rápido.

Ele guarda:

  • Pods

  • Nodes

  • ConfigMaps

  • Secrets

  • Deployments

  • Namespaces

  • Services

Em outras palavras...

Guarda o estado inteiro do Cluster.

Perder o etcd equivale a perder o "catálogo mestre" do ambiente. Por isso, backup e alta disponibilidade do etcd são fundamentais.


Scheduler

Imagine um aeroporto.

O controlador decide em qual pista cada avião pousará.

O Scheduler faz exatamente isso.

Ele escolhe:

  • qual Node possui CPU

  • qual possui memória

  • qual atende afinidade

  • qual respeita políticas


Controller Manager

Existe um conceito muito elegante chamado:

Desired State

Estado desejado.

Você informa:

Desejo:

10 Pods.

O Controller verifica continuamente.

Encontrou apenas 9?

Cria outro.

Encontrou 12?

Remove dois.

Tudo automaticamente.


Kubelet

É o agente instalado em cada servidor.

Ele conversa com o Control Plane.

Recebe ordens.

Executa containers.

Monitora saúde.

É semelhante ao operador residente daquele Node.


kubectl — O TSO do Kubernetes

Quem vem do z/OS rapidamente faz essa associação.

No mainframe:

TSO

ISPF

SDSF

No Kubernetes:

kubectl

Exemplos:

kubectl get pods

kubectl logs

kubectl exec

kubectl describe

kubectl apply

kubectl delete

É praticamente o console administrativo do Cluster.


Operators — O DBA automático

Imagine um DBA que nunca dorme.

Nunca esquece um backup.

Nunca esquece RUNSTATS.

Nunca esquece REORG.

É exatamente isso que um Operator faz.

Ele conhece profundamente determinada aplicação.

Exemplo:

Operator do PostgreSQL.

Ele sabe:

  • instalar

  • criar réplicas

  • atualizar

  • restaurar

  • monitorar

  • recuperar falhas

Automaticamente.


Escalabilidade automática

Aqui Kubernetes impressiona.

Horizontal Pod Autoscaler

CPU chegou a:

90%

Resultado:

Cria mais Pods.

Quando a carga diminui...

Remove Pods.

Tudo sem intervenção humana.


Vertical Pod Autoscaler

Em vez de criar novos Pods...

Ele aumenta memória.

512 MB

↓

2 GB

Cluster Autoscaler

Imagine que todos os servidores ficaram lotados.

Na Cloud...

Kubernetes solicita automaticamente novos servidores.

Minutos depois...

O Cluster cresceu sozinho.


Stateful Applications

Nem tudo pode ser descartado.

Banco de dados possui memória.

Histórico.

Arquivos.

Volumes.

Para isso existe:

StatefulSet

Mantém identidade.

Cada Pod possui:

  • nome fixo

  • armazenamento fixo

  • ordem previsível

Ideal para:

  • PostgreSQL

  • MongoDB

  • Kafka

  • Elasticsearch

  • Redis Cluster


Persistent Volume

Representa o disco permanente.

Mesmo que o Pod desapareça...

Os dados continuam lá.


Persistent Volume Claim

É um pedido.

A aplicação diz:

"Preciso de 100 GB SSD."

O Kubernetes procura um volume compatível e faz a associação.


CSI

Container Storage Interface.

É uma interface padronizada para integrar armazenamento.

Suporta soluções como:

  • IBM FlashSystem

  • IBM Storage Scale

  • NetApp

  • Dell

  • AWS EBS

  • Azure Disk

  • Google Persistent Disk


Networking — O assunto que mais assusta

Todo Pod recebe seu próprio endereço IP.

Isso elimina diversas limitações antigas.


DNS

Cada Service ganha um nome.

orders.default.svc.cluster.local

A aplicação usa nomes, não IPs.


kube-proxy

Encaminha tráfego para os Pods corretos.


CNI

Container Network Interface.

É o "driver de rede" do Cluster.

Exemplos:

  • Calico

  • Cilium

  • Flannel

  • OVN-Kubernetes


Network Policies

Funcionam como firewalls internos.

Você pode permitir, por exemplo:

Frontend

↓

Backend

↓

Banco

Enquanto bloqueia qualquer acesso direto do Frontend ao banco.


Service Mesh

Imagine um "corredor inteligente" entre microsserviços.

Ferramentas como Istio ou Linkerd oferecem:

  • mTLS

  • retries automáticos

  • circuit breaker

  • roteamento avançado

  • telemetria

Sem alterar o código da aplicação.


Helm — O instalador do Kubernetes

Helm é frequentemente comparado a um gerenciador de pacotes.

Com um único comando você instala aplicações completas.

helm install grafana

Pronto.

Grafana inteiro.

Com Deployments.

Services.

Volumes.

Secrets.

Tudo configurado.


Kustomize

Enquanto Helm distribui aplicações...

Kustomize adapta configurações para ambientes diferentes.

DEV.

QA.

Homologação.

Produção.

Sem duplicar arquivos.


GitOps

Talvez uma das maiores revoluções dos últimos anos.

O Git deixa de ser apenas um repositório de código.

Ele passa a representar o estado oficial da infraestrutura.

Fluxo:

Git

↓

Argo CD ou Flux

↓

Kubernetes

↓

Deploy automático

Mudou o repositório?

O Cluster converge automaticamente para a nova configuração.


Estratégias modernas de Deploy

Rolling Update

Atualiza gradualmente.

Sem indisponibilidade.


Blue-Green

Mantém duas versões completas.

Depois troca o tráfego de uma só vez.


Canary

Começa pequeno.

1%

↓

5%

↓

10%

↓

25%

↓

50%

↓

100%

Se algo der errado...

Basta interromper.


Segurança

Assim como RACF é essencial no z/OS...

Segurança também é indispensável no Kubernetes.

Principais recursos:

  • RBAC

  • IAM

  • Security Context

  • Secrets

  • Criptografia

  • Políticas de rede

  • Admission Controllers

A recomendação atual é seguir o princípio do menor privilégio: conceder apenas as permissões estritamente necessárias para cada usuário, serviço ou aplicação.


Observabilidade

Não basta executar aplicações.

É preciso enxergar o que está acontecendo.

Ferramentas comuns:

  • Prometheus

  • Grafana

  • OpenTelemetry

  • Loki

  • Jaeger

  • Alertmanager

Elas mostram:

  • consumo de CPU

  • memória

  • latência

  • erros

  • logs

  • traces distribuídos

  • eventos do cluster

No mundo IBM Z, essa função lembra o papel conjunto de RMF, SMF, OMEGAMON e ferramentas de automação, cada uma especializada em um aspecto da operação.


Comparando Kubernetes com o Mainframe

KubernetesIBM Z
ClusterSysplex
NodeLPAR
PodUnidade de execução isolada (analogia funcional a um address space para fins didáticos)
ServiceVIPA / Endereço lógico
SchedulerWLM
RBACRACF
GitOpsPipeline DBB/Jenkins/ISPW (conceitualmente)
Persistent VolumeDASD
CSICamada de integração com armazenamento
PrometheusRMF/SMF (observabilidade)

A comparação não é perfeita — as arquiteturas são diferentes —, mas ajuda a compreender como muitos conceitos fundamentais de disponibilidade, gerenciamento e automação já eram familiares para profissionais de mainframe.


Curiosidades

☕ Easter Egg nº 2

O nome Kubernetes vem do grego κυβερνήτης (kybernḗtēs), que significa timoneiro, piloto ou aquele que governa uma embarcação.

Da mesma raiz surgiu a palavra Cibernética, criada por Norbert Wiener em 1948 para representar a ciência do controle e da comunicação em máquinas e seres vivos.


☕ Easter Egg nº 3

O famoso logotipo em forma de roda do Kubernetes representa o leme de um navio, reforçando a ideia de conduzir e coordenar aplicações em um ambiente distribuído.


☕ Easter Egg nº 4

Grande parte das ideias do Kubernetes nasceu da experiência do Google com um sistema interno chamado Borg, utilizado para gerenciar milhões de workloads muito antes da popularização da computação em nuvem.


Dicas para o Programador COBOL Padawan

Se você vem do universo COBOL e IBM Z, não tente decorar centenas de comandos logo no início. Construa uma base sólida:

  1. Aprenda Docker antes de Kubernetes.

  2. Entenda bem Pods, Deployments e Services.

  3. Estude YAML, pois ele é a linguagem declarativa da plataforma.

  4. Pratique com um cluster local usando Minikube, Kind ou OpenShift Local.

  5. Aprenda kubectl como você aprendeu TSO e ISPF.

  6. Depois avance para Volumes, Networking e Segurança.

  7. Em seguida, mergulhe em Helm, GitOps, Operators e Observabilidade.

  8. Só então explore Service Mesh e arquiteturas distribuídas mais sofisticadas.

Essa sequência torna o aprendizado muito mais natural.


Conclusão — O z/OS da Era Cloud

Existe um velho ditado no universo da engenharia:

"Toda tecnologia realmente nova acaba redescobrindo uma boa ideia do passado."

Kubernetes prova isso.

Ele trouxe uma nova forma de empacotar aplicações, distribuir cargas e automatizar operações em larga escala. Porém, muitos de seus princípios — disponibilidade, isolamento, escalabilidade, controle de acesso, recuperação automática e gerenciamento centralizado — já faziam parte da cultura dos grandes sistemas corporativos há décadas.

Para o programador COBOL Padawan, Kubernetes não deve ser visto como um substituto do IBM Z, mas como uma tecnologia complementar. Hoje é comum encontrar arquiteturas híbridas nas quais aplicações executam no mainframe, APIs são expostas pelo z/OS Connect, mensagens trafegam pelo IBM MQ e microsserviços em Kubernetes consomem essas informações para construir soluções modernas.

O profissional mais valorizado do futuro não será aquele que conhece apenas o mundo distribuído ou apenas o mundo mainframe. Será aquele capaz de conectar ambos com segurança, eficiência e visão arquitetural.

Como diria o Sr. Spock:

"A lógica é o começo da sabedoria, não o fim."

No universo da computação corporativa, compreender Kubernetes amplia sua visão sobre a nuvem; compreender IBM Z revela por que muitos desses conceitos já sustentavam os sistemas mais críticos do planeta muito antes da era dos containers. É nessa combinação entre tradição e inovação que surgem as arquiteturas mais robustas do século XXI.


quarta-feira, 19 de junho de 2024

Observabilidade Muito Além do Grafana

 

Bellacosa Mainframe em revisao observabilidade muito alem do grafana

☕ Um Café no Bellacosa Mainframe

Observabilidade Muito Além do Grafana

O Que Todo Programador COBOL Padawan Precisa Saber Sobre Prometheus, Grafana, Loki, ELK, Zabbix, OpenTelemetry e Como os Grandes Bancos Descobrem Problemas Antes que os Clientes Percebam

"Durante décadas, quem trabalhava com Mainframe aprendia uma regra simples: se o sistema caiu, alguém vai ligar em menos de cinco minutos. Na era do Kubernetes, dos microsserviços e da nuvem, essa regra mudou. O objetivo agora é descobrir o problema antes mesmo que o telefone toque."


Introdução

Se você é um Programador COBOL Padawan e passou boa parte da carreira trabalhando com IBM Z, CICS, DB2, IMS, MQ, JCL, JES2, SDSF e RACF, provavelmente já ouviu alguém dizer:

"Agora usamos Grafana."

Ou então:

"Precisamos colocar Prometheus."

Ou ainda:

"Os logs estão no Loki."

E a primeira reação costuma ser:

"Mais um monte de ferramentas..."

Na verdade, não.

O que mudou não foi o problema.

Mudaram apenas as ferramentas utilizadas para resolvê-lo.

Desde a década de 1960, administradores de sistemas possuem exatamente as mesmas preocupações:

  • O servidor está funcionando?

  • Existe gargalo?

  • A CPU está sobrecarregada?

  • A memória acabou?

  • O banco está lento?

  • O programa entrou em loop?

  • Quem provocou o incidente?

  • Como evitar que aconteça novamente?

No Mainframe existiam RMF, SMF, SYSLOG, OMEGAMON, SDSF, Tivoli, NetView e System Automation.

Na computação em nuvem surgiram Prometheus, Grafana, Loki, OpenTelemetry, Tempo, Jaeger, Elastic Stack e dezenas de outras soluções.

O conceito continua exatamente o mesmo.

A diferença é que agora estamos monitorando milhares de microsserviços distribuídos em centenas de servidores que podem nascer e desaparecer em segundos.

Vamos tomar um café e entender essa evolução.


O maior erro de quem começa em DevOps

Muita gente acredita que Grafana é uma ferramenta de monitoramento.

Não é.

Outros imaginam que Prometheus cria dashboards.

Também não.

Há quem pense que Loki substitui um banco de dados.

Novamente, não.

Essas ferramentas fazem parte de uma disciplina muito maior chamada Observabilidade.

E esse é um conceito extremamente importante.


Monitoramento x Observabilidade

Imagine que você trabalha em um banco.

Às 10h15 da manhã começam centenas de reclamações.

Clientes não conseguem fazer PIX.

O monitoramento informa apenas:

API PIX

Status:

DOWN

Ótimo.

Sabemos que existe um problema.

Mas...

Por quê?

Agora entra a observabilidade.

Ela responde algo como:

CPU

↓

95%

↓

Garbage Collector executando

↓

Banco de Dados respondeu lentamente

↓

Fila Kafka acumulou mensagens

↓

Timeout

↓

Clientes começaram a receber erro

Percebe a diferença?

Monitoramento responde:

Existe um problema.

Observabilidade responde:

Por que ele aconteceu.


A analogia perfeita para quem vem do Mainframe

Vamos traduzir tudo isso para o universo IBM Z.

Mundo MainframeMundo Cloud Native
RMFPrometheus
SMFMetrics
SYSLOGLogs
OMEGAMONGrafana
SDSFGrafana + Loki
NetViewAlertmanager
Tivoli MonitoringPrometheus + Grafana
System AutomationAlertmanager + Kubernetes

Ou seja...

Você já conhece praticamente todos os conceitos.

Apenas os nomes mudaram.


Os três pilares da Observabilidade

Existe uma regra que todo profissional de SRE conhece.

Uma infraestrutura moderna precisa de três tipos de informação.

Pilar 1 — Métricas

São números.

Apenas números.

Exemplos:

CPU

67%
Memória

12 GB
Disco

81%
Latência

95 ms
Requests

3500/s

Essas informações ocupam pouco espaço.

São rápidas.

Podem ser armazenadas durante anos.

É exatamente esse tipo de dado que o Prometheus coleta.


Pilar 2 — Logs

Agora imagine um extrato bancário.

Cliente iniciou login

↓

Senha válida

↓

Consultou saldo

↓

Transferência

↓

PIX

↓

Logout

Isso é um log.

Ele conta uma história.

Enquanto métricas dizem:

CPU = 89%

O log diz:

NullPointerException

Arquivo não encontrado

Timeout DB2

Usuário autenticado

Transação cancelada

Os logs ocupam muito mais espaço.

Mas possuem riqueza de detalhes.


Pilar 3 — Traces

Este é o mais moderno dos três pilares.

Imagine um PIX.

Ele passa por vários componentes.

Aplicativo

↓

API Gateway

↓

Autenticação

↓

Pagamento

↓

Banco

↓

Kafka

↓

Resposta

Cada etapa possui tempo.

O Trace mostra exatamente onde ocorreu a lentidão.

É como colocar um GPS dentro da requisição.

Ferramentas:

  • Jaeger

  • Tempo

  • OpenTelemetry


Afinal, o que é o Prometheus?

O Prometheus nasceu na SoundCloud.

Hoje é um projeto da CNCF.

Praticamente todo cluster Kubernetes utiliza Prometheus.

Mas afinal...

O que ele faz?

Resposta curta:

Coleta métricas.

Só isso.

Não cria dashboards.

Não armazena logs.

Não faz visualizações bonitas.

Ele apenas pergunta continuamente aos servidores:

Como você está?

O modelo Pull

Esse detalhe é extremamente importante.

Prometheus trabalha com Pull.

Ou seja...

Ele vai até o servidor.

Prometheus

↓

Servidor Linux

↓

Qual sua CPU?

Servidor responde:

cpu_usage 63.4

Depois de alguns segundos...

Pergunta novamente.

cpu_usage 65.8

Depois novamente.

cpu_usage 67.9

Assim nasce uma série temporal.


Time Series Database

O banco interno do Prometheus é especializado em séries temporais.

Cada informação possui:

Valor

+

Data

+

Hora

Por exemplo:

10:00

CPU 20%
10:05

CPU 32%
10:10

CPU 48%
10:15

CPU 80%

O interessante não é apenas o valor.

É enxergar sua evolução.


Exporters

Prometheus não entende tudo sozinho.

Ele utiliza Exporters.

Imagine-os como tradutores.

Linux?

Node Exporter.

Windows?

Windows Exporter.

MySQL?

MySQL Exporter.

PostgreSQL?

Postgres Exporter.

Redis?

Redis Exporter.

Kafka?

Kafka Exporter.

Nginx?

Nginx Exporter.

Apache?

Apache Exporter.

Até equipamentos de rede podem ser monitorados utilizando SNMP Exporter.

No mundo IBM Z também existem integrações específicas para expor métricas de z/OS, CICS, Db2 e MQ para plataformas modernas de observabilidade.


PromQL — A linguagem do Prometheus

Um dos maiores diferenciais do Prometheus é sua linguagem de consultas.

PromQL.

Imagine perguntar:

"Qual foi a média de CPU dos últimos cinco minutos?"

Ou:

"Quantas requisições HTTP ocorreram por segundo?"

Ou:

"Qual o percentil 95 da latência?"

Tudo isso pode ser respondido utilizando PromQL.

É uma linguagem extremamente poderosa e indispensável para quem trabalha com SRE.


Grafana — Muito além dos gráficos bonitos

Existe uma frase famosa:

Prometheus coleta.

Grafana apresenta.

Essa frase resume bem o papel do Grafana.

Ele não coleta nada.

Ele apenas conecta diversas fontes de dados.

Pode consultar:

  • Prometheus

  • Loki

  • Elasticsearch

  • Oracle

  • SQL Server

  • PostgreSQL

  • MySQL

  • InfluxDB

  • OpenSearch

  • Tempo

  • Jaeger

  • CloudWatch

  • Azure Monitor

  • Google Cloud Monitoring

E transformar tudo isso em painéis extremamente intuitivos.


O painel do NOC

Imagine entrar em um Centro de Operações.

Existe um enorme telão.

Você vê:

  • CPU

  • Memória

  • Disco

  • Rede

  • APIs

  • Kubernetes

  • Bancos

  • Filas MQ

  • Kafka

  • Tempo de resposta

  • Quantidade de usuários

Tudo atualizado em tempo real.

Esse telão normalmente é Grafana.


Dashboards inteligentes

Um bom dashboard não serve apenas para mostrar gráficos.

Ele ajuda a responder perguntas.

Exemplo:

Por que a CPU aumentou?

Clique.

Agora veja somente aquele servidor.

Clique novamente.

Veja apenas aquele Pod.

Clique outra vez.

Agora visualize os logs.

Depois os traces.

Esse processo chama-se Drill Down.

É uma investigação guiada.


Loki — O banco de logs da Grafana Labs

Se Prometheus trabalha com métricas...

Loki trabalha com logs.

Mas existe uma diferença enorme entre Loki e Elasticsearch.


ELK tradicional

No Elastic Stack, praticamente todo o conteúdo do log é indexado.

Isso torna a pesquisa extremamente rápida.

Mas também exige muito armazenamento.

Grandes ambientes podem consumir dezenas de terabytes.


Loki

O Loki segue uma filosofia diferente.

Ele indexa apenas Labels.

Por exemplo:

Namespace

backend
Pod

payment-api
Container

java

O texto completo permanece compactado.

Resultado?

Muito menos espaço.

Muito menos custo.

Por isso Loki tornou-se extremamente popular em Kubernetes.


LogQL

Assim como Prometheus possui PromQL...

Loki possui LogQL.

Você pode perguntar:

Mostre todos os logs do namespace financeiro.

Ou:

Procure apenas mensagens ERROR.

Ou:

Mostre todos os Timeout DB2.

A sintaxe é bastante intuitiva.


Elastic Stack — O gigante da busca textual

Nem sempre Loki é a melhor escolha.

Imagine uma instituição financeira.

Milhões de logs por dia.

Auditoria.

LGPD.

Compliance.

Fraudes.

Pesquisas complexas.

Nesse cenário o Elastic Stack continua sendo excelente.

Ele é composto por:

  • Elasticsearch

  • Logstash

  • Kibana

Em muitas empresas modernas o Logstash foi substituído por Beats ou Elastic Agent.

Também existe o OpenSearch, derivado do Elasticsearch, bastante utilizado como alternativa open source.


Zabbix — O veterano que continua forte

Antes do Kubernetes dominar o mercado, muitas empresas já utilizavam Zabbix.

Ele continua extremamente relevante.

Especialmente para:

  • Switches

  • Roteadores

  • Firewalls

  • Impressoras

  • Servidores físicos

  • Máquinas virtuais

  • UPS

  • Storage

  • Bancos de dados

  • Ambientes híbridos

Enquanto Prometheus nasceu para ambientes dinâmicos e cloud native, Zabbix continua brilhando em infraestruturas tradicionais.


OpenTelemetry — A linguagem universal da observabilidade

Nos últimos anos surgiu um novo protagonista.

OpenTelemetry.

Ele não substitui Prometheus.

Nem Grafana.

Nem Loki.

Ele cria um padrão.

Imagine uma aplicação Java.

Outra em Go.

Outra em Python.

Outra em COBOL acessando uma API via z/OS Connect.

Como todas enviarão métricas, logs e traces?

OpenTelemetry resolve esse problema.

Ele padroniza a instrumentação.

É como um tradutor universal.


Alertmanager — Quando o problema precisa encontrar você

Monitorar é importante.

Mas ninguém fica olhando dashboards vinte e quatro horas por dia.

Quando algo acontece...

O Alertmanager entra em ação.

Ele pode enviar notificações para:

  • Slack

  • Microsoft Teams

  • Telegram

  • Discord

  • PagerDuty

  • Opsgenie

  • E-mail

  • SMS

Muito parecido com o papel desempenhado pelo IBM System Automation e pelo NetView em ambientes Mainframe.


O fluxo completo da observabilidade

Imagine um microsserviço Java executando em Kubernetes.

O fluxo típico será:

Aplicação

↓

Exporta métricas

↓

Prometheus

↓

Grafana

Ao mesmo tempo:

Aplicação

↓

Logs

↓

Fluent Bit

↓

Loki

↓

Grafana

E também:

Aplicação

↓

OpenTelemetry

↓

Collector

↓

Tempo

↓

Grafana

Observe algo interessante.

Tudo converge para o Grafana.

Ele torna-se a porta de entrada para toda a operação.


Um exemplo real em um grande banco

Imagine um Internet Banking durante o pagamento de salários.

Milhões de transações.

Subitamente o tempo de resposta aumenta.

O que acontece?

Primeiro...

Prometheus detecta aumento de CPU.

Depois...

Grafana mostra crescimento da latência.

Logo em seguida...

Alertmanager envia alerta para a equipe.

Os operadores acessam Loki.

Descobrem centenas de mensagens:

Timeout DB2

Os traces mostram que todas as requisições lentas passam pelo mesmo microsserviço.

A equipe reinicia apenas aquele componente.

O problema desaparece.

Tudo isso pode acontecer em poucos minutos.

Antes mesmo de milhares de clientes perceberem.


E no Mainframe?

Muita gente imagina que observabilidade pertence apenas à nuvem.

Não é verdade.

IBM Z possui uma enorme quantidade de dados operacionais.

SMF Records.

RMF.

OMEGAMON.

CICS Performance Analyzer.

Db2 Statistics.

IMS Monitor.

MQ Statistics.

Essas informações podem ser integradas com Prometheus, Grafana e OpenTelemetry.

Hoje é perfeitamente possível construir dashboards que apresentam lado a lado:

  • CPU do z/OS

  • Consumo do CICS

  • Threads do Java

  • Pods Kubernetes

  • APIs REST

  • Banco PostgreSQL

  • Db2 for z/OS

Tudo na mesma tela.

Essa convergência é uma das maiores tendências da observabilidade corporativa.


O caminho recomendado para um COBOL Padawan

Se você está começando nessa área, minha recomendação é seguir uma trilha progressiva:

  1. Entenda o conceito de observabilidade.

  2. Aprenda a diferença entre métricas, logs e traces.

  3. Estude Prometheus e PromQL.

  4. Domine Grafana e criação de dashboards.

  5. Aprenda Loki e LogQL.

  6. Conheça Alertmanager.

  7. Estude OpenTelemetry.

  8. Explore Tempo e Jaeger.

  9. Conheça Elastic Stack e OpenSearch.

  10. Aprenda como tudo isso se integra ao Kubernetes.

Essa sequência faz muito mais sentido do que tentar aprender todas as ferramentas ao mesmo tempo.


Muito além das ferramentas

Talvez a maior lição deste café seja perceber que observabilidade não é um produto, mas uma forma de pensar.

O profissional moderno não espera o usuário reclamar. Ele cria sistemas capazes de revelar tendências, antecipar falhas e explicar, com precisão, por que uma aplicação está degradando.

Quem trabalhou anos com IBM Z já conhece essa mentalidade. Sempre houve preocupação com disponibilidade, desempenho, capacidade e diagnóstico. O que mudou foi a escala. Em vez de monitorar um único computador central altamente estável, hoje monitoramos milhares de contêineres efêmeros, APIs, filas de mensagens e bancos distribuídos que surgem e desaparecem em segundos.

Ferramentas como Prometheus, Grafana, Loki, OpenTelemetry, Tempo, Jaeger, Elastic Stack e Zabbix representam a evolução natural desse processo. Elas não substituem os conceitos que fizeram do Mainframe uma referência mundial em confiabilidade; elas os expandem para um ambiente distribuído, dinâmico e orientado a microsserviços.

Para o Programador COBOL Padawan, aprender observabilidade é muito mais do que decorar comandos ou instalar dashboards. É compreender como uma transação percorre toda a arquitetura, como interpretar sinais de degradação antes que se transformem em incidentes e como utilizar dados para tomar decisões técnicas com rapidez e segurança.

No fim das contas, a missão continua a mesma de cinquenta anos atrás: manter sistemas críticos funcionando com excelência. A diferença é que agora contamos com uma caixa de ferramentas muito mais rica, integrada e inteligente. Quem domina observabilidade deixa de apenas reagir a problemas e passa a antecipá-los, tornando-se um profissional indispensável em qualquer equipe de Engenharia de Software, DevOps, SRE ou Modernização de Mainframe.

Porque, seja em um IBM Z processando milhões de transações CICS por segundo ou em um cluster Kubernetes espalhado por dezenas de nós, a pergunta continua sendo a mesma:

"O sistema está saudável?"

E a observabilidade moderna finalmente nos permite responder não apenas "sim" ou "não", mas também "por quê", "desde quando", "qual componente foi afetado" e, o mais importante, "como evitar que isso aconteça novamente".

Esse é o verdadeiro poder da observabilidade. Esse é o próximo passo na jornada de todo Programador COBOL Padawan rumo à engenharia de software moderna.

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...