3 Containers in the clouds illustration
Jump to section

O que é um container Linux?

Copiar URL

Um container Linux® é um conjunto de um ou mais processos organizados isoladamente do sistema. Todos os arquivos necessários para executá-los são disponibilizados por uma imagem individual. Na prática, os containers Linux são portáteis e consistentes durante toda a migração entre os ambientes de desenvolvimento, teste e produção. Essas características os tornam uma opção muito mais rápida de usar do que os pipelines de desenvolvimento, que dependem da replicação dos ambientes de teste tradicionais. Os containers também são uma parte importante da segurança da TI por conta da popularidade e da facilidade de uso deles.

Imagine que você esteja desenvolvendo uma aplicação. Você trabalha em um laptop, e o seu ambiente tem uma configuração específica. Outros desenvolvedores podem ter configurações um pouco diferentes. A aplicação desenvolvida é baseada nessa configuração e depende de bibliotecas, dependências e arquivos específicos. Ao mesmo tempo, a empresa em que você trabalha tem ambientes de desenvolvimento e de produção padronizados com uma configuração própria e conjuntos de arquivos auxiliares. Você quer emular esses ambientes localmente, sem a necessidade de recriar os ambientes do servidor. Como fazer a aplicação funcionar em ambientes diferentes, ser aprovada pela garantia de qualidade e ser implantada sem muito esforço, sem a necessidade de reescrever ou realizar reparos no código? A resposta é: containers.

What is a container

O container que tem a aplicação inclui as bibliotecas, dependências e arquivos necessários para migrá-la para a produção sem maiores problemas. Na verdade, o conteúdo de uma imagem de container, criado com uma ferramenta open source como a Buildah, pode ser pensado como uma instalação de uma distribuição Linux, porque essa imagem é completa com pacotes RPM, arquivos de configuração e outros elementos. No entanto, é muito mais fácil lidar com uma distribuição de imagem de container do que instalar novas cópias de sistemas operacionais. Dessa forma, evita-se o conflito e todos ficam satisfeitos.

Esse foi um exemplo simples. No entanto, é possível usar os containers Linux em diversas situações problemáticas, onde portabilidade, configurabilidade e isolamento são necessários. Com containers Linux, seu negócio se desenvolve mais rapidamente e atende às necessidades empresariais conforme elas surgem. Em alguns casos, como a transmissão de dados em tempo real com o Apache Kafka, os containers são essenciais, pois são a única maneira de dar a escalabilidade que a aplicação precisa. Seja qual for o tipo de infraestrutura, on-premise, na nuvem ou híbrida, os containers atendem a qualquer demanda. E vale lembrar que escolher a plataforma de aplicações em container ideal é tão importante quanto os próprios containers.

Com o Red Hat® OpenShift®, você tem tudo o que precisa para desenvolvimento e implantação em Kubernetes, containers empresariais e nuvem híbrida.

Não exatamente. As duas tecnologias são complementares. Veja uma maneira fácil de diferenciá-las:

  • Com a virtualização, é possível executar sistemas operacionais (Windows ou Linux) simultaneamente em um único sistema de hardware.
  • Os containers compartilham o mesmo kernel do sistema operacional e isolam os processos da aplicação do restante do sistema. Por exemplo, os sistemas ARM Linux executam containers ARM Linux, os sistemas x86 Linux executam containers x86 Linux e os sistemas x86 Windows executam containers x86 Windows. Os containers Linux são extremamente portáteis, mas devem ser compatíveis com o sistema subjacente.
virtualization vs containers

O que isso significa? Para começar, a virtualização usa um hipervisor para emular o hardware, o que permite executar vários sistemas operacionais simultaneamente. Essa não é uma solução tão leve quanto o uso de containers. Quando a capacidade e os recursos são limitados, é necessário usar aplicações leves que possam ser implantadas densamente. Os containers Linux são executados de maneira nativa no sistema operacional, compartilhando-o com todos os outros containers. Assim, as aplicações e os serviços permanecem leves e podem ser executados em paralelo com agilidade.

Os containers Linux são mais um salto evolucionário no desenvolvimento, implantação e gerenciamento de aplicações. Com as imagens de containers Linux, é possível ter portabilidade e controle de versão. Isso ajuda a assegurar que os trabalhos contidos no laptop do desenvolvedor sejam executados corretamente no ambiente de produção. Uma imagem de container especial chamada golden image cria uma base consistente e confiável para a configuração do sistema. Em comparação com as máquinas virtuais, executar containers Linux consome menos recursos, oferece uma interface padrão (início, interrupção, variáveis de ambiente etc.), mantém o isolamento da aplicação e facilita o gerenciamento dos processos como parte de uma aplicação maior (com vários containers). Além disso, é possível orquestrar as aplicações de multicontainer em diversas nuvens.

Há até mesmo ferramentas que combinam o gerenciamento de máquina virtual e a orquestração de containers. Descubra mais sobre elas neste evento do Red Hat Summit 2020, que inclui uma sessão de lançamento de uma ferramenta desse tipo.

O projeto Linux Containers (LXC) é uma plataforma de aplicações em container open source que fornece um conjunto de ferramentas, templates, bibliotecas e associações de linguagem. O LXC conta com uma interface de linha de comando simples que melhora a experiência do usuário ao inicializar containers.

Além disso, ele oferece um ambiente de virtualização no nível do sistema operacional que pode ser instalado em vários sistemas baseados em Linux O LXC pode estar disponível por meio do repositório do pacote da sua distribuição Linux.

A ideia do que atualmente chamamos de tecnologia de containers surgiu em 2000 como jails do FreeBSD, uma tecnologia que permite particionar um sistema FreeBSD em vários subsistemas ou celas (por isso o nome "jails"). Os jails foram desenvolvidos como ambientes seguros que podiam ser compartilhados por um administrador de sistemas com vários usuários internos ou externos à empresa.

Em 2001, Jacques Gélinas deu o primeiro passo para a implementação de ambientes isolados em Linux por meio de seu projeto VServer. Após essa base ser estabelecida para vários espaços de usuário controlados em Linux, as peças começaram a se encaixar para formar o que o container Linux é hoje.

Em pouquíssimo tempo, mais tecnologias foram combinadas para tornar essa abordagem isolada uma realidade. Os grupos de controle (cgroups) são uma funcionalidade de kernel que controla e limita o uso de recursos por um processo ou grupo de processos. E o systemd, um sistema de inicialização que configura o espaço do usuário e gerencia processos, é usado por cgroups para dar mais controle sobre os processos isolados. Ambas as tecnologias, além de adicionarem um controle geral ao Linux, serviram como framework para a separação eficaz de ambientes.

O Docker entra em cena

Em 2008, o Docker entrou em cena (por meio do dotCloud) com sua tecnologia de container homônima. A tecnologia Docker adicionou muitos dos novos conceitos e ferramentas: uma interface de linha de comando simples para executar e criar novas imagens em camadas, um daemon de servidor, uma biblioteca de imagens de container pré-criadas e o conceito de servidor de registros. Combinadas, essas tecnologias possibilitaram aos usuários criar novos containers em camadas com rapidez e compartilhá-los facilmente com outras pessoas.

Há três padrões principais que asseguram a interoperabilidade das tecnologias de container: as especificações Image, Distribution e Runtime da OCI. A combinação dessas especificações permite que projetos da comunidade, soluções empresariais e provedores de nuvem criem tecnologias de container interoperáveis. Por exemplo, pense em uma situação em que você precisa introduzir imagens personalizadas no servidor de registro do provedor de nuvem. Atualmente, a Red Hat e o Docker, além de muitas outras organizações, são membros da Open Container Initiative (OCI), cujo objetivo é padronizar as tecnologias de containers no setor open source.

Os containers são famosos, mas será que são seguros? A segurança dos containers é composta por diversos elementos variáveis: é necessário proteger a aplicação e o pipeline de containers, os ambientes de implantação e a infraestrutura. Além disso, é necessário planejar a integração com as ferramentas e políticas de segurança da empresa. Para isso, você precisa de um bom plano. Podemos ajudar.

A Red Hat tem um longo histórico de colaboração com a comunidade open source, a fim de tornar tecnologias abertas, como os containers, mais seguras, estáveis e confiáveis. Essa é a nossa especialidade. E por isso também damos suporte a essas tecnologias. Sempre que você precisar, estaremos prontos para ajudar.

As tecnologias da Red Hat eliminam as suposições para executar os containers da maneira certa. Seja para criar uma plataforma de desenvolvimento com containers, executar uma infraestrutura de containers no melhor sistema operacional do mercado ou fornecer armazenamento para o grande volume de dados gerados pelos containers, a Red Hat tem a solução perfeita para você.

Leitura recomendada

ARTIGO

Containers x máquinas virtuais

Os containers Linux e as máquinas virtuais são ambientes de computação empacotados que combinam vários componentes de TI e os isolam do restante do sistema.

ARTIGO

O que é orquestração de containers?

A orquestração automatiza a implantação, o gerenciamento, a escala e a rede dos containers.

ARTIGO

O que é um container Linux?

Um container Linux é um conjunto de processos isolados do sistema. Esses processos são executados a partir de uma imagem distinta que oferece todos os arquivos necessários a eles.

Leia mais sobre containers

Soluções Red Hat

Uma plataforma de aplicações para empresas que oferece serviços testados para lançar aplicações na infraestrutura de sua escolha.

Conteúdo adicional

Datasheet

Red Hat OpenShift: tecnologia de container para nuvem híbrida

O Red Hat® OpenShift® é uma plataforma empresarial de containers Kubernetes que ajuda organizações em todo o mundo a criar, implantar, executar, gerenciar e proteger aplicações inovadoras em nuvens híbridas.

Datasheet

Red Hat OpenShift Kubernetes Engine

O Red Hat OpenShift Kubernetes Engine consiste em vários componentes essenciais e totalmente integrados para criação, implantação e gerenciamento de aplicações em containers.

Ebook

Transforme suas aplicações

Conheça as tendências atuais para a transformação de aplicações e como modernizar sua TI usando serviços em nuvem e plataformas de aplicações em nuvem híbrida.

Treinamentos Red Hat

Treinamento gratuito

Running Containers with Red Hat Technical Overview

Treinamento gratuito

Containers, Kubernetes and Red Hat OpenShift Technical Overview

Treinamento gratuito

Developing Cloud-Native Applications with Microservices Architectures