Forem

Cover image for Containers
Beatriz Oliveira for Sysadminas

Posted on • Edited on • Originally published at Medium

4

Containers

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.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay