Você está na página 1de 12

Comparao de Desempenho entre

mquinas virtuais e containers

Bruno Domingues
bruno.domingues@Intel.com
Intel Principal Architect
IEEE Chairman Computer Society - CN

Proibida cpia ou divulgao sem permisso


escrita do CMG Brasil.
Histria da Virtualizao

Logo depois da formao da VMWare, as empresas


descobriram a virtualizao
Virtualizao foi muito alardeado em 2005, e o kernel do
Linux foi forked para acomodar o Xen
Qualquer coisa que no fosse hypervisor no era
interessante para as empresas

Proibida cpia ou divulgao sem


permisso escrita do CMG Brasil.
Explorando as opes de virtualizao

Enquanto as empresas seguiam o caminho de adoo do


Hypervisor, as empresas de Hosting seguiam o caminho
dos containers
Benefcio primrio era densidade:
Containers pode suportar 3x mais densidade que hypervisors
No mercado de hosting as margens so pequenas e densidade a
diferena entre lucro e prejuzo
Conforme o mercado de hosting foi adotando
massivamente conteiners, este se tornou mais sofisticado e
denso

Proibida cpia ou divulgao sem


permisso escrita do CMG Brasil.
A tecnologia de conteiners tambm foi
dividida
Google viu as vantagens de containers bem cedo
Eles contrataram Paul Manage (pessoa chave do cgroup) e
fizeram seu DC complemente baseado em containers
Historicamente, Containers (OpenVZ) e cgroup evoluram
de forma separada
Essa evoluo foi realizada principalmente fora da linha de
desenvolvimento principal do produto.
Porm com a verso 3.9 todas as melhorias do OpenVZ e muitas
melhorias feitas pelo Google, agora fazem parte do produto.
Em 2011 foi acordado em criar uma base comum para
permitir compatibilidade e 2015 o IEEE P2302, WG sobre
Intercloud est expandindo para especificar o padro
Proibida cpia ou divulgao sem
permisso escrita do CMG Brasil.
Examinando Containers e Hypervisors

Containers Hypervisor
VM 1 VM 2 VM 3

Container 1 Container 2 Container 3 Guest Guest Guest


OS OS OS

Camada de Virtualizao Camada de Virtualizao

Sistema Operacional Hypervisor

Hardware Drivers que suportam SO

Hardware
Contnainers
Compartilham o mesmo kernel Hypervisors
Comunicao com o host usando Executa copias separadas do kernel
chamadas padro de sistemas Comunicam com o host atravs
(System Calls) mquina virtual emulada
Diferenas na abstrao
Hypervisor possui abstrao no nvel do hardware
Significa que qualquer coisa que voc consegue fazer com
hardware, voc consegue fazer com o hypervisor
O que difcil fazer com o hardware, tambm difcil fazer com o
hypervisor, como o caso de remover memria a quente
Tambm significa que voc precise de um segundo sistemas
operacional para rodar dentro da mquina virtual
Containers prove abstrao no nvel do kernel do SO
Tudo o que voc faz com o OS voc consegue fazer com o
container
Gerenciamento e recursos se torna algo fcil porque o sistemas
operacional j faz isso.
Pode rodar diferentes sistemas operacionais desde que usem o
mesmo kernel
Proibida cpia ou divulgao sem
permisso escrita do CMG Brasil.
Perspectivas de Containers

Source: Containers and the Cloud, James Bottomley, Parallels CTO, LinuxCon Europe 2013

Proibida cpia ou divulgao sem


permisso escrita do CMG Brasil.
Porque os Containers so mais densos?
Parcialmente uma simples questo de matemtica para
recursos
Containers executam apenas um kernel por sistema fsico
Hypervisors executam um kernel por virtual machine (mais um
para o host)
Tambm est relacionado com melhor gerenciamento
Um nico kernel no Container tem total visibilidade dos recursos
usados no sistema completo (incluindo o que cada container est
fazendo)
Hypervisors precisam criar mecanismos para comunicao dos
multiplex kernels para informar ao host o que est acontecendo

Proibida cpia ou divulgao sem


permisso escrita do CMG Brasil.
Caractersticas de Containers

Containers tendem a serem mais elsticos que Hypervisors


Desde que o kernel j tenha inicializado, mesmo com um sistemas
operacional diferente (compartilhando o mesmo kernel) seguindo
toda a sequencia de boot, ainda muito mais rpido do que
inicializando todo o kernel desde o inicio;
Se estiver usando o mesmo sistema operacional (mesma verso de
Linux) ento o boot instantneo e pode-se apenas iniciar as
aplicaes
Escalabilidade vertical (para cima ou baixo) basta habilitar
controle do cgroup
Migrao mais rpido devido a quantidade de dados transferido
ser muito menor.

Proibida cpia ou divulgao sem


permisso escrita do CMG Brasil.
Containers e a Cloud
O principal requisito de cloud
Elasticidade
Densidade
A maior desvantagem dos Containers
Todas as instncias precisam ser homogneas
No possvel rodar diferente verses de kernels (ou de
sistemas operacionais)
O maior problema de PaaS e SaaS garantir o isolamento
entre diferentes usurios.
Este um problema que Containers tm sido usado por anos para
resolver, e.g. Gmail.

Proibida cpia ou divulgao sem


permisso escrita do CMG Brasil.
Containers de Aplicaes

Containers no virtualize apenas no Container


nvel do userspace do sistema
operacional MySQL

Containers pode virtualizar qualquer


grupo de processos Apache

Containers pode inclusive isolar


grupos de processos que Bibliotecas
compartilham recursos
Userspace
Tornando uma excelente alternativa
para PaaS/SaaS Kernel

Proibida cpia ou divulgao sem


permisso escrita do CMG Brasil.
Porque no estamos usando Containers?

A transio ocorreu primariamente para IaaS


At a verso 3.9, no havia isolamento suficiente.
Conforme o marcado move em direo a PaaS/SaaS e
outras aplicaes baseadas em nuvem, Containers passa a
ser uma opo mais interessante.

Referncias:
Google Containers: https://github.com/google/lmctfy
OpenVZ: http://openvz.org/Main_Page
Linux-VServer: http://linux-vserver.org
libvirt-lxc: http://libvirt.org/drvlxc.html
Docker Public Registry: https://index.docker.io

Proibida cpia ou divulgao sem


permisso escrita do CMG Brasil.

Você também pode gostar