Estudo de contêineres

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Conceitos gerais

Contêiner

  • Ambiente isolado que empacota a aplicação e suas dependências;
  • Compartilham o kernel do sistema operacional de gerência;
  • Inicia instantaneamente e usa menos CPU e memória RAM que uma máquina virtual;
  • O foco é a aplicação que se deseja rodar;
  • É portátil pois contém a aplicação com tudo que a mesma necessita para funcionar;
  • Pode ser facilmente replicado;
  • Permite a execução de diversos ambientes em um mesmo sistema, não necessitando ter diversos sistemas operacionais completos para isso;

Máquina Virtual

  • Abstrai (virtualiza) o hardware;
  • O hypervisor permite que múltiplas máquinas virtuais sejam executadas em uma máquina física;
  • Cada máquina virtual contém uma cópia completa do sistema operacional, binários e bibliotecas, consumindo giga bytes em espaço em armazenamento, além de memória RAM e CPU;
  • O foco está na virtualização completa de um ambiente físico;
  • Tende a ser mais lento em decorrência da virtualização de hardware;

Contêiner versus Máquina Virtual

Conteiner-vs-mv2.png

Sistemas Operacionais

Logo-SOs4.png

Com relação aos sistemas operacionais focados em contêineres, há o Fedora CoreOS, antigo Container Linux by CoreOS e o openSUSE MicroOS, da SUSE Linux, cuja base é outro sistema operacional comunitário da empresa, o openSUSE Tumbleweed. Outros sistemas Linux como o Debian, openSUSE, Ubuntu, Fedora, ArchLinux também são ótimos sistemas para desktop que possam servir como hospedeiro de contêineres. No entanto, o Docker pode ser instalado em sistemas Microsoft Windows® e MacOS®, sendo que os contêineres a serem utilizados nesses sistemas deve possuir aplicações que executem nesses sistemas, ou seja, um contêiner para Microsoft Windows® deve conter os binários compilados para o sistema. A situação no MacOS® é análoga.
Aqui o foco será nos sistema operacional openSUSE, visto que dele deriva-se o openSUSE MicroOS que facilita a implementação do uso de aplicações em contêineres.

O openSUSE

O openSUSE é a versão mantida pela comunidade do sistema SLE (SUSE Linux Enterprise). É nele onde são testadas as aplicações que serão incluídas na versão paga do sistema operacional.

Há duas ramificações desse sistema: Leap e Tumbleweed. O ramo Leap segue um modelo tradicional de lançamento de versão de sistema operacional, havendo grandes lançamentos entre versões. Por conta disso, o sistema tem um ciclo de vida que, o chegar ao fim do suporte, é preciso migrar para uma versão mais nova. Já o ramo Tumbleweed possui a característica de lançamento contínuo, ou seja, o modelo de rolling-release, o qual o sistema não atem a uma versão específica, mas sim todo o grupo de aplicações é atualizado.