UOL Meu Negócio

Como funcionam os Linux Containers, a tecnologia que deu início ao Docker

Muito se fala hoje em dia sobre docker e conteinerização, mas, você conhece a tecnologia que tornou tudo isso possível?

A virtualização de servidores tem sido aplicada em larga escala na indústria e mostrou-se um verdadeiro divisor de águas no mundo da tecnologia empresarial. Em grande parte, ela é fundação das soluções de cloud que temos hoje em dia.

Mas mesmo trazendo uma série de benefícios, ainda há pontos de melhoria que podem tornar a tecnologia mais eficiente.

O LinuX Containers (LXC) é uma funcionalidade que oferece melhor desempenho e mais segurança, agilidade e flexibilidade na criação e implementação de aplicações. O UOL HOST é pioneiro no Brasil, oferecendo esta tecnologia inovadora na Hospedagem de Sites e Banco de Dados.

Na prática, este método de virtualização permite criar divisões isoladas dentro de um servidor, protegendo as aplicações que rodam em cada uma delas.

Para simplificar, imagine um grande navio de carga. Dentro dele, estão distribuídos vários contêineres, onde os produtos ficam protegidos. Ou seja, se as maçãs que estão no contêiner A estragarem, elas não afetarão em nada as laranjas que estão no contêiner B.

É assim que funciona o LXC. A tecnologia permite dividir o sistema operacional em diversas máquinas virtuais (VMs, do inglês, virtual machines) independentes, com recursos de CPU, memória e rede separados.

                                                                                                         

Saiba mais a seguir sobre os desafios que as empresas enfrentam ao lidar com a tecnologia de virtualização e como o LXC pode ajudar a solucioná-los.

Os desafios da virtualização

Os benefícios da virtualização são evidentes: consolidação de servidores, redução de custos, aumento do tempo em produção (uptime), migração de máquinas virtuais, melhor tempo de provisionamento, criação de ambientes de teste/lab e planos de recuperação de desastres mais eficientes e simples, além de redução no consumo de energia, espaço e dos custos com resfriamento dos data centers.

Mesmo com todas essas vantagens, a virtualização ainda traz alguns pontos que podem ser melhorados:

Tempo de provisionamento: a criação de uma VM pode levar vários minutos. Se comparado com o tempo de provisionamento de um servidor físico, o desempenho é muito melhor. Porém, em algumas situações, este tempo não é aceitável;

 Quantidade de VMs: devido à facilidade de se criar uma VM, tem-se visto uma proliferação quase descontrolada delas nos servidores das empresas. Milhares de máquinas virtuais são criadas e muitas vezes sem necessidade, criando um pesadelo de gerenciamento de TI;

 Provisionamento Dinâmico: em alguns casos é importante criar uma VM rapidamente, seja por alguma necessidade do negócio ou por necessidade de maior poder computacional e isso não pode esperar os “minutos” gastos no provisionamento;

 Ambientes de alto desempenho: ambientes de High Performance Computing (HPC) têm evitado a soluções tradicionais de virtualização devido ao overhead computacional;  


Saiba mais a seguir sobre os desafios que as empresas enfrentam ao lidar com a tecnologia de virtualização e como o LXC pode ajudar a solucioná-los.

Os desafios da virtualização

Os benefícios da virtualização são evidentes: consolidação de servidores, redução de custos, aumento do tempo em produção (uptime), migração de máquinas virtuais, melhor tempo de provisionamento, criação de ambientes de teste/lab e planos de recuperação de desastres mais eficientes e simples, além de redução no consumo de energia, espaço e dos custos com resfriamento dos data centers.

Mesmo com todas essas vantagens, a virtualização ainda traz alguns pontos que podem ser melhorados:

Tempo de provisionamento: a criação de uma VM pode levar vários minutos. Se comparado com o tempo de provisionamento de um servidor físico, o desempenho é muito melhor. Porém, em algumas situações, este tempo não é aceitável;

 Quantidade de VMs: devido à facilidade de se criar uma VM, tem-se visto uma proliferação quase descontrolada delas nos servidores das empresas. Milhares de máquinas virtuais são criadas e muitas vezes sem necessidade, criando um pesadelo de gerenciamento de TI;

 Provisionamento Dinâmico: em alguns casos é importante criar uma VM rapidamente, seja por alguma necessidade do negócio ou por necessidade de maior poder computacional e isso não pode esperar os “minutos” gastos no provisionamento;

 Ambientes de alto desempenho: ambientes de High Performance Computing (HPC) têm evitado a soluções tradicionais de virtualização devido ao overhead computacional;          

As vantagens do LXC

O LXC chega como uma resposta a esses desafios, permitindo fazer um melhor uso da tecnologia de virtualização. Conheça algumas de suas vantagens:

Provisionamento instantâneo: é possível subir um contêiner praticamente instantaneamente;

 Desempenho muito próxima do servidor físico: como não existe a camada intermediaria (Hypervisor), o desempenho quase não sofre penalidades;

Agilidade e Flexibilidade: o método facilita a criação de novos mecanismos de entrega de aplicações (templates). Diversas ferramentas facilitam a criação dos templates para fazer instalação de novos conteúdos;

 Compartimentação (containerize) de sistema e aplicações: muitas vezes são criadas VMs para garantir o isolamento de recursos entre aplicações que rodam em uma mesma máquina. Com os contêineres isso não é mais necessário. Determinam-se os recursos das aplicações e o kernel controla o uso destes recursos.

Open source /Custo: o LXC é um projeto de código aberto e gratuito. A comunidade também participa ativamente com novos projetos e ferramentas;

Ampla adoção: o uso crescente da tecnologia nos últimos anos tem facilitado a sua aceitação pelo mercado corporativo.

Como funciona o LXC

Os contêineres compartilham o mesmo kernel do host e, por isso, são considerados pesos pena – lightweight.

Os contêineres têm a mesma funcionalidade do kernel:

cgroups: controle dos recursos (cpu/memória/rede/blockIO/devices);

namespaces: isolamento por processo;

chroot: controle aparente do FileSystem “/ “;

Linux Security Modules (LSM) e Mandatory Access Control (MAC)

Pseudo FS do Cgroups. Em vermelho, a implementação dos LXC.

LXC tools é um conjunto ferramentas para o gerenciamento dos contêineres.

lxc-attach, lxc-checkconfig, lxc-console, lxc-execute, lxc-ls, lxc-snapshot, lxc-top, lxc-usernsexec, lxc-autostart, lxc-clone, lxc-create, lxc-freeze, lxc-monitor, lxc-start, lxc-unfreeze, lxc-wait, lxc-cgroup, lxc-config, lxc-destroy, lxc-info, lxc-ps, lxc-stop, lxc-unshare

LXC Templates: os contêineres precisam de um ‘hard-disk’ contendo as aplicações virtualizadas. Ao iniciar um contêiner, usa-se um TEMPLATE para buscar as aplicações o root fs