DEV Community

loading...
Cover image for Containers
Sysadminas

Containers

thebeaoliveira profile image Beatriz Oliveira Originally published at Medium Updated on ・3 min read

A “containerização” é um método usado no processo de implantação de aplicações altamente distribuídas. Nesse modelo, várias soluções isoladas são executadas em um host, compartilhando o mesmo kernel do sistema operacional, diferente das VMs, as quais executam um SO completo.

Containers e máquinas virtuais têm benefícios semelhantes de isolamento e alocação de recursos, porém funcionam de maneira diferente porque os containers virtualizam o sistema operacional ao invés do hardware. Vários containers podem ser executados em VMs e podem compartilhar o kernel do SO com outros containers, cada um executando como processos isolados. Os containers ocupam menos espaço que as VMs, conseguem lidar com mais aplicativos e requerem menos VMs e sistemas operacionais. Veja as diferenças entre as duas arquiteturas na imagem a seguir:

Alt Text
Referência da imagem aqui. Adaptação: Beatriz Oliveira

Docker

O docker é uma ferramenta open source, que serve para fazer a criação de containers. No docker, a virtualização funciona diferente da virtualização tradicional, pois, nele, os recursos funcionam isoladamente. Isso acontece porque os containers não têm visão do servidor completo, garantindo maior facilidade na hora de criar e manter ambientes, além de tornar o processo de disponibilização de aplicações menos oneroso.

No docker, é possível criar imagens a partir de um dockerfile. O dockerfile é um arquivo de texto que contém todos os comandos e passos para montar uma imagem. As imagens nada mais são que pacotes executáveis com todos os artefatos necessários para executar uma aplicação ou parte dela, o que inclui bibliotecas, códigos, arquivos de configuração e variáveis de ambiente, por exemplo.

Ferramentas de orquestração de containers

As ferramentas de orquestração são aplicações que servem para facilitar o gerenciamento de vários containers. Por meio delas, você consegue dizer quantas réplicas precisa utilizar, e também é possível gerenciar os recursos,que você precisa alocar para que sua aplicação funcione bem. Além disso, é no orquestrador que você também aponta a imagem da aplicação que deseja subir. Depois disso, o orquestrador executa a sua aplicação e, caso alguns dos nodes do seu cluster venham a falhar, ele mesmo faz o autogerenciamento de recuperação e relocação dos pods entre os nodes disponíveis, fazendo com que você tenha menos degradações ou até mesmo indisponibilidades na sua aplicação.

Atualmente, existem várias ferramentas de orquestração e gerenciamento de containers. As mais conhecidas e utilizadas no mercado são:

  1. Docker Swarm;
  2. Kubernetes;
  3. Openshift;
  4. Cattle (Rancher).

Se você deseja conhecer mais sobre docker, containers e alguns orquestradores através de livros e cursos, acompanhe a lista abaixo:

Sugestões de cursos
Curso sobre os benefícios dos containers gratuitos, em inglês, da VMware;
Curso de introdução ao Kubernetes, da Linux Foundation;
Visão geral da implantação de aplicações em containers, em inglês, da Red Hat.

Sugestões de livros
Primeiros Passos com Docker, de Karl Matthias e Sean P. Kane, da Editora: O'reilly e Novatec no Brasil;
Kubernetes Básico, de Brendan Burns, Joe Beda e Kelsey Hightower, da Editora: O'reilly e Novatec no Brasil;
Usando Docker, de Adrian Mouat, Editora: O'reilly e Novatec no Brasil;
Docker para desenvolvedores, de Rafael Gomes.

Sugestões de certificações
Certificação gratuita de Rancher, em inglês, da Rancher Academy;
Certified Kubernetes Administrator (CKA), em inglês, da Linux Foundation.

Caso conheça outras indicações de livros, certificações ou cursos, fique à vontade para deixar nos comentários. Ficarei feliz em adicionar a esse post!

Esse texto faz parte do Guia de Infraestrutura de Tecnologia da Informação publicado no Medium, no dev.to, e na Open Library. Para checar todos os capítulos, clique aqui e acesse a Introdução.

Discussion

pic
Editor guide