Menu

O que são contêineres?

Tópicos
Soluções de DevOps

Compartilhe esta página

Os contêineres são uma forma de virtualização do sistema operacional. Um único contentor pode ser usado para executar qualquer coisa, desde um pequeno micro serviço ou processo de software até um aplicativo maior.

Dentro de um contentor estão todos os executáveis necessários, código binário, bibliotecas e arquivos de configuração. No entanto, em comparação com as abordagens de virtualização de servidor ou máquina, os contêineres não contêm imagens de sistema operacional. Isso os torna mais leves e portáteis, com significativamente menos sobrecarga.

Em implantações de aplicações maiores, vários contêineres podem ser implantados como um ou mais clusters de contêineres. Esses clusters podem ser gerenciados por um orquestrador de contêineres, como o Kubernetes.

Benefícios dos contêineres

Os contêineres são uma maneira otimizada de criar, testar, implantar e reimplantar aplicações em vários ambientes, desde o laptop local do desenvolvedor até o data center local e até mesmo a nuvem. Os benefícios dos contêineres incluem:

  • Os contêineres com menos sobrecarga: Requerem menos recursos do sistema do que os ambientes de máquinas virtuais tradicionais ou de hardware, pois não incluem imagens do sistema operacional.
  • Os aplicativos de maior portabilidade: Executados em contêineres podem ser facilmente implantados em vários sistemas operacionais e plataformas de hardware diferentes.
  • As equipes de DevOps de operação mais consistentes:
    Sabem que as aplicações em contêineres serão executadas da mesma forma, independentemente de onde forem implantadas.
  • Os contêineres de maior eficiência: Permitem que os aplicativos sejam implantados, corrigidos ou dimensionados com mais rapidez.
  • Os contêineres melhores para desenvolvimento de aplicações: Dão suporte a esforços ágeis e DevOps para acelerar os ciclos de desenvolvimento, teste e produção.

Casos de uso de contêineres

As maneiras comuns pelas quais as organizações usam contêineres incluem:

  • "Lift and shift" das aplicações existentes para arquiteturas de nuvem modernas: Algumas organizações usam contêineres para migrar aplicações existentes para ambientes mais modernos. Embora essa prática ofereça alguns dos benefícios básicos da virtualização do sistema operacional, ela não oferece todos os benefícios de uma arquitetura de aplicativo modular baseada em contêiner.
  • Refatorar as aplicações existentes para contêineres: Embora a refatoração seja muito mais intensiva do que a migração lift-and-shift, ela possibilita todos os benefícios de um ambiente de contêineres.
  • Desenvolver novas aplicações nativas em contêineres: Como a refatoração, essa abordagem libera todos os benefícios dos contêineres.
  • Fornecer melhor suporte para arquiteturas de microsserviços: As aplicações distribuídas e os microsserviços podem ser mais facilmente isolados, implantados e dimensionados usando blocos de construção de contêineres individuais.
  • Fornecer suporte ao DevOps para integração e implantação contínuas (CI/CD): A tecnologia de contêiner é compatível com compilação, teste e implantação otimizadas a partir das mesmas imagens de contêiner.
  • Forneça uma implantação mais fácil de tarefas repetitivas e contêineres de tarefas: Estão sendo implantados para suportar um ou mais processos semelhantes, que muitas vezes são executados em segundo plano, como funções ETL ou trabalhos em lote.

Como o Docker e o Kubernetes se relacionam com contêineres?

Os usuários envolvidos em ambientes de contêineres provavelmente ouvirão sobre duas ferramentas e plataformas populares usadas para criar e gerenciar contêineres. Estes são Docker e Kubernetes.

Docker é um ambiente de tempo de execução popular usado para criar e construir software dentro de contêineres. Ele usa imagens Docker (snapshots copy-on-write) para implantar aplicativos ou software em contêineres em vários ambientes, do desenvolvimento ao teste e à produção. O Docker foi criado com base em padrões e funções abertos dentro da maioria dos ambientes operacionais comuns, incluindo Linux, Microsoft Windows e outras infraestruturas locais ou baseadas em nuvem.

No entanto, as aplicações em contêiner podem ficar complicadas. Quando em produção, muitos podem exigir centenas a milhares de recipientes separados em produção. É aqui que ambientes de tempo de execução de contentor, como o Docker, se beneficiam do uso de outras ferramentas para orquestrar e/ou gerenciar todos os contêineres em operação.

Uma das ferramentas mais populares para esse fim é o Kubernetes, um orquestrador de contêineres que reconhece vários ambientes de tempo de execução de contentor, incluindo o Docker.

O Kubernetes orquestra as operações de vários contêineres em harmonia. Ele gerencia áreas como o uso de recursos de infraestrutura subjacentes para aplicações em contêiner, como a quantidade de recursos de computação, rede e armazenamento necessários. Ferramentas de orquestração como o Kubernetes facilitam a automação e a escala de workloads baseados em contêineres para ambientes de produção ao vivo.

Contêineres vs. Máquinas virtuais (VMs)

Às vezes, as pessoas confundem a tecnologia de contentor com máquinas virtuais (VMs) ou tecnologia de virtualização de servidores. Embora existam algumas semelhanças básicas, os contêineres são muito diferentes das VMs.

As máquinas virtuais são executadas em um ambiente de hipervisor onde cada uma deve incluir seu próprio sistema operacional convidado dentro dele, juntamente com seus binários, bibliotecas e arquivos de aplicativos relacionados. Isso consome uma grande quantidade de recursos e sobrecarga do sistema, especialmente quando várias VMs estão sendo executadas no mesmo servidor físico, cada uma com seu próprio sistema operacional convidado.

Em contraste, cada contentor compartilha o mesmo sistema operacional host ou kernel do sistema e é muito mais leve, por vezes apenas megabytes. Isso geralmente significa que um contentor pode levar apenas alguns segundos para iniciar (em comparação com os gigabytes e minutos necessários para uma VM típica).

NetApp e contêineres

Na NetApp, acreditamos na tecnologia de contêiner e estamos trabalhando em ferramentas e inovações comprovadas que fornecem e gerenciam o storage persistente em qualquer aplicação e lugar. Um exemplo chave deste trabalho é o desenvolvimento do Trident. Com o Trident, é mais fácil do que nunca que as aplicações em contêiner consumam armazenamento persistente sob demanda.

Trabalhamos ativamente em formas de acelerar o DevOps, promovendo ainda mais velocidade e agilidade no desenvolvimento de software. O consumo de recursos de infraestrutura, como storage, deve ser fácil. A NetApp se dedica a fazê-lo assim, com soluções de gerenciamento de contêineres e outras que ajudam os aplicativos a escalar mais facilmente e abranger uma ampla variedade de plataformas.

Soluções e produtos relacionados

Soluções de DevOps

Histórias de sucesso da líder mundial em gerenciamento e storage de dados

Transformar comunicações de segurança em insights do cliente

A Bandwidth, um provedor de plataforma de API, oferece serviços de voz, mensagens e 911 que afetam milhões de pessoas todos os dias. Os desenvolvedores da Bandwidth trabalham incansavelmente para inovar e aprimorar a plataforma da empresa, além de levar novos serviços ao mercado com mais rapidez.

O banco suíço mantém arquivos omnipresentes com NetApp flash e MetroCluster IP.

A PostFinance conta com ferramentas e tecnologias avançadas desenvolvidas ou adaptadas especificamente para o mercado suíço. Os sistemas NetApp fornecem os dados de arquivos para transações bancárias seguras e aceleram o desenvolvimento de produtos e serviços financeiros com storage persistente.

Pessoa que olha para monitorar e analisar
Drift chat loading