☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

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

Um Café no Bellacosa Mainframe

🚀 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.


sexta-feira, 12 de julho de 2024

Do COBOL ao Container sem cair do Sysplex: zCX, Kubernetes/OpenShift e Ansible para IBM Z e LinuxONE

 

Bellacosa Mainframe do cobol ao container 

☕ Um café no Bellacosa Mainframe

Do COBOL ao Container sem cair do Sysplex

zCX, Kubernetes/OpenShift e Ansible para IBM Z e LinuxONE — fundamentos para quem conhece muito bem o mainframe, mas resolveu atravessar a fronteira do mundo cloud-native

Imagine a cena.

Você passou décadas aprendendo que produção não é playground.

Conhece JOB, STEP, DD, PROC, catalogação, RACF, CICS, Db2, JES2, SDSF, WLM, Sysplex, datasets, USS e provavelmente consegue desconfiar de um S0C7 antes mesmo de alguém terminar de explicar o incidente.

Então chega alguém e diz:

“Agora vamos colocar a aplicação num container, subir num pod, criar um deployment, colocar num cluster Kubernetes, rodar no OpenShift e automatizar tudo com Ansible.”

O COBOLzeiro olha.

Olha novamente.

E pergunta:

“Mas onde está o JCL?”

É justamente aí que começa esta viagem.



CAPÍTULO 1 — IBM z/OS Container Extensions — zCX

Quando colocaram Linux dentro do z/OS e ninguém precisou pedir desculpas ao JES

1. O que diabos é zCX?

IBM z/OS Container Extensions, normalmente chamado simplesmente de zCX, é uma tecnologia que permite executar aplicações Linux empacotadas em containers dentro de um ambiente hospedado pelo próprio z/OS.

A IBM introduziu zCX como recurso do z/OS 2.4, lançado em 2019. A ideia era permitir que software originalmente construído para Linux on Z pudesse trabalhar muito próximo das aplicações tradicionais do z/OS sem obrigatoriamente exigir o provisionamento de uma LPAR Linux separada.

Isso merece ser repetido porque é justamente onde muitos mainframers erram:

zCX não transforma z/OS em Linux.

E:

um container Linux executado em zCX continua sendo um container Linux.

O que acontece é mais interessante.

O z/OS fornece uma infraestrutura especializada dentro da qual existe um ambiente Linux preparado para executar containers.

A IBM descreve cada instância zCX como uma instância executada em um address space do z/OS, representando um servidor virtual capaz de hospedar aplicações containerizadas.

Para um COBOLzeiro, podemos começar com esta representação mental:

IBM Z
│
├── LPAR z/OS
│   │
│   ├── JES2
│   ├── CICS
│   ├── Db2
│   ├── IMS
│   ├── USS
│   │
│   └── zCX
│       │
│       └── Linux
│           │
│           ├── Container A
│           ├── Container B
│           └── Container C
│
└── outras LPARs

Não é tecnicamente uma descrição completa da implementação, mas é uma excelente primeira fotografia mental.



2. Antes de zCX: por que alguém precisaria disso?

Suponha que uma aplicação COBOL execute no CICS e precise chamar um componente escrito em Java, Go, Python ou Node.js.

Tradicionalmente você poderia ter:

CICS
 |
TCP/IP
 |
Firewall / switch / network
 |
Servidor Linux
 |
Aplicação

Nada errado.

Milhares de arquiteturas funcionam assim.

Mas existe um problema interessante chamado distância computacional.

Quanto mais longe você coloca um componente dos dados e das transações:

  • mais rede;

  • mais latência;

  • mais infraestrutura;

  • mais administração;

  • mais pontos de falha;

  • mais segurança;

  • mais troubleshooting.

O zCX apresenta outra possibilidade:

COBOL / CICS / Db2
        |
        |
      z/OS
        |
       zCX
        |
Container Linux

Você aproxima determinado software Linux do universo z/OS.

Essa é uma das ideias fundamentais da modernização do mainframe:

modernizar não significa necessariamente retirar o processamento do mainframe.

Às vezes modernizar significa trazer o componente moderno até onde os dados já estão.



3. A analogia para quem conhece CICS

Imagine um programador COBOL perguntando:

“Container é um address space?”

Não.

Mas existe uma analogia útil.

Um programa COBOL executando sob CICS não precisa carregar consigo:

  • sistema operacional;

  • scheduler;

  • TCP/IP;

  • dispositivos;

  • gerenciamento de memória completo;

  • infraestrutura de segurança do sistema.

O ambiente fornece tudo isso.

Containers seguem parcialmente essa filosofia:

Aplicação
+
bibliotecas
+
dependências
+
configuração

são empacotadas como uma unidade reproduzível.

O container utiliza serviços fornecidos pelo sistema onde é executado.

A grande diferença é que containerização foi construída para tornar aplicações portáveis e reproduzíveis.

O mantra é:

“Funcionou neste ambiente? O mesmo artefato deverá funcionar naquele.”

Não significa que toda aplicação seja magicamente portátil entre arquiteturas de processador.

Aqui aparece uma palavra fundamental para IBM Z:

s390x

Containers executados no IBM Z normalmente precisam possuir imagens compatíveis com arquitetura s390x.

Um container compilado exclusivamente para x86_64 não ganha poderes mágicos ao atravessar a porta do mainframe.



4. Easter egg nº 1 — container não é máquina virtual

Essa confusão é tão comum que vale tatuar no monitor.

Uma VM normalmente possui:

Hardware
 └─ Hypervisor
     ├─ VM
     │   ├─ Kernel
     │   └─ Aplicações
     └─ VM
         ├─ Kernel
         └─ Aplicações

Containers normalmente compartilham recursos do sistema operacional subjacente:

Sistema operacional
 └─ Runtime de containers
     ├─ Container
     ├─ Container
     └─ Container

zCX adiciona uma camada interessante porque oferece o ambiente Linux necessário para esses containers dentro do universo operacional do z/OS.

Portanto:

container ≠ VM
zCX ≠ uma simples VM Linux comum
zCX ≠ Docker instalado diretamente no kernel do z/OS

Esta última distinção é importantíssima.



5. O z/OS virou Docker?

Não.

Historicamente zCX forneceu um ambiente Linux voltado à execução de aplicações gerenciadas como containers Docker. A própria documentação IBM descreve zCX dessa forma.

Mas o ecossistema atual ficou mais interessante.

Hoje a IBM documenta separadamente:

z/OS Container Extensions — zCX
zCX for OpenShift
IBM z/OS Container Platform

E isso pode confundir até profissional experiente.

A IBM inclusive diferencia explicitamente as opções modernas de containerização:

  • Red Hat OpenShift em Linux x86 ou Linux s390x;

  • zCX com Linux s390x sobre z/OS;

  • IBM z/OS Container Platform com containers nativos do z/OS.

Portanto nunca use “container no mainframe” como se fosse uma arquitetura única.

Pergunte:

Container onde?



6. As quatro fronteiras que o COBOLzeiro precisa enxergar

Fronteira A — z/OS

Aqui vivem:

COBOL
PL/I
Assembler
CICS
IMS
Db2
VSAM
JES2
RACF
USS
MQ
z/OS Connect

É o mundo transacional tradicional.


Fronteira B — zCX

Está associado ao z/OS, mas fornece execução Linux/containerizada.

Visualize:

z/OS
 |
 +---- traditional workloads
 |
 +---- zCX
         |
         Linux container workload

Fronteira C — Linux on IBM Z

Agora temos Linux executando como sistema operacional sobre IBM Z.

Por exemplo:

IBM Z
 |
 LPAR
 |
 Linux
 |
 OpenShift

Aqui não estamos dentro do z/OS.

Estamos usando a arquitetura IBM Z para executar Linux.

Essa distinção parece óbvia depois que você entende.

Antes disso ela destrói metade dos diagramas PowerPoint corporativos.


Fronteira D — LinuxONE

LinuxONE é uma família IBM criada especificamente para workloads Linux.

A IBM introduziu LinuxONE em agosto de 2015.

Conceitualmente:

IBM Z
    → z/OS + Linux

LinuxONE
    → Linux

É uma simplificação proposital, mas excelente para começar.

LinuxONE utiliza tecnologia derivada da plataforma IBM Z, porém é posicionado para ambientes Linux e cloud.

Em 2026, a família atual inclui IBM LinuxONE 5, baseada no Telum II.


7. Para que zCX serve?

Pense principalmente em aplicações que precisam:

executar software Linux próximo do z/OS

Um serviço auxiliar pode ficar muito próximo das aplicações e dados tradicionais.

modernizar sem mover os sistemas de registro

Você mantém:

CICS
Db2
IMS
COBOL

e adiciona:

API
microservice
middleware
agent
software Linux

reduzir infraestrutura separada em certos casos

Nem todo componente precisa necessariamente de outra LPAR Linux.

construir pontes entre gerações

Exemplo conceitual:

Aplicativo Web
      |
      v
    API
      |
 z/OS Connect
      |
   COBOL/CICS
      |
     Db2

Alguns componentes auxiliares podem executar próximos ao backend, inclusive utilizando tecnologias Linux.


8. O que NÃO colocar automaticamente no zCX?

Aqui começa a arquitetura de verdade.

Não olhe para zCX e pense:

“Excelente, vamos meter tudo dentro.”

Não.

Pergunte:

  1. A imagem existe para s390x?

  2. O fornecedor certifica essa plataforma?

  3. Qual o consumo de CPU?

  4. Qual o consumo de memória?

  5. Qual a latência necessária?

  6. Há dependência com hardware específico?

  7. A aplicação precisa de Kubernetes?

  8. Existe necessidade de autoscaling?

  9. O workload é stateful?

  10. Quem operará o ambiente?

Containerização não elimina decisões arquiteturais.

Ela apenas muda o lugar onde você cometerá os erros.


9. zCX versus OpenShift

Talvez essa seja a pergunta mais importante deste capítulo.

zCX

Pense:

“Preciso executar containers Linux próximos ao z/OS.”

OpenShift

Pense:

“Preciso administrar aplicações containerizadas distribuídas como uma plataforma.”

OpenShift resolve um problema muito maior.

Ele pensa em:

clusters
nodes
pods
services
deployments
replicas
operators
storage
networking
security
upgrades
observability
lifecycle

A IBM também oferece e documenta arquitetura de referência para Red Hat OpenShift Container Platform sobre IBM Z e LinuxONE.

Além disso, existe zCX Foundation for Red Hat OpenShift, portanto a fronteira não deve ser reduzida à ideia “zCX jamais tem OpenShift”. A própria instrumentação moderna do z/OS diferencia instâncias zCX for Containers, zCX for OpenShift e a appliance relacionada ao z/OS Container Platform.

Isso demonstra como o ecossistema evoluiu desde o zCX original de 2019.


10. Passo a passo mental do zCX

Para começar os estudos, não tente instalar nada ainda.

Primeiro memorize esta sequência:

Passo 1 — existe IBM Z

Hardware.

Passo 2 — existe uma LPAR z/OS

Sistema operacional.

Passo 3 — zCX é provisionado dentro desse universo

O z/OS administra sua existência operacional.

Passo 4 — surge um ambiente Linux

Ele fornece o ambiente necessário para software Linux.

Passo 5 — containers executam ali

As imagens precisam ser adequadas à arquitetura.

Passo 6 — networking conecta os mundos

Container precisa conversar com:

CICS
Db2
IMS
MQ
APIs
Internet
outros servidores

É justamente por isso que networking se torna disciplina central.

A documentação IBM dedica uma seção específica à arquitetura de rede do zCX.


11. Easter egg nº 2 — USS não é zCX

Outro erro maravilhoso.

“Mas z/OS já tinha Unix System Services. Para que Linux?”

Porque:

USS ≠ Linux

USS fornece ambiente POSIX dentro do z/OS.

Linux é outro sistema operacional.

Você pode ter:

z/OS
 ├─ MVS
 ├─ USS
 └─ zCX
      └─ Linux

Um shell parece um shell.

ls parece ls.

Isso não transforma os ambientes na mesma coisa.

É como encontrar duas pessoas usando boina e concluir que ambas são francesas.


12. Onde o COBOL entra nessa história?

Em todo lugar.

O erro de marketing é mostrar containers como substitutos para COBOL.

Na prática muitas arquiteturas modernas são:

Mobile
 |
API Gateway
 |
Microservices
 |
Kafka / MQ
 |
z/OS Connect
 |
CICS
 |
COBOL
 |
Db2

O container frequentemente não substitui o sistema transacional.

Ele amplia o ecossistema em volta dele.

Esta é uma das ideias mais importantes para o mainframer moderno:

mainframe modernization não significa obrigatoriamente mainframe migration.


13. Checklist do Padawan zCX

Antes de avançar, você deveria conseguir responder:

  • O que é zCX?

  • Em qual release do z/OS apareceu?

  • Por que zCX possui Linux?

  • Qual a diferença entre USS e Linux?

  • O que significa s390x?

  • Container é VM?

  • Qual a diferença entre Linux on Z e z/OS?

  • LinuxONE executa z/OS?

  • Onde OpenShift entra?

  • Por que latência e proximidade de dados importam?

Se essas respostas estiverem claras, você ganhou seu primeiro sabre de luz containerizado.


CAPÍTULO 2 — Kubernetes e Red Hat OpenShift Container Platform

Quando alguém percebeu que administrar 3 containers era divertido e 30.000 era um pesadelo

Imagine que você tenha um container.

Tudo lindo.

docker run minha-app

Ele funciona.

Agora o gerente pergunta:

“E se cair?”

Você reinicia.

“E se precisarmos de dez?”

Você inicia dez.

“E se uma máquina morrer?”

Você transfere.

“E se precisarmos atualizar sem parar?”

Você começa a suar.

“E se tivermos 6.000 containers em 400 máquinas?”

Nesse momento nasceu a necessidade conceitual do Kubernetes.


14. Kubernetes: o JES2 dos containers?

A comparação não é perfeita.

Mas para um mainframer ela é deliciosa.

Você não entrega cada batch diretamente ao processador.

Você submete trabalho e deixa toda uma infraestrutura decidir como executá-lo.

Kubernetes faz algo filosoficamente semelhante para aplicações containerizadas.

Você declara:

“Quero três instâncias desta aplicação funcionando.”

Kubernetes tenta manter esse estado.

Isso é chamado de:

Desired State

Você não descreve cada pequena operação.

Você declara o estado esperado.

Por exemplo:

replicas: 3

Quer dizer conceitualmente:

“Kubernetes, mantenha três cópias funcionando.”

Se uma morrer:

Esperado: 3
Real:     2

O sistema tenta reconciliar:

Real → 3

Isso é reconciliation.

Um mainframer pode pensar:

“Então existe uma espécie de automação permanentemente verificando se o estado real corresponde ao planejado?”

Exatamente.


15. Quando Kubernetes apareceu?

O projeto Kubernetes nasceu no Google e foi aberto publicamente em 2014.

A versão Kubernetes 1.0 foi lançada em 21 de julho de 2015, quando o projeto também passou para a recém-formada Cloud Native Computing Foundation.

O DNA veio de experiências anteriores do Google administrando enormes quantidades de workloads containerizados.

E aqui temos uma curiosidade histórica maravilhosa:

“kubernetes” vem do grego e significa aproximadamente:

timoneiro / piloto.

Por isso o símbolo do Kubernetes é um timão.

K8s?

São oito letras entre:

K
ubernete
s

K + 8 letras + S.

Assim nasceu K8s.

Um legítimo Easter egg nerd.


16. O que Kubernetes administra?

Pense nesta hierarquia simplificada:

Cluster
 |
 +--- Node
 |     |
 |     +--- Pod
 |           |
 |           +--- Container
 |
 +--- Node
       |
       +--- Pod
             |
             +--- Container

Agora traduziremos.

Cluster

O conjunto total administrado.

Node

Uma máquina participante.

Pode ser física ou virtual dependendo da arquitetura.

Pod

A menor unidade normalmente programada pelo Kubernetes.

Um pod pode conter um ou mais containers que precisam compartilhar contexto de execução.

Container

Sua aplicação empacotada.


17. Easter egg nº 3 — Kubernetes não agenda containers diretamente

Muita apresentação diz:

“Kubernetes agenda containers.”

Tecnicamente, a unidade fundamental de scheduling é o:

Pod.

Por isso o modelo mental correto é:

Kubernetes
   ↓
  Pod
   ↓
Container

Parece preciosismo.

Até você precisar diagnosticar produção.


18. Deployment

Agora aparece algo que qualquer mainframer reconhecerá filosoficamente.

Você não quer dizer:

“Execute exatamente este processo.”

Você quer declarar:

“Esta aplicação deve existir desta maneira.”

Deployment especifica coisas como:

imagem
número de réplicas
estratégia de atualização
configuração

Por exemplo:

replicas: 3

O Kubernetes criará recursos para atingir esse estado.


19. Service

Pods podem morrer e renascer.

Endereços podem mudar.

Se outro sistema dependesse diretamente de cada pod, seria caos.

Service cria uma abstração de acesso.

Mentalmente:

Cliente
   |
Service
   |
+--+--+
|  |  |
Pod Pod Pod

O Service oferece um ponto lógico estável.

Mainframer lendo isso provavelmente pensa:

“VIPA?”

Não é a mesma implementação, mas a analogia ajuda.

Uma identidade lógica desacopla o cliente da instância física específica.


20. ConfigMap e Secret

Você não quer colocar dentro da imagem:

hostname
URL
configuração ambiental
senha
token
certificado

ConfigMaps guardam configuração não secreta.

Secrets representam informações sensíveis.

A filosofia é separar:

APPLICATION
      +
CONFIGURATION

Isso lembra práticas antigas do mainframe.

COBOL experiente sempre soube que hardcode de ambiente é receita para desastre.

O cloud-native apenas redescobriu a pólvora usando YAML.


21. O que é OpenShift?

Agora chegamos ao ponto crucial.

OpenShift não é simplesmente outro Kubernetes concorrente.

O Red Hat OpenShift Container Platform é uma plataforma empresarial construída sobre Kubernetes e Red Hat Enterprise Linux, adicionando componentes, processos de instalação, lifecycle management, segurança, ferramentas para desenvolvedores e recursos operacionais.

Uma simplificação:

Kubernetes
+
RHEL / CoreOS
+
security
+
registry/integration
+
operators
+
developer tooling
+
networking
+
observability
+
enterprise lifecycle
=
OpenShift

Não é uma fórmula literal.

É um mapa mental.


22. Quando OpenShift nasceu?

Aqui existe um pequeno detalhe histórico interessante.

OpenShift apareceu originalmente em 2011 como plataforma PaaS da Red Hat.

O OpenShift 1.0 foi lançado em 2012.

Então Kubernetes apareceu.

A Red Hat decidiu padronizar OpenShift sobre Kubernetes em 2014, culminando no OpenShift 3.0 em junho de 2015, já baseado em Kubernetes.

Isso explica algo que confunde iniciantes:

OpenShift é mais antigo que Kubernetes, mas o OpenShift moderno utiliza Kubernetes como fundação.


23. Kubernetes versus OpenShift para o COBOLzeiro

Imagine:

Kubernetes

Motor.

OpenShift

Carro completo.

O motor é fundamental.

Mas você também precisa:

painel
freio
cinto
direção
controle
instrumentação
manutenção
documentação

Outra analogia:

Kubernetes ≈ kernel + mecanismos de orquestração

OpenShift ≈ plataforma operacional Kubernetes empresarial

Também é simplificada, mas útil.


24. IBM Z entra onde?

OpenShift pode executar sobre Linux na arquitetura IBM Z.

A IBM e a Red Hat mantêm documentação específica para OpenShift Container Platform sobre IBM Z e IBM LinuxONE, incluindo arquiteturas de referência, sizing e performance.

Arquitetura conceitual:

IBM Z
 |
 +--- LPAR Linux
 |      |
 |      +--- OpenShift Node
 |
 +--- LPAR Linux
 |      |
 |      +--- OpenShift Node
 |
 +--- LPAR z/OS
        |
        +--- CICS
        +--- IMS
        +--- Db2
        +--- COBOL

Observe a beleza disso.

Você pode ter OpenShift e z/OS extremamente próximos fisicamente.


25. E LinuxONE?

LinuxONE foi construído especificamente para Linux.

Portanto:

LinuxONE
 |
 Linux
 |
 OpenShift
 |
 Kubernetes
 |
 Pods
 |
 Containers

é uma combinação natural.

A IBM documenta explicitamente OpenShift sobre ambos, IBM Z e LinuxONE.

Agora surge uma arquitetura interessante:

                  ENTERPRISE
                      |
             Red Hat OpenShift
                      |
        +-------------+-------------+
        |                           |
    LinuxONE                      IBM Z
        |                           |
 Linux workloads                z/OS
                                |
                        +-------+-------+
                        |       |       |
                       CICS    IMS     Db2
                        |
                      COBOL

Isso é hybrid cloud sem precisar imaginar que “cloud” obrigatoriamente significa AWS.


26. O grande conceito: Hybrid Cloud

Cloud não é simplesmente:

“computador de outra pessoa.”

Essa piada é boa, mas incompleta.

O conceito moderno envolve:

automação
elasticidade
APIs
self-service
orquestração
padronização
infraestrutura declarativa

Você pode aplicar vários desses princípios on-premises.

Por isso OpenShift é tão importante para IBM Z.

Ele cria uma camada operacional padronizada que pode existir:

datacenter
IBM Z
LinuxONE
x86
public cloud
edge

O objetivo é diminuir diferenças operacionais para aplicações.


27. Mas meu COBOL vai rodar dentro do Kubernetes?

Talvez.

Mas essa não é a pergunta certa.

A pergunta correta é:

qual componente deveria executar onde?

Talvez:

COBOL → CICS
Db2 → z/OS
API → z/OS Connect
Kafka connector → OpenShift
Frontend → OpenShift
AI service → OpenShift
Batch → z/OS

Arquitetura híbrida madura não é religião.

É engenharia.


28. OpenShift não substitui z/OS

Isso merece um letreiro luminoso.

OpenShift resolve problemas diferentes.

z/OS oferece qualidades extraordinárias para:

transaction processing
workload management
security
availability
data integrity
batch processing
high-volume I/O

OpenShift oferece uma plataforma fantástica para:

cloud-native apps
microservices
containers
CI/CD
declarative deployments
horizontal scaling
operators
DevSecOps

Junte as duas coisas.

Não transforme arquitetura em Fla-Flu.


29. Easter egg nº 4 — COBOL já conhecia “orquestração”

Quando alguém disser:

“Orquestração é um conceito totalmente novo da cloud.”

O mainframer pode sorrir silenciosamente.

Porque há décadas você possui:

JES
WLM
Schedulers
Automation
Sysplex
GDG
catalogação
resource management

Claro que não são Kubernetes.

Mas o problema fundamental:

“Como coordenar enormes quantidades de trabalho em infraestrutura compartilhada?”

é muito mais antigo que Kubernetes.

Cloud-native não inventou gerenciamento de workloads.

Criou novas abstrações para um novo modelo de aplicações.


30. O primeiro laboratório mental

Pegue uma aplicação:

bellacosa-api

Imagem:

bellacosa-api:v1

Crie um deployment:

Deployment
replicas = 3

Kubernetes cria:

Pod 1 → bellacosa-api:v1
Pod 2 → bellacosa-api:v1
Pod 3 → bellacosa-api:v1

Um pod morre:

Pod 1
Pod 2
X

Kubernetes observa:

Desejado = 3
Atual = 2

Cria outro:

Pod 1
Pod 2
Pod 4

Agora você entendeu talvez 30% da filosofia Kubernetes.

E esses 30% valem mais que decorar cinquenta comandos kubectl.


31. Próximo passo: Service

           Service
              |
     +--------+--------+
     |        |        |
    Pod      Pod      Pod

Usuário não precisa saber qual pod respondeu.

Isso permite escalabilidade e substituição dinâmica.


32. Próximo passo: atualização

Versão atual:

v1
v1
v1

Queremos:

v2
v2
v2

Um deployment pode realizar atualização gradual:

v1 v1 v1
v1 v1 v2
v1 v2 v2
v2 v2 v2

Esse é o famoso:

rolling update.

Mainframer imediatamente enxerga o valor:

reduzir indisponibilidade durante deploy.


33. Operators — quando Kubernetes aprende procedimentos

Operator é um conceito extremamente interessante para sysprogs.

Imagine transformar conhecimento operacional em software.

Algo como:

se condição A:
    faça B

se B falhar:
    execute C

para upgrade:
    valide D
    migre E
    reinicie F

Operators codificam conhecimento operacional especializado usando os mecanismos de controle do Kubernetes.

Para quem passou anos carregando procedimentos em runbooks ou na cabeça do sysprog João que “não pode tirar férias porque só ele sabe reiniciar aquilo”, Operators são quase poesia.


34. O que aprender primeiro?

Não comece por OpenShift inteiro.

Comece nesta ordem:

1. container
2. image
3. registry
4. pod
5. node
6. cluster
7. deployment
8. replica
9. service
10. configmap
11. secret
12. persistent volume
13. namespace
14. ingress/route
15. operator

Depois:

security
network
storage
monitoring
autoscaling
CI/CD
GitOps

Se tentar aprender tudo simultaneamente, Kubernetes parece manual de SMP/E traduzido para klingon.


CAPÍTULO 3 — Ansible for IBM Z and LinuxONE Foundations

Finalmente alguém resolveu automatizar o mainframe sem obrigar o COBOLzeiro a escrever 14 mil linhas de shell

Imagine a rotina:

segunda-feira:

crie dataset
copie membro
altere configuração
reinicie started task
verifique resultado

terça-feira:

mesma coisa.

quarta-feira:

mesma coisa em outro sistema.

quinta-feira:

alguém esqueceu o passo quatro.

sexta-feira:

War Room.

Ansible existe para transformar procedimentos repetíveis em automação declarativa.


35. O que é Ansible?

Ansible é uma tecnologia de automação de TI capaz de executar:

  • provisionamento;

  • gerenciamento de configuração;

  • deployment;

  • orquestração;

  • tarefas administrativas;

  • automação de infraestrutura.

A própria Red Hat resume Ansible como um motor open source para automação de provisionamento, configuração, deployment e outros processos de TI.

Historicamente a Red Hat descrevia Ansible como uma ferramenta lançada no começo de 2013; a Red Hat anunciou sua aquisição em outubro de 2015.

O projeto possui raízes anteriores em desenvolvimento comunitário, mas 2013 é uma referência histórica segura para o lançamento da ferramenta conforme a própria Red Hat.


36. Por que Ansible ficou popular?

Uma palavra:

simplicidade.

Ou pelo menos simplicidade relativa.

Você escreve automações normalmente em YAML.

Exemplo conceitual:

- name: Criar dataset
  ...

Em vez de escrever uma solução enorme baseada em agentes proprietários distribuídos.

Outro princípio famoso do Ansible:

agentless

Na arquitetura tradicional, o sistema gerenciado não precisa de um daemon Ansible permanentemente instalado esperando comandos.

Normalmente o controlador conecta-se aos alvos através de mecanismos existentes como SSH.

No universo z/OS isso é particularmente interessante porque você evita introduzir mais um agente residente simplesmente para automatizar tarefas.


37. COBOLzeiro pergunta: Ansible substitui JCL?

Não.

Ansible pode:

submeter JCL
copiar JCL
alterar membro
criar dataset
executar comandos
consultar resultados

Mas JCL continua sendo a linguagem de controle de jobs do z/OS.

Pense assim:

Ansible
   |
   +---- preparar ambiente
   |
   +---- copiar artefatos
   |
   +---- submeter JCL
   |
   +---- verificar resultado

Ou seja:

Ansible pode orquestrar o JCL.

Não precisa substituí-lo.


38. A arquitetura fundamental

         CONTROL NODE
            Ansible
               |
               |
              SSH
               |
      +--------+--------+
      |                 |
    Linux              z/OS
      |                 |
   server          USS / services

O controlador Ansible normalmente executa em ambiente Linux.

A partir dele você administra nós.

No ecossistema IBM existem conteúdos certificados específicos para z/OS.

A IBM disponibiliza o Red Hat Ansible Certified Content for IBM Z, justamente para integrar IBM Z à estratégia corporativa de automação.


39. O grande personagem: ibm_zos_core

Guarde este nome:

ibm.ibm_zos_core

É a collection fundamental para automação z/OS com Ansible.

A própria documentação IBM usa a instalação:

ansible-galaxy collection install ibm.ibm_zos_core

e demonstra conexão a z/OS por SSH.

Uma collection é basicamente uma coleção organizada de conteúdo Ansible:

modules
plugins
roles
documentação

Então você ganha operações projetadas especificamente para z/OS.


40. Module

Module é uma unidade funcional Ansible.

Pense:

zos_data_set
zos_copy
zos_job_submit
zos_job_query
zos_operator
...

Cada módulo resolve uma classe de tarefa.

Isso muda completamente a forma de automação.

Em vez de:

ssh
executa shell
parse output
espera string
faz sed
reza

você usa uma abstração que conhece o recurso z/OS.


41. Playbook

Playbook é onde você descreve o workflow.

Algo conceitualmente assim:

- name: Deploy Bellacosa
  hosts: zos
  tasks:

    - criar dataset

    - copiar programa

    - submeter compile

    - verificar RC

    - copiar load module

    - atualizar ambiente

Para o mainframer:

Playbook é quase um PROC de automação corporativa turbinado.

Não tecnicamente.

Mas mentalmente funciona.


42. Inventory

Ansible precisa saber quem administra.

Inventory pode representar:

DEV
TEST
QA
PROD

ou:

LPAR1
LPAR2
LPAR3

Exemplo conceitual:

[development]
zosdev01

[production]
zosprd01
zosprd02

A automação pode ser a mesma.

As variáveis mudam.

Isso reduz aquele câncer operacional conhecido como:

deploy_dev_final_v2_corrigido.sh

deploy_hml_final_agora_vai.sh

deploy_prod_NAO_MEXER.sh

43. Idempotência — uma palavra estranha que o mainframe entende há décadas

Esse é um dos conceitos mais importantes de Ansible.

Uma operação idempotente pode ser repetida sem produzir efeitos adicionais indesejados quando o estado desejado já foi alcançado.

Você declara:

“Este recurso deve existir.”

Ansible verifica.

Se existe corretamente:

OK

Se não:

CHANGE

Isso é muito diferente de scripts burros:

crie
crie novamente
erro
continua
quebra

Exemplo mental:

state: present

Você não está dizendo:

“Execute CREATE.”

Está dizendo:

“Garanta que exista.”

Percebe a proximidade filosófica com Kubernetes?

Ansible:

estado desejado

Kubernetes:

estado desejado

Essa filosofia declarativa é uma das pontes fundamentais entre infraestrutura tradicional e cloud-native.


44. Easter egg nº 5 — YAML não é linguagem de programação tradicional

YAML é um formato de representação de dados.

Ele parece amigável:

name: Bellacosa
language: COBOL
platform: zOS

Até você errar dois espaços.

Então ele vira:

Yet Another Mainframe Lament.

O nome oficial originalmente brincava com “Yet Another Markup Language”, mas hoje YAML é recursivamente apresentado como:

YAML Ain't Markup Language.

Sim.

Programadores também fazem piadas ruins.


45. O z/OS precisa de Python?

Para várias automações da collection IBM, existe infraestrutura Python no lado z/OS.

A documentação atual da IBM especifica versões compatíveis do IBM Open Enterprise SDK for Python de acordo com as versões da collection ibm_zos_core.

Isso é outra mudança cultural fascinante.

O mainframe moderno não é:

COBOL + JCL

Hoje o ecossistema contém também:

Python
Java
Node.js
Go
Ansible
REST
Git
VS Code
containers

sem remover COBOL, CICS, IMS e Db2.

É expansão, não apagamento.


46. Ansible e datasets

Agora começamos a falar a língua do mainframer.

Uma automação pode lidar com recursos como:

PS
PDS
PDSE
members
USS files
jobs
operator commands

Imagine automatizar:

1. criar HLQ.BELLACOSA.LOAD
2. criar HLQ.BELLACOSA.JCL
3. copiar membros
4. compilar
5. conferir MAXCC
6. promover

Tudo registrado em Git.

Agora você começa a compreender por que Ansible interessa ao mundo DevOps mainframe.


47. Infrastructure as Code

Aqui temos outra expressão da moda que na verdade contém uma ideia poderosa.

Em vez de infraestrutura existir apenas porque alguém executou comandos manualmente em 2017 e ninguém lembra quais:

você descreve configuração em arquivos versionados.

Git
 |
 +-- inventories
 +-- playbooks
 +-- roles
 +-- variables

Você ganha:

histórico
diff
peer review
rollback lógico
auditoria
repetibilidade

Mainframer que conhece ChangeMan, Endevor, ISPW ou Librarian deve sentir imediatamente o cheiro do conceito.

Nós sempre soubemos que:

mudança sem histórico é pedir para conhecer o plantão das três da manhã.


48. Ansible no LinuxONE

Agora trocamos o alvo.

LinuxONE executa Linux.

Ansible é extremamente natural nesse ambiente.

Você pode automatizar:

RHEL
pacotes
services
networking
storage
users
OpenShift
middleware
bancos
security

Inclusive a própria plataforma Ansible Automation Platform pode ser implementada sobre IBM Z e LinuxONE com RHEL; a IBM possui orientação específica para esse cenário.

Portanto:

Ansible
 |
 +--- z/OS
 |
 +--- Linux on Z
 |
 +--- LinuxONE
 |
 +--- x86
 |
 +--- cloud
 |
 +--- network

Esse é o verdadeiro poder.

Uma linguagem operacional comum atravessando silos.


49. E OpenShift?

Aqui a coisa fica muito interessante.

Ansible pode automatizar infraestrutura.

OpenShift orquestra containers.

Você pode ter:

Ansible Automation Platform
            |
            +---- Linux
            |
            +---- IBM Z
            |
            +---- z/OS
            |
            +---- OpenShift

Isso cria uma camada corporativa de automação.

Imagine um workflow:

1. preparar z/OS
2. criar recursos
3. instalar configuração
4. atualizar aplicação OpenShift
5. testar API
6. validar CICS
7. conferir Db2

Uma mudança pode atravessar tecnologias anteriormente administradas por equipes completamente distintas.


50. O cenário Bellacosa Bank

Vamos juntar os três capítulos.

Temos:

                    INTERNET
                       |
                 API GATEWAY
                       |
                OPENSHIFT
                       |
        +--------------+--------------+
        |                             |
   Microservice A                Microservice B
        |                             |
        +--------------+--------------+
                       |
                  z/OS Connect
                       |
                     CICS
                       |
                     COBOL
                       |
                      Db2

Em outro canto:

z/OS
 |
 zCX
 |
 Linux container
 |
 serviço auxiliar

E comandando operações:

              ANSIBLE
                 |
      +----------+----------+
      |          |          |
     z/OS      Linux     OpenShift

Agora finalmente conseguimos enxergar os três tópicos da imagem como uma única arquitetura.


51. A fronteira definitiva

Este mapa deveria ficar na parede:

                         IBM Z HARDWARE
                              |
          +-------------------+-------------------+
          |                                       |
        z/OS                                    Linux
          |                                       |
 +--------+--------+                         OpenShift
 |        |        |                            |
CICS     IMS      Db2                        Kubernetes
 |                                               |
COBOL                                         Pods
 |                                               |
 +-- zCX                                     Containers
      |
    Linux
      |
 Containers

E separadamente:

                     IBM LinuxONE
                          |
                        Linux
                          |
                      OpenShift
                          |
                      Kubernetes
                          |
                         Pods
                          |
                      Containers

Finalmente:

                   Ansible
                      |
       +--------------+--------------+
       |              |              |
      z/OS          Linux         OpenShift

Pronto.

Agora acabou a sopa de letrinhas.


52. As diferenças que você NÃO pode confundir

z/OS

Sistema operacional principal da plataforma IBM Z.

USS

Ambiente UNIX/POSIX do z/OS.

Linux on Z

Linux executando na arquitetura IBM Z.

zCX

Tecnologia do z/OS para hospedar workloads Linux containerizados próximos do ambiente z/OS.

LinuxONE

Plataforma IBM voltada a Linux.

Kubernetes

Orquestrador de aplicações containerizadas.

OpenShift

Plataforma empresarial Kubernetes da Red Hat.

Ansible

Automação de infraestrutura e aplicações.

Essas oito definições resolvem talvez 70% das confusões iniciais.


53. O que um programador COBOL deveria estudar primeiro?

Minha trilha seria:

Fase 1 — Linux básico

Aprenda:

filesystem
process
permissions
SSH
environment variables
TCP/IP
packages
systemd
shell

Não precisa virar sysadmin Linux.

Precisa deixar de considerar /etc território inimigo.


Fase 2 — containers

Aprenda:

image
container
registry
Dockerfile/Containerfile
volume
port
environment variable

Faça manualmente.

Suba uma aplicação.

Mate.

Suba novamente.


Fase 3 — Kubernetes

Aprenda:

Pod
Deployment
ReplicaSet
Service
Namespace
ConfigMap
Secret
PersistentVolume

Não comece por Operators.

Não comece por service mesh.

Não comece por Istio.

Não comece por 73 certificações.


Fase 4 — OpenShift

Só depois.

Entenda:

oc
projects
routes
operators
builds
security
cluster administration

Fase 5 — IBM Z integration

Volte para casa:

z/OS Connect
MQ
CICS
Db2
IMS
zCX
Linux on Z

Agora você perceberá que não abandonou o mainframe.

Você apenas aumentou o mapa.


Fase 6 — Ansible

Automatize coisas que você já sabe fazer manualmente.

Regra fundamental:

nunca automatize aquilo que você ainda não entende.

Primeiro:

criar dataset manualmente

Depois:

automatizar dataset

Primeiro:

submeter job

Depois:

automatizar job

Primeiro:

deploy manual

Depois:

playbook

Essa sequência transforma Ansible em ferramenta.

Fazer o contrário transforma Ansible em gerador industrial de incidentes.


54. O primeiro exercício Ansible mental

Desejo:

“Quero que o dataset USER.BELLACOSA.TEST exista.”

Estado atual:

não existe

Playbook:

desired state = present

Resultado:

dataset criado

Execute novamente.

Estado atual:

já existe

Resultado:

nenhuma alteração necessária

Isso é idempotência.

Entendeu isso?

Você entendeu uma parte essencial do Ansible.


55. Segundo exercício: deployment

Agora:

SOURCE
   |
 Git
   |
Ansible
   |
   +---- copy
   |
   +---- compile
   |
   +---- link-edit
   |
   +---- deploy
   |
   +---- validate

O COBOL continua COBOL.

O load module continua load module.

O que mudou?

O processo ao redor dele.

Isso é modernização.


56. Terceiro exercício: automação híbrida

Imagine:

Playbook
 |
 +--- valida CICS
 |
 +--- atualiza recurso z/OS
 |
 +--- atualiza microservice OpenShift
 |
 +--- executa teste
 |
 +--- verifica retorno

Agora um único processo de mudança conhece os dois lados:

SYSTEM OF RECORD
+
SYSTEM OF ENGAGEMENT

Essa é uma das fronteiras mais interessantes para profissionais de mainframe nos próximos anos.


57. Onde está o verdadeiro valor para um COBOLzeiro?

Não é decorar:

kubectl get pods

Isso qualquer tutorial ensina.

Seu valor aparece quando você consegue olhar:

OpenShift
   |
microservice
   |
REST
   |
z/OS Connect
   |
CICS
   |
COBOL
   |
Db2

e compreender a transação inteira.

O desenvolvedor cloud talvez conheça os primeiros quatro blocos.

O sysprog talvez conheça os últimos quatro.

Quem entende os dois lados se torna extremamente útil.


58. O profissional em formato T

Essa trilha cria exatamente isso.

Profundidade:

COBOL
CICS
Db2
z/OS

Amplitude:

Linux
containers
Kubernetes
OpenShift
Ansible
APIs
DevOps
Git

Não tente competir com um administrador Kubernetes que trabalha dez horas por dia com Kubernetes.

Não precisa.

Seu diferencial é:

“Eu consigo explicar o que acontece desde o pod até o COMMAREA.”

Esse profissional é raro.


59. Easter egg final — o mainframe nunca saiu da moda; apenas mudaram os nomes

Compare:

WLM
scheduler
workload
resource management
automation
virtualization
security
high availability

com:

Kubernetes scheduler
resource limits
orchestration
virtualization/containerization
RBAC
self-healing

Não são equivalentes.

Mas respondem a famílias semelhantes de problemas.

Por isso o mainframer veterano possui uma vantagem inesperada.

Você não começa do zero.

Você já conhece problemas de computação empresarial que o restante da indústria redescobriu em novas camadas.

O segredo é parar de perguntar:

“Qual comando Kubernetes corresponde a este comando z/OS?”

e começar a perguntar:

“Qual problema arquitetural cada tecnologia está resolvendo?”

Aí a ficha cai.


60. Mapa mental definitivo

                    MODERN ENTERPRISE
                           |
        +------------------+------------------+
        |                                     |
      IBM Z                              IBM LinuxONE
        |                                     |
 +------+-------+                            Linux
 |              |                              |
z/OS          Linux                         OpenShift
 |              |                              |
 |          OpenShift                      Kubernetes
 |              |                              |
 |          Kubernetes                       Pods
 |              |                              |
 |             Pods                        Containers
 |              |
 |          Containers
 |
 +--- CICS
 +--- IMS
 +--- Db2
 +--- COBOL
 +--- MQ
 +--- z/OS Connect
 |
 +--- zCX
       |
      Linux
       |
   Containers


                  AUTOMATION LAYER
                        |
                      Ansible
                        |
       +----------------+----------------+
       |                |                |
      z/OS            Linux          OpenShift

Esse desenho é provavelmente a coisa mais importante de todo o material.


61. As dez perguntas que você deve conseguir responder

Quando terminar o estudo inicial, responda sem consultar Google:

  1. Um container é uma VM?

  2. zCX significa que Linux virou parte do kernel z/OS?

  3. USS é Linux?

  4. Qual a diferença entre IBM Z e LinuxONE?

  5. Onde OpenShift executa?

  6. Qual a relação entre Kubernetes e OpenShift?

  7. O que é um Pod?

  8. O que significa desired state?

  9. O que Ansible automatiza no z/OS?

  10. Por que um programa COBOL continua relevante numa arquitetura cloud-native?

Se responder corretamente, você deixou de ser turista.

Agora já tem mapa.


62. Cheat sheet Bellacosa Mainframe

CONTAINER
Aplicação + dependências empacotadas.

IMAGE
Modelo imutável usado para criar containers.

REGISTRY
Repositório de imagens.

KUBERNETES
Orquestra workloads containerizados.

POD
Unidade básica de execução do Kubernetes.

NODE
Máquina participante do cluster.

CLUSTER
Conjunto administrado pelo Kubernetes.

DEPLOYMENT
Declara como uma aplicação deve existir.

SERVICE
Oferece acesso lógico aos pods.

OPENSHIFT
Plataforma Kubernetes empresarial da Red Hat.

IBM Z
Plataforma enterprise que pode executar z/OS e Linux.

LINUXONE
Plataforma IBM orientada a Linux.

USS
Ambiente UNIX do z/OS.

zCX
Ambiente de containers Linux integrado ao universo z/OS.

ANSIBLE
Automação declarativa de TI.

PLAYBOOK
Workflow Ansible escrito normalmente em YAML.

MODULE
Unidade funcional que executa uma tarefa.

COLLECTION
Pacote organizado de módulos/plugins/roles.

INVENTORY
Lista e agrupamento dos sistemas administrados.

IDEMPOTÊNCIA
Reexecutar procurando o mesmo estado sem provocar mudanças desnecessárias.

ibm_zos_core
Collection fundamental para automação z/OS com Ansible.

63. O conselho do velho COBOLzeiro

Não estude essas tecnologias como três disciplinas independentes.

A sequência lógica é:

           z/OS
             |
            zCX
             |
          container
             |
         Kubernetes
             |
          OpenShift
             |
          Ansible

Mas arquiteturalmente a visão correta é uma rede:

                   Ansible
                      |
     +----------------+----------------+
     |                |                |
    z/OS            Linux          OpenShift
     |                                 |
    zCX                            Kubernetes
     |                                 |
Containers                         Containers

E no centro de tudo continuam os dados.

                    DATA
                     |
                TRANSACTION
                     |
                   COBOL
                     |
              APIs / Events
                     |
                OpenShift
                     |
              Digital World

☕ Conclusão — Não é só container. É estratégia.

O jovem desenvolvedor olha para IBM Z e enxerga algo antigo.

O COBOLzeiro olha para Kubernetes e enxerga algo estranho.

Os dois estão olhando errado.

O IBM Z moderno pode conversar com Linux, containers, APIs, OpenShift, Kubernetes, Ansible, Git e pipelines DevOps sem deixar de fazer aquilo que aprendeu a fazer excepcionalmente bem: processar transações críticas e manter sistemas de registro funcionando.

zCX representa uma ponte.

Kubernetes representa orquestração.

OpenShift transforma essa orquestração em uma plataforma empresarial.

Ansible amarra automação entre mundos.

E LinuxONE demonstra que a arquitetura IBM Z não precisa obrigatoriamente significar z/OS.

O objetivo não é transformar o COBOLzeiro em administrador Kubernetes em uma semana.

É muito mais valioso.

É permitir que ele olhe para um diagrama moderno e diga:

“Ahhh... agora entendi onde cada coisa mora.”

E depois faça a pergunta que realmente assusta o arquiteto:

“Muito bonito. Agora me mostra por onde passa a transação.”

Nesse momento o Padawan deixou de decorar buzzwords.

Começou a fazer arquitetura.

Para ir mais longe


https://eljefemidnightlunch.blogspot.com/2026/07/capitulo-1-o-funeral-que-nunca-aconteceu.html



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...