Docker: quando uma solução simples se transforma em dívida técnica

Durante anos o Docker foi apresentado como a solução definitiva para empacotamento e distribuição de aplicações. No entanto, à medida que infraestruturas cresceram em escala e criticidade, diversas limitações estruturais começaram a aparecer. Neste artigo discutimos por que a PopSolutions decidiu reduzir drasticamente o uso de Docker em ambientes críticos

O surgimento do Docker

Quando surgiu, o Docker resolveu um problema real.

Desenvolvedores precisavam de uma forma simples de empacotar aplicações junto com suas dependências.

O Docker ofereceu exatamente isso:

  • imagens reproduzíveis
  • ambientes isolados
  • deploy rápido

Para ambientes de desenvolvimento e pequenos serviços, isso representou um grande avanço.

O problema começou quando o Docker passou a ser usado como fundação de infraestrutura crítica.


Docker não é um runtime minimalista

Muita gente imagina que Docker seja apenas um mecanismo de isolamento leve.

Na realidade, o Docker adiciona uma camada extremamente complexa entre o sistema operacional e as aplicações.

Essa camada inclui:

  • daemon privilegiado (dockerd)
  • sistema de build de imagens
  • registry de distribuição
  • drivers de rede
  • drivers de storage

Ou seja: Docker é um grande subsistema.

E como todo subsistema complexo, ele amplia a superfície de ataque.


O daemon privilegiado

Um dos aspectos mais criticados do Docker é o seu modelo de segurança.

O daemon dockerd roda com privilégios de root.

Qualquer processo com acesso ao socket Docker tem potencial de escalar privilégios no host.

Isso significa que:

  • containers podem escapar
  • processos podem comprometer o host
  • uma falha no daemon compromete toda a máquina

Esse modelo é considerado inadequado em diversos ambientes de alta segurança.


O efeito WordPress da infraestrutura

Com o tempo, Docker se tornou algo semelhante ao que o WordPress é para a web.

Uma solução extremamente popular, mas frequentemente usada sem entendimento profundo da arquitetura.

Isso levou a cenários como:

  • imagens gigantescas
  • camadas inseguras
  • pipelines de build frágeis
  • dependência excessiva de registries externos

O resultado é uma infraestrutura que parece simples, mas na realidade possui uma cadeia de dependências extremamente frágil.


Camadas sobre camadas

Outro problema estrutural é o modelo de imagens em camadas.

Embora eficiente para distribuição, esse modelo cria desafios operacionais:

  • auditoria de segurança difícil
  • herança de vulnerabilidades entre imagens
  • dependência de imagens base externas

Em muitos casos, imagens Docker carregam dezenas ou centenas de pacotes desnecessários.

Isso aumenta drasticamente a superfície de ataque.


Infraestrutura não deve depender de hacks

Na prática, grande parte do ecossistema Docker evoluiu através de soluções improvisadas.

Plugins de rede.

drivers de storage.

scripts de orquestração.

Essa abordagem funcionou bem para startups e ambientes experimentais.

Mas não é necessariamente adequada para infraestruturas que precisam operar por décadas.


Repensando a base da infraestrutura

Por essas razões, muitas organizações começaram a repensar o papel do Docker.

Em vez de tratá-lo como base da infraestrutura, passaram a utilizá-lo apenas como ferramenta de build ou desenvolvimento.

No próximo artigo explicaremos a decisão da PopSolutions de migrar para dois modelos mais robustos:

  • Kubernetes para grandes plataformas distribuídas
  • sistemas pré-integrados para serviços simples

Comece a escrever aqui...

Sign in to leave a comment
Soberania digital: por que construir nossa própria infraestrutura
Durante décadas a internet foi apresentada como um espaço universal e descentralizado. No entanto, a infraestrutura que sustenta grande parte da rede global hoje está concentrada nas mãos de poucas empresas. Neste último artigo da série discutimos por que construir infraestrutura própria é um passo fundamental para garantir autonomia tecnológica, inovação e independência no mundo digital.