1

O Docker é uma ideia de 1956: a história do contêiner, do navio ao Kubernetes

Em abril de 1956, um navio saiu de Newark para Houston levando 58 caixas de metal, todas do mesmo tamanho. Até então, carregar um navio era encher o porão de sacos, barris e caixotes, um por um, e isso levava dias. Com a caixa padronizada, o guindaste não precisa saber o que tem dentro: ele só pega a caixa. O custo de carregar despencou, e o comércio mundial mudou por causa de uma caixa.

Quase sessenta anos depois, o software tinha o mesmo problema dos sacos e barris. Cada aplicação dependia de uma versão de biblioteca, de uma configuração, de um sistema operacional, e a frase mais ouvida em qualquer equipe era "mas na minha máquina funciona".

O curioso é que as peças para resolver isso já existiam havia muito tempo:

  • chroot (Unix, 1979): prende um processo numa pasta, como se ela fosse a raiz do sistema.
  • jails (FreeBSD, 2000): isolam também os processos e a rede.
  • namespaces e cgroups (Linux, anos 2000): cada processo vê só os seus recursos e tem limites de CPU e memória.

O que faltava era a caixa padronizada: um jeito simples de empacotar a aplicação com tudo o que ela precisa e rodar igual em qualquer lugar.

Isso veio em março de 2013, numa palestra relâmpago de cinco minutos na PyCon. Uma pequena empresa de hospedagem, a dotCloud, mostrou a ferramenta interna que usava para rodar as aplicações dos clientes. Chamava-se Docker. Cinco minutos bastaram: o projeto foi aberto, a empresa mudou de nome para Docker e o resto é história.

A ideia cabe em três palavras:

  • a receita (o Dockerfile): o que vai dentro da caixa;
  • a caixa (a imagem): a aplicação já empacotada, sempre igual;
  • o contêiner: a caixa rodando.

Depois vieram o Kubernetes (2014), para mover milhares dessas caixas como um porto faz com os navios, e a Open Container Initiative (2015), que padronizou o formato da caixa para que ela não dependesse de uma empresa só. Como o contêiner de navio, que só mudou o mundo quando todos os portos aceitaram o mesmo tamanho.

Fiz um vídeo de 4 minutos contando essa história, com as imagens de arquivo dos portos de 1956 e um Docker de verdade rodando no terminal:

https://youtu.be/gZEP6b_Fs00

Vocês conhecem outra tecnologia que nasceu de uma ideia de fora da computação?

Carregando publicação patrocinada...