Você está na página 1de 4

Antes de vermos sobre o Docker, precisamos saber mais como hospedamos aplicaes e como

surgiram os containers.

A evoluo do host de aplicaes


Antigamente, quando queramos montar o nosso sistema, com vrios servios (bancos de dados,
proxy, etc) e aplicaes, acabvamos tendo vrios servidores fsicos, cada um com um servio ou
aplicao do nosso sistema, por exemplo:

E claro, no conseguimos instalar os servios diretamente no hardware do servidor, ou seja,


precisamos de um intermedirio entre as aplicaes e o hardware, que o sistema operacional. Ou
seja, devemos instalar sistemas operacionais em cada servidor, e os sistemas poderiam ser
diferentes:

E se quisermos que uma aplicao se comunique com outra ou faa qualquer comunicao externa,
devemos conectar os servidores rede. Alm disso, para eles funcionarem, precisamos lig-los
eletricidade. Logo, havia diversos custos de eletricidade, rede e configurao dos servidores.
Alm disso, o processo era lento, j que a cada nova aplicao, deveramos comprar/montar o
servidor fsico, instalar o sistema operacional, configur-lo e subir a aplicao.

Capacidade pouco aproveitada


O que foi falado anteriormente no era o nico problema desse tipo de arquitetura. Era muito
comum termos servidores parrudos, com uma nica aplicao sendo executada, para normalmente
ficarem funcionando abaixo da sua capacidade, para quando for necessrio, o servidor aguentar uma
grande quantidade de acessos. Isso resultava em muita capacidade ociosa nos servidores, com
muitos recursos desperdiados.
Virtualizao, uma soluo?
Para fugir desses problemas de servidores ociosos e alto tempo e custo de subir e manter aplicaes
em servidores fsicos, surgiu como soluo a virtualizao, surgindo assim as mquinas virtuais.
As mquinas virtuais foram possveis de ser criadas graas a uma tecnologia chamada Hypervisor,
que funciona em cima do sistema operacional, permitindo a virtualizao dos recursos fsicos do
nosso sistema. Assim, criamos uma mquina virtual que tem acesso a uma parte do nosso HD,
memria RAM e CPU, criando um computador dentro de outro:

E se temos uma mquina virtual que est acessando uma parte do nosso hardware como um todo,
conseguimos colocar dentro dela uma das nossas aplicaes. E replicar isso, criando mais mquinas
virtuais com outras aplicaes:
Assim, reduzimos a quantidade de servidores e consequentemente os custos com luz e rede. Alm
disso, dividimos melhor o nosso hardware, aproveitando melhor os seus recursos e diminuindo a
ociosidade.

Problemas das mquinas virtuais


Apesar de resolver os problemas do uso de vrios servidores fsicos, as mquinas virtuais tambm
possuem problemas. Para podermos hospedar a nossa aplicao em uma mquina virtual, tambm
precisamos instalar um sistema operacional nela:
Cada aplicao necessita de um sistema operacional para poder ser executada, e esses sistemas
podem ser diferentes. E apesar dos sistemas operacionais serem um software, eles possuem um
custo de memria RAM, disco e processamento. Ou seja, precisamos de uma capacidade mnima
para manter as funcionalidade de um sistema operacional, aumentando o seu custo de manuteno a
cada sistema que tivermos.
Alm disso, h um custo de configurao, isto , liberar portas, instalar alguma biblioteca
especfica, etc, toda uma configurao que um sistema operacional pede. Tambm devemos sempre
estar atentos sua segurana, mantendo o sistema de cada mquina virtual sempre atualizado.
Muitas vezes, o tempo voltado para a manuteno das mquinas virtuais era o mesmo tempo
voltado para a nossa aplicao em si. Ou seja, acabvamos dividindo o valor da nossa empresa, ao
invs de focar somente nas aplicaes, dividamos o trabalho com a manuteno dos sistemas
operacionais.
Ento, como melhorar essa situao? Da surgiram containers, que sero vistos no prximo vdeo.