Mas, durante a maior parte do mercado, os contêineres atingiram oficialmente o radar em 2013 com a introdução do Docker e começaram a integrar o Docker 1.0 em 2015. A ampla adoção do Docker nos 2010 foi uma revolução para os desenvolvedores e preparou o cenário para o que agora é chamado de desenvolvimento nuvem-nativo. O ambiente de aplicação hermético do Docker resolveu o meme da indústria de longa data de “It funciona na minha máquina” e substituiu ferramentas de desenvolvimento pesado e mutável, como o Vagrant, com os padrões imutáveis de dockerfiles e imagens de contêineres. Essa mudança permitiu um novo renascimento nos sistemas de desenvolvimento de aplicativos, implantação e integração contínua (IC). Obviamente, também inaugurou a era da arquitetura de aplicativos nativos da nuvem, que sofreu adoção em massa e se tornou a arquitetura em nuvem padrão.
O formato de contêiner era a tecnologia certa na hora certa – criando tanta agilidade para os desenvolvedores. As máquinas virtuais, em comparação, pareciam caras, pesadas e complicadas de se trabalhar e, mais condenatórias -, pensavam em algo que você tinha que esperar “isso” para provisão, em um momento em que as nuvens públicas possibilitarem que os desenvolvedores simplesmente pegassem sua própria infraestrutura sem passar por um modelo de TI centralizado.
As virtudes das máquinas virtuais
Quando os contêineres foram introduzidos pela primeira vez nas massas, a maioria das máquinas virtuais foi embalada como aparelhos. O modelo de consumo era geralmente pilhas de VMware pesadas, exigindo hosts de VM dedicados. O licenciamento nesse modelo era (e ainda é) muito caro. Hoje, quando a maioria das pessoas ouve o termo “virtualização”, elas pensam automaticamente em pilhas pesadas com latência de inicialização, não portabilidade e ineficiência de recursos. Se você pensa em um contêiner como um pequeno laptop, uma máquina virtual é como um servidor de 1.000 libras.
