Virtualização em nível de sistema operacional

Origem: Wikipédia, a enciclopédia livre.
Saltar para a navegação Saltar para a pesquisa

Virtualização em nível de sistema operacional, também conhecida como containerização, refere-se a um recurso do sistema operacional no qual o núcleo permite a existência várias instâncias isoladas de espaço de usuário. Tais instâncias, chamadas containers,[1] partições, engrenagens de virtualização (VE, do inglês Virtualization Engines) ou cadeias (FreeBSD jail ou chroot jail), podem parecer com computadores reais do ponto de vista de programas executando neles. Um programa de computador rodando em um sistema operacional ordinário pode ver todos os recursos (dispositivos conectados, arquivos e pastas, compartilhamentos de rede, poder de UCP, capacidades de hardware quantificáveis) daquele computador. Entretanto, programas executando dentro de um container podem ver apenas os conteúdos do container e dispositivos designados ao container.

Em sistemas operacionais do tipo Unix, este recurso pode ser visto como uma implementação avançada do mecanismo chroot padrão, que altera o diretório root aparente para o processo em execução atual e seus filhos. Além dos mecanismos de isolamento, o kernel geralmente fornece funcionalidades de gerenciamento de recursos para limitar o impacto de atividades de um container em outros containers.

Docker[editar | editar código-fonte]

Docker é uma tecnologia de software que fornece contêineres, promovido pela empresa Docker, Inc. O Docker fornece uma camada adicional de abstração e automação de virtualização de nível de sistema operacional no Windows e no Linux.[1][2] O Docker usa as características de isolamento de recurso do núcleo do Linux como cgroups e espaços de nomes do núcleo, e um sistema de arquivos com recursos de união, como OverlayFS e outros[3] para permitir "contêineres" independentes para executar dentro de uma única instância Linux, evitando a sobrecarga de iniciar e manter máquinas virtuais (VMs).[4]

Nesta tecnologia, o kernel da máquina hospedeira é compartilhado com a máquina virtualizada ou o software em operação, portanto um desenvolvedor pode agregar a seu software a possibilidade de levar as bibliotecas e outras dependências do seu programa junto ao software com menos perda de desempenho do que a virtualização do hardware de um servidor completo. Assim, o docker torna operações em uma infraestrutura como serviços web mais intercambiável, eficientes e flexíveis.

Segundo uma análise da 451 Research, o docker é uma ferramenta que pode empacotar um aplicativo e suas dependências em um recipiente virtual que pode ser executado em qualquer servidor. Isso ajuda a permitir flexibilidade e portabilidade de onde o aplicativo pode ser executado, quer nas instalações internas de uma empresa, em uma nuvem pública, privada, entre outros. [2]

Kubernetes[editar | editar código-fonte]

Kubernetes (comumente estilizado como K8s) é um sistema de orquestração de contêiners open-source que automatiza a implantação, o dimensionamento e a gestão de aplicações em contêiners. Foi originalmente projetado pelo Google e agora é mantido pela Cloud Native Computing Foundation. Funciona com uma variedade de ferramentas de conteinerização, incluindo Docker.[3][4][5]

Referências

  1. Hogg, Scott (26 de maio de 2014). «Software Containers: Used More Frequently than Most Realize». Network World. Network World, Inc. Consultado em 9 de julho de 2015. There are many other OS-level virtualization systems such as: Linux OpenVZ, Linux-VServer, FreeBSD Jails, AIX Workload Partitions (WPARs), HP-UX Containers (SRP), Solaris Containers, among others. 
  2. «Docker: A 'Shipping Container' for Linux Code». linux.com (em inglês). Consultado em 8 de outubro de 2015 
  3. «kubernetes/kubernetes». GitHub (em inglês). Consultado em 28 de março de 2017. Cópia arquivada em 21 de abril de 2017 
  4. «O que é Kubernetes e como ele funciona?». Red Hat. Consultado em 8 de Fevereiro de 2018 
  5. «What is Kubernetes?». Kubernetes. Consultado em 31 de março de 2017