segunda-feira, 29 de junho de 2026

As habilidades que mais me ajudaram na carreira (e não foram técnicas)


E aí pessoal. Tudo bem?

Durante muito tempo achei que minha evolução na carreira dependeria apenas de aprender novas tecnologias.


Depois de participar de diferentes projetos, lidar com incidentes, mudanças de ambiente e trabalhar com equipes multidisciplinares, percebi que algumas habilidades fizeram muito mais diferença do que eu imaginava.


💬 Comunicação


Não basta saber resolver um problema ou explicar todos os detalhes técnicos durante uma reunião se o seu público não for 100% técnico.

É preciso explicar soluções, alinhar expectativas, registrar decisões e conversar com pessoas de diferentes áreas.

De forma geral, você precisa se fazer entender.


📋 Organização


Projetos envolvem prioridades, prazos e diversas demandas simultâneas.

Ser organizado reduz retrabalho e aumenta a confiança da equipe.

Tempo é uma das moedas mais valiosas que temos hoje, tanto no mercado de trabalho quanto na vida pessoal.


📚 Documentação


A documentação não serve apenas para quem chega depois.

Ela economiza tempo, reduz erros e facilita a continuidade dos projetos.

Mas lembre-se: Ela precisa ser objetiva, contextualizada e fácil de manter.


🔎 Curiosidade


Grande parte do que aprendi veio da vontade de entender como as coisas realmente funcionam.

Perguntar, pesquisar e experimentar sempre acelerou meu aprendizado.

Também aprendi que vale muito a pena se aproximar de outras áreas e de outros times. Isso amplia a visão do negócio, ajuda a entender o contexto como um todo e torna as conversas muito mais produtivas. Não olhar apenas para o próprio "quadrado" faz diferença.


🚀 Aprendizado contínuo


Na tecnologia, tudo muda muito rápido. Ainda mais nos dias atuais.

O aprendizado deixou de ser um diferencial. Hoje ele faz parte da profissão.

Mais importante do que conhecer uma ferramenta específica é desenvolver o hábito de aprender constantemente.


🤝 Trabalho em Equipe


Os melhores resultados que participei nunca foram fruto de uma única pessoa.

Compartilhar conhecimento, ouvir opiniões e colaborar faz toda a diferença.

Quem nunca trabalhou com aquele profissional que parece ser o único capaz de resolver determinados problemas?

Durante a minha carreira encontrei vários profissionais assim. Embora sejam extremamente competentes, esse cenário normalmente revela um problema do processo, não da pessoa. Quando o conhecimento fica concentrado, surgem dependências desnecessárias, documentações frágeis e uma equipe menos preparada para crescer.


Hoje continuo estudando novas tecnologias, mas valorizo cada vez mais essas habilidades. São elas que transformam conhecimento técnico em resultados, fortalecem equipes e fazem diferença no longo prazo.


E para você?

  • Qual habilidade não técnica mais impactou sua carreira?
  • Existe alguma habilidade que você gostaria de ter desenvolvido antes?


A tecnologia abre portas. São as habilidades humanas que ajudam a permanecer, crescer e gerar impacto dentro delas."


#Liderança #Tecnologia #SoftSkills

terça-feira, 23 de junho de 2026

Do Monolito ao AKS: A Tecnologia é apenas a Ponta do Iceberg


Fala pessoal, tudo certo?

Migrar para Kubernetes (AKS) é 20% tecnologia e 80% mudança de mentalidade arquitetural.

Muitas organizações cometem o erro de acreditar que a jornada para o Cloud-Native se resume a "conteinerizar" aplicações legadas e movê-las para um cluster. Ou ainda “pior”, criar instâncias e bancos de dados como se fossem servidores tradicionais/VMs. No entanto, a verdadeira eficiência do Kubernetes não é extraída através de um simples lift and shift (da forma que está hoje), mas sim através de uma reestruturação profunda no pensamento arquitetural.

Em minha experiência coordenando ecossistemas complexos, identifiquei três pilares fundamentais para que essa transição seja bem-sucedida:

        1. A Disciplina do Stateless vs. Stateful

Stateless modelo de arquitetura onde cada requisição é tratada de forma independente, sem que o servidor precise armazenar ou "lembrar" de dados de sessões anteriores entre as interações. Forma simples de decorar "Não lembra do passado".

Stateful - Modelo de arquitetura em que o sistema mantém e utiliza informações de estado entre as interações, permitindo que requisições futuras dependam de dados ou contexto armazenados anteriormente. Forma simples de decorar "Lembra do passado".

No mundo dos containers, a efemeridade é a regra. Uma arquitetura preparada para AKS deve priorizar o modelo Stateless. Se uma instância for interrompida, o sistema deve ser capaz de continuar a operação sem perda de contexto ou sessão. O gerenciamento de estados deve ser delegado a serviços externos de banco de dados ou cache, permitindo que o Kubernetes exerça sua função primordial: a orquestração dinâmica e a escalabilidade elástica.

        2. A Inteligência das Probes (Liveness e Readiness)

Liveness Probe: Verifica se a aplicação está viva e funcionando; se falhar, o Kubernetes pode reiniciar o container.

Readiness Probe: Verifica se a aplicação está pronta para receber tráfego; se falhar, o Kubernetes para de enviar requisições para o container até que ele volte a ficar disponível.

Não basta que um container esteja "rodando"; ele precisa estar funcional. A implementação correta de Liveness e Readiness Probes é o que separa um ambiente resiliente de um ambiente instável. É necessário desenhar a aplicação para que ela informe ao orquestrador quando está pronta para receber tráfego e quando precisa ser reiniciada, garantindo que o usuário final nunca seja impactado por uma instância em processo de inicialização ou em falha parcial.

        3. Além do "Dockerize": Infraestrutura como Código (IaC)

Dockerizar (Dockerize) é o processo de empacotar uma aplicação e suas dependências em uma imagem Docker para garantir que ela execute de forma consistente em qualquer ambiente.

Modernizar não é apenas criar uma imagem Docker. É adotar a Infraestrutura como Código para garantir que o ambiente seja replicável, auditável e seguro. A arquitetura deve ser pensada para automação total, onde a configuração do cluster, as políticas de rede e os limites de recursos são definidos via código, eliminando intervenções manuais e reduzindo o risco operacional.

A jornada para o AKS exige que o arquiteto abandone a visão de "servidores de estimação" e adote uma visão de ecossistema resiliente, onde a falha é prevista e mitigada pelo próprio desenho da solução.

Como tem sido a jornada de modernização na sua empresa? Quais foram os maiores desafios arquiteturais que você encontrou ao adotar o Kubernetes?

Abs e até a próxima postagem.
:wq!

quinta-feira, 18 de junho de 2026

O Problema que Containers Resolvem!


Fala pessoal, tudo certo?

Hoje, vamos falar um pouco do "problema" que os containers vieram para resolver.
Vou colocar "problema" entre aspas, por que realmente algumas coisas dependem muito do ponto de vista, do cenário como um todo, da preferência, etc.

Mas sim... De forma geral os containers resolvem um problema =]

O Mundo Antes dos Containers

Você é o cara de infraestrutura que o time de desenvolvimento procura quando tem uma nova aplicação pronta para subir e entrar em produção.

O time te procura e fala o seguinte:

"É simples! Só precisa do Python 2.7, a biblioteca X na versão 1.2.3, a biblioteca Y na versão 2.0 e a variável de ambiente Z configurada."

Por um momento parece tranquilo. 
Você já tem um servidor em produção. Mas o servidor de produção já tem Python 2.6 instalado porque outra aplicação depende especificamente dessa versão. Se você atualizar para 2.7, a outra aplicação quebra. Se não atualizar, a nova não funciona.

Isso era chamado de dependency hell. O inferno das dependências.

As soluções que existiam e seus problemas:

1 - Colocar cada aplicação em um servidor físico dedicado. Funcionava, mas era caro, lento para provisionar e desperdiçava muito recurso - uma aplicação usando 10% da CPU enquanto o servidor ficava ocioso 90% do tempo.

2 - Máquinas Virtuais. Uma VM emula um computador inteiro, tem seu próprio sistema operacional, kernel, drivers, tudo. Você poderia ter várias VMs num servidor físico, cada uma com suas dependências isoladas. Muito melhor! Mas o problema é que cada VM carregava um sistema operacional completo, 1GB, 2GB, às vezes mais. Subir uma VM levava minutos. Rodar 50 VMs num servidor significava 50 sistemas operacionais rodando em paralelo, consumindo memória e CPU só para existir.

Mas aí meus amigos, existem os containers...

A ideia dos Containers

A principal pergunta que os engenheiros de infraestrutura fizeram, foi:

"Precisamos mesmo de um sistema operacional inteiro para cada aplicação? Ou só precisamos de isolamento?"

A resposta foi: só precisamos de isolamento.

Um container não é uma VM. Ele não emula hardware. Ele não tem um kernel próprio. Todos os containers num servidor compartilham o mesmo kernel Linux do host, mas cada um enxerga apenas o seu próprio universo isolado.

Pense assim: uma VM é como construir casas separadas para cada família. Um container é como um prédio de apartamentos. Cada família tem seu espaço isolado, com sua própria porta, mas todos compartilham a mesma fundação, encanamento e estrutura.

O resultado prático é que um container:

  • Sobe em milissegundos em vez de minutos
  • Ocupa megabytes em vez de gigabytes
  • Consome recursos apenas para a aplicação, não para um SO inteiro
  • Pode rodar dezenas ou centenas no mesmo servidor
Mas o que torna os containers possível?

Existem 3 tecnologias do linux que tornam isso possível: Namespaces - O Isolamento, Cgroups - O Controle de Recursos e Union Filesystems - As Camadas.

Vamos falar um pouco sobre cada uma delas.

Namespaces  (Isolamento)

Um namespace cria uma visão isolada de um recurso do sistema. Existem vários tipos e cada um isola uma coisa diferente.

PID Namespace isola os processos. Dentro de um container, o primeiro processo tem PID 1, mesmo que no host ele tenha PID 4382. O container enxerga apenas seus próprios processos, nunca os do host ou de outros containers.

bash
# No host você vê todos os processos
ps aux  # mostra tudo — nginx, postgres, sua aplicação, tudo

# Dentro de um container
ps aux  # mostra APENAS os processos daquele container

Network Namespace isola a rede. Cada container tem sua própria interface de rede, seu próprio endereço IP, suas próprias tabelas de roteamento. É como se cada container tivesse sua própria placa de rede virtual.

Mount Namespace isola o sistema de arquivos. O container enxerga apenas os diretórios e arquivos que foram montados para ele. Ele não tem acesso ao sistema de arquivos do host.

UTS Namespace isola o hostname. Cada container pode ter seu próprio nome de host, independente do servidor onde roda.

User Namespace isola usuários. O usuário root dentro de um container pode ser um usuário sem privilégios no host, uma camada importante de segurança.

Cgroups (Controle de Recursos)

Namespace resolve o isolamento, mas não resolve o consumo de recursos. Sem controle, um container poderia consumir toda a CPU e memória do servidor, afetando todos os outros.

Cgroups - Control Groups - é o mecanismo do Linux para limitar e monitorar o uso de recursos por grupos de processos.

Com cgroups você define que um container pode usar no máximo 2 CPUs e 512MB de memória. Se a aplicação tentar usar mais, o kernel intervém. Throttling de CPU ou OOM Kill de memória.

bash
# Você pode ver os cgroups de um container rodando
cat
/sys/fs/cgroup/memory/docker/<container-id>/memory.limit_in_bytes

Quando você escreve isso num Deployment do Kubernetes. Você limita o quanto o container pode usar:

resources:

  limits:
    cpu: "2"
    memory: "512Mi"

Union Filesystems (Camadas)

Esta é a tecnologia que torna imagens de container tão eficientes.

Uma imagem de container é composta de camadas sobrepostas. Cada instrução no Dockerfile cria uma nova camada. Essas camadas são somente leitura e podem ser compartilhadas entre múltiplas imagens.

Imagine três aplicações que todas usam Ubuntu como base. Sem camadas, cada imagem teria sua própria cópia do Ubuntu, 3 cópias de 80MB cada. Com Union Filesystem, a camada do Ubuntu existe uma única vez no disco e as três imagens apontam para ela.



Quando você roda um container, uma camada extra de escrita é adicionada no topo. É onde as mudanças acontecem durante a execução. Quando o container para, essa camada some. A imagem original nunca é modificada.

O que você aprendeu hoje é fundamental e para quem usa Kubernetes saber explicar:

Containers existem para resolver o problema de isolamento de dependências sem o overhead de máquinas virtuais. Eles funcionam usando três recursos do kernel Linux — Namespaces para isolamento, Cgroups para controle de recursos e Union Filesystems para imagens eficientes em camadas. 

Um container não é uma VM, não tem kernel próprio e não emula hardware - ele é um processo isolado rodando diretamente no kernel do host.

Por hoje é isso.

Abs e até a próxima.
:wq!

quarta-feira, 10 de junho de 2026

Checklist SRE - 100 itens para avaliar a maturidade operacional de uma aplicação


Fala pessoal, tudo bem?

Faz um tempo que não apareço por aqui, mas não quer dizer que abondei o blog e muito menos vocês! :]

Muito se fala no nosso dia-a-dia de SRE (Site Reliability Engineering / Engenharia de Confiabilidade de Sites). Uma prática que une e intensifica o trabalho conjunto entre desenvolvimento de software/aplicações e operações de tecnologia.

Só lembrando os pilares da prática de SRE:

Automação
Monitoramento e Observabilidade
Resposta a Incidentes
Planejamento de Capacidade

Mas afinal, quando temos os pilares implementados nas nossas entregas e nos sistemas que estão "rodando" já está tudo certo, não?!

Então, é aqui que moram as principais pegadinhas e vamos acabar descobrindo que algo não está correto em sua maioria, nos momentos de crises, problemas, war rooms, sistemas indisponíveis, reclamações de usuários e por aí vai.

Pensando nisso, podemos tangibilizar um pouco mais tudo isso e quebrar os pontos em um checklist completo.
Com este checklist você poderá avaliar como um todo o status de maturidade operacional da sua aplicação.

Vamos então ao checklist

Itens:

1. Observabilidade

-> Logs

  • Todos os sistemas geram logs estruturados (JSON)?
  • Existe padronização de níveis de log?
  • Logs possuem correlação entre serviços?
  • Logs sensíveis são mascarados?
  • Existe retenção definida para logs?
  • Logs estão centralizados?

-> Métricas

  • Métricas de infraestrutura são coletadas?
  • Métricas de aplicação são coletadas?
  • Métricas de negócio são coletadas?
  • Existe monitoramento de latência?
  • Existe monitoramento de throughput?
  • Existe monitoramento de erros?

-> Tracing

  • Distributed Tracing está implementado?
  • É possível rastrear uma requisição ponta a ponta?
  • Existe correlação entre logs e traces?
  • Serviços críticos possuem tracing habilitado?

2. SLI, SLO e Error Budget

-> SLI

  • Os indicadores de confiabilidade estão definidos?
  • Existem SLIs para disponibilidade?
  • Existem SLIs para latência?
  • Existem SLIs para taxa de erro?

-> SLO

  • Todos os serviços críticos possuem SLO?
  • Os SLOs são revisados periodicamente?
  • Os SLOs refletem a experiência do usuário?

-> Error Budget

  • Error Budget está definido?
  • Existe política para consumo do budget?
  • Deploys são restringidos quando o budget é consumido?

3. Monitoramento e Alertas

-> Alertas

  • Alertas possuem contexto suficiente?
  • Existe runbook associado ao alerta?
  • Há separação entre alertas críticos e informativos?
  • Os alertas são revisados periodicamente?

-> Redução de Ruído

  • Há controle de alert fatigue?
  • Existem alertas duplicados?
  • Existe deduplicação?

-> Escalonamento

  • Existe política de escalonamento?
  • Existe plantão definido?
  • Há cobertura 24x7 para sistemas críticos?

4. Gestão de Incidentes

-> Processo

  • Existe processo formal de incidentes?
  • Existem níveis de severidade?
  • Os responsáveis são conhecidos?

-> Comunicação

  • Existe canal de crise?
  • Existe comunicação para stakeholders?
  • Existe comunicação para clientes?

-> Pós-Mortem

  • Todo incidente gera post mortem?
  • O foco é aprendizado e não culpabilização?
  • Existe acompanhamento das ações corretivas?

5. Confiabilidade da Aplicação

-> Resiliência

  • Circuit Breaker implementado?
  • Retry implementado?
  • Timeout configurado?
  • Bulkhead implementado?

-> Dependências

  • Dependências externas são monitoradas?
  • Há fallback para falhas externas?
  • Existe degradação controlada?

6. Disponibilidade

-> Arquitetura

  • Existe alta disponibilidade?
  • Existe redundância?
  • Existe balanceamento de carga?

-> Infraestrutura

  • Ambientes são distribuídos?
  • Existem múltiplas zonas?
  • Existe estratégia Multi-AZ?

7. Deploy e Entrega

-> CI/CD

  • Deploy é automatizado?
  • Existe rollback automatizado?
  • Existe validação automática?

-> Estratégias

  • Blue/Green implementado?
  • Canary Release implementado?
  • Feature Flags utilizadas?

8. Segurança Operacional

-> Controle

  • MFA habilitado?
  • Menor privilégio aplicado?
  • Credenciais rotacionadas?

-> Auditoria

  • Logs de auditoria são mantidos?
  • Existe rastreabilidade de alterações?
  • Mudanças críticas são registradas?

9. Backup e Recuperação

-> Backup

  • Existe política de backup?
  • Backups são automatizados?
  • Backups são monitorados?

-> Disaster Recovery

  • Existe plano DR?
  • Existe RTO definido?
  • Existe RPO definido?
  • DR é testado regularmente?

10. Capacidade e Performance

-> Capacidade

  • Existe Capacity Planning?
  • Crescimento é monitorado?
  • Existe previsão de demanda?

-> Performance

  • Testes de carga são executados?
  • Testes de stress são executados?
  • Existe baseline de performance?

11. Automação Operacional

-> Runbooks

  • Existe runbook para incidentes críticos?
  • Runbooks são atualizados?
  • Runbooks são testados?

-> Automação

  • Existe auto-remediação?
  • Existe automação de tarefas repetitivas?
  • Existe automação de provisionamento?

12. Cultura SRE

-> Colaboração

  • Existe parceria entre Dev e Ops?
  • Times compartilham responsabilidades?
  • Existe cultura de melhoria contínua?

-> Indicadores

  • MTTR é monitorado?
  • MTTD é monitorado?
  • MTBF é monitorado?

-> Aprendizado

  • Lições aprendidas são documentadas?
  • Existe acompanhamento das melhorias?
  • Existe roadmap de confiabilidade?
Ok, preenchemos todo checklist e já sabemos o que temos e o que não temos. 
Hummmm ... Que tal agora gerar um socre de maturidade SRE?

Aqui pode ser uma "cereja" do bolo, principalmente para tirarmos uma foto inicial e pós implementação do trabalho de correção e adequação do que ainda precisamos ter ou até mesmo, aquela foto "bonita" de que não tínhamos nada e conseguimos evoluir para algum nível de maturidade.

Score de Maturidade SRE

Pontuação:


Chegou até aqui? Então tenho um bônus para você!

Preparei um Checklist de SRE em Excel para facilitar a avaliação da maturidade da sua aplicação.

É simples: marque "Sim" para os itens já implementados e "Não" para aqueles que ainda precisam de atenção. Ao final, a planilha calculará automaticamente sua pontuação e exibirá o nível de maturidade correspondente, ajudando a identificar oportunidades de evolução na sua operação.

Faça o download, preencha o checklist e descubra em que estágio de maturidade SRE sua aplicação se encontra. 🚀


📥 Baixar Checklist de SRE


Obrigado pessoal e até a próxima!
:wq!

sábado, 7 de fevereiro de 2026

AIOps e Zero Trust: A Convergência Essencial para a Infraestrutura de TI em 2026

Olá, pessoal!

No cenário tecnológico em constante evolução de 2026, a infraestrutura de TI enfrenta desafios sem precedentes. Com a crescente complexidade dos sistemas distribuídos, a proliferação de dados e a sofisticação das ameaças cibernéticas, as abordagens tradicionais de gerenciamento e segurança já não são suficientes. É nesse contexto que duas tendências poderosas — AIOps (Inteligência Artificial para Operações de TI) e Zero Trust (Confiança Zero) — não apenas ganham destaque, mas se tornam pilares fundamentais para a resiliência e eficiência das operações de TI modernas.
Em nosso blog, já exploramos os fundamentos da computação distribuída e a importância da privacidade digital. Agora, vamos mergulhar em como a inteligência artificial está revolucionando a forma como gerenciamos e protegemos esses ambientes complexos, e como a filosofia Zero Trust se alinha perfeitamente a essa nova era.

AIOps 2.0: Monitoramento Inteligente e Autônomo

AIOps é a aplicação de inteligência artificial e machine learning para automatizar e aprimorar as operações de TI. Não se trata apenas de coletar mais dados, mas de extrair insights acionáveis em tempo real de grandes volumes de informações geradas por sistemas, redes e aplicações. Em 2026, estamos entrando na era da AIOps 2.0, onde a IA generativa e a observabilidade total transformam o monitoramento de reativo para preditivo e proativo.

Como a AIOps Transforma as Operações:

Detecção Preditiva de Falhas: Algoritmos de ML analisam padrões históricos para prever falhas antes que ocorram, permitindo intervenções preventivas.
Análise de Causa Raiz Automatizada: A IA correlaciona eventos de diferentes fontes para identificar rapidamente a causa raiz de problemas, reduzindo o tempo de inatividade (MTTR - Mean Time To Resolution).
Otimização de Recursos: AIOps pode sugerir ajustes dinâmicos na alocação de recursos (CPU, memória, rede) para otimizar custos e performance em ambientes de nuvem e híbridos.
Automação Inteligente: Com base nos insights gerados, a AIOps pode acionar automações para resolver problemas comuns sem intervenção humana, liberando equipes para tarefas mais estratégicas.

Zero Trust: O Novo Paradigma de Segurança

Enquanto a AIOps otimiza a operação, o modelo Zero Trust redefine a segurança. A premissa fundamental é simples: "Nunca confie, sempre verifique". Isso significa que nenhuma entidade (usuário, dispositivo, aplicação) é automaticamente confiável, independentemente de estar dentro ou fora do perímetro da rede. Toda tentativa de acesso deve ser autenticada e autorizada continuamente.

Princípios Fundamentais do Zero Trust:

Verificar Explicitamente: Autenticar e autorizar cada solicitação de acesso com base em todos os pontos de dados disponíveis, incluindo identidade do usuário, localização, saúde do dispositivo e sensibilidade do recurso.
Acesso com Privilégio Mínimo: Conceder apenas o acesso necessário para completar uma tarefa específica, e por um período limitado.
Assumir Violação: Operar com a mentalidade de que uma violação é inevitável e, portanto, segmentar a rede, monitorar o tráfego e ter planos de resposta a incidentes robustos.

A Convergência: AIOps e Zero Trust Juntos

A verdadeira força dessas tendências emerge quando AIOps e Zero Trust trabalham em conjunto. A AIOps fornece a inteligência e a automação necessárias para implementar e manter um ambiente Zero Trust eficaz.
Monitoramento Contínuo da Confiança: AIOps pode analisar continuamente o comportamento de usuários e dispositivos, identificando anomalias que possam indicar uma ameaça, mesmo após a autenticação inicial.
Resposta Automatizada a Ameaças: Se a AIOps detecta um comportamento suspeito que viola os princípios Zero Trust, ela pode acionar automaticamente ações de segurança, como isolar um dispositivo ou revogar o acesso de um usuário.
Otimização da Política Zero Trust: A IA pode ajudar a refinar as políticas de acesso de privilégio mínimo, garantindo que sejam eficazes sem prejudicar a produtividade.

O Futuro da Infraestrutura de TI é Inteligente e Seguro

Em 2026, a adoção de AIOps e Zero Trust não é mais uma opção, mas uma necessidade estratégica. Eles representam a evolução natural da gestão e segurança de TI em um mundo cada vez mais conectado e ameaçado. Ao integrar inteligência artificial nas operações e adotar uma postura de desconfiança zero, as organizações podem construir infraestruturas mais resilientes, eficientes e, acima de tudo, seguras.

E você, já está implementando AIOps ou Zero Trust em sua infraestrutura? Compartilhe suas experiências nos comentários!

Até a próxima.
:wq!