Dois desenvolvedores olhando para uma tela de computador

O que é armazenamento persistente para contêineres?

Definição de armazenamento persistente para contêineres

O armazenamento persistente para contêineres retém dados além do ciclo de vida de contêineres individuais, garantindo que informações crítico permaneçam disponíveis.

Essenciais para o desenvolvimento de aplicações nativas da nuvem, os contêineres são unidades de software leves e portáteis que empacotam uma aplicação e suas dependências, tornando-as fáceis de implementar em infraestruturas de TI modernas.

Os contêineres são inerentemente efêmeros. Eles são concebidos para serem temporários, sendo iniciados e desativados conforme a necessidade. Embora essa flexibilidade os torne altamente flexíveis e escaláveis, todos os dados do contêiner gerados são perdidos quando o contêiner para de funcionar. O armazenamento persistente resolve esse problema mantendo os dados disponíveis independentemente de qualquer contêiner individual.

Sem um armazenamento persistente, os sistemas críticos falhariam. Por exemplo, um banco de dados de transações bancárias executado em contêineres perderia os saldos das contas dos clientes durante atualizações de rotina, ou uma plataforma de comércio eletrônico perderia os carrinhos de compras a cada reinicialização.

À medida que as organizações continuam migrando para arquiteturas de microsserviços e nativas da nuvem, os contêineres tornaram-se centrais para a implementação e o gerenciamento de aplicações, tornando o armazenamento persistente para contêineres essencial para a execução de aplicações com estado em escala.De acordo com um relatório recente da Strategic Market Research, o mercado global de contêiner de aplicação foi avaliado em aproximadamente US$ 2,1 bilhões em 2024. Prevê-se que atinja US$ 6,9 bilhões até 2030, crescendo a uma taxa de crescimento anual composta (CAGR) de 21,1%.¹

Em ambientes empresariais, o armazenamento persistente assume as formas de arquivos, blocos e armazenamento de objeto, cada um adequado a diferentes cargas de trabalho. As organizações normalmente fornecem essas soluções de armazenamento por meio de uma combinação de sistemas de hardware e plataformas de armazenamento definido por software (SDS) projetadas para compatibilidade com ambientes de nuvem híbrida e nuvem distribuída.

Visão geral da conteinerização e do Kubernetes

A conteinerização consiste em empacotar o código de software somente com as bibliotecas e dependências do sistema operacional (SO), normalmente baseadas em Linux, necessárias para sua execução. Esse processo cria uma única unidade leve, como um contêiner, que pode ser executada de forma consistente em qualquer infraestrutura.

Com a migração das organizações de máquinas virtuais (VMs) para contêineres, a necessidade de gerenciar cargas de trabalho conteinerizadas em escala aumentou. O Docker, lançado em 2013, tornou os contêineres amplamente acessíveis, oferecendo aos desenvolvedores uma maneira padronizada de criá-los e compartilhá-los. Mas orquestrar centenas ou milhares de contêineres em ambientes de multinuvem híbrida exige uma maneira de lidar com a complexidade. Portanto, o Kubernetes foi desenvolvido para automatizar a implementação, a escalabilidade e o gerenciamento de aplicações conteinerizadas.

Criado pelo Google em 2014, o Kubernetes é uma plataforma de código aberto mantida pela Cloud Native Computing Foundation (CNCF). Os principais provedores de nuvem, como AWS, Microsoft Azure, Google Cloud e IBM Cloud, são compatíveis com a plataforma.

O Kubernetes executa contêineres em pods, que são implementados em nós em um cluster do Kubernetes. Ela gerencia a configuração e a comunicação entre componentes por meio de interfaces de programação de aplicativos (APIs), oferecendo suporte à orquestração automatizada em sistemas diversos. Hoje, o Kubernetes é o padrão para a orquestração de contêineres.

Em relação ao armazenamento de dados, um aspecto importante de como o Kubernetes funciona é entender a distinção entre aplicações sem estado e com estado.Aplicações sem estado (por exemplo, servidores web que lidam com solicitações de API) lidam com cada solicitação de forma independente. Consequentemente, elas não retêm os dados entre as sessões.Por outro lado, as aplicações com estado (por exemplo, bancos de dados) retêm os dados e dependem de informações de interações anteriores para funcionar adequadamente.

Além disso, os contêiner e pods no Kubernetes são efêmeros, e podem ser interrompidos, reiniciados ou reagendados a qualquer momento.Para aplicações sem estado, esse comportamento não é um problema. No entanto, em aplicações com estado, quando um contêiner para, todos os dados armazenados dentro dele são perdidos. É aqui que o armazenamento persistente desempenha um papel essencial nas configurações de contêineres, separando os dados do ciclo de vida do contêiner.

Além de as aplicações tradicionais migrarem para contêineres, as cargas de trabalho de computação intensiva de dados, como bancos de dados, inteligência artificial (IA) e aprendizado de máquina (ML), estão cada vez mais baseadas na nuvem. Essas cargas de trabalho exigem armazenamento persistente para garantir que os dados sobrevivam ao encerramento do contêiner, mantenham o estado dentro de sistemas distribuídos e forneçam o alto desempenho e a baixa latência exigidos pelo treinamento de modelos.

IBM DevOps

O que é DevOps?

Andrea Crawford explica o que é DevOps, seu valor e como suas práticas e ferramentas ajudam você a migrar suas aplicações por todo o pipeline de entrega de software, desde a concepção até a produção. Conduzido pelos principais líderes da IBM, o conteúdo foi concebido para ajudar os líderes empresariais a adquirir o conhecimento necessário para priorizar os investimentos em IA que podem estimular o crescimento.

Como funciona o armazenamento persistente para contêineres?

O armazenamento persistente para contêineres é criado em um conjunto de componentes que trabalham juntos para separar os dados dos contêineres. No Kubernetes, os administradores configuram a infraestrutura de armazenamento, enquanto os desenvolvedores e as aplicações a acessam por meio de solicitações simples.

Esses componentes incluem:

  • Volumes e montagens de vinculação
  • PersistentVolume (PV)
  • PersistentVolumeClaim (PVC)
  • Classes de armazenamento
  • Interface de armazenamento de contêiner (CSI)

Volumes e montagens de vinculação

Existem duas maneiras principais de conectar o armazenamento aos contêineres: montagens vinculadas e volumes nomeados (por exemplo, volumes do Docker).

  • As montagens vinculadas conectam um arquivo ou diretório específico da máquina host diretamente a um contêiner.
  • Os volumes ganham flexibilidade porque o Kubernetes os gerencia em diferentes sistemas de armazenamento.

Um volume é um local de armazenamento acessível a contêineres em um pod. Ao contrário do armazenamento efêmero dentro de um contêiner, que desaparece quando o contêiner para, um volume persiste por toda a vida útil do pod. Isso significa que, se um contêiner falhar e for reiniciado dentro do mesmo pod, os dados no volume permanecerão disponíveis.

Os volumes podem se conectar a diferentes tipos de dispositivos de armazenamento, incluindo discos locais, armazenamento conectado à rede por meio de protocolos como o Network File System (NFS) ou serviços de armazenamento baseado na nuvem.

PersistentVolume (PV)

Um PersistentVolume fornece armazenamento dentro do cluster Kubernetes e pode ser criado manual ou automaticamente.

A principal diferença entre um volume regular e um PersistentVolume é a vida útil. Um PersistentVolume existe independentemente de qualquer pod. Essa configuração significa que o armazenamento persiste mesmo que o pod que o acessa seja excluído ou migrado para outra máquina.

Os PersistentVolumes têm seu próprio ciclo de vida separado dos pods que os utilizam. Os administradores podem configurá-los com uma capacidade de armazenamento específica, permissões de acesso de leitura/gravação (por exemplo, ReadWriteOnce para acesso a um único pod ou ReadWriteMany para acesso compartilhado).

PersistentVolumeClaim (PVC)

Um PersistentVolumeClaim é uma solicitação de armazenamento feita por uma aplicação ou usuário. Em vez de se conectar diretamente a um PersistentVolume, um pod usa um PersistentVolumeClaim como uma camada intermediária. A solicitação especifica a capacidade de armazenamento necessária e o modo de acesso necessário. O Kubernetes então o associa a um PersistentVolume disponível. Essa separação significa que os desenvolvedores podem solicitar armazenamento sem precisar entender a infraestrutura de armazenamento subjacente.

Quando uma solicitação é conectada a um PersistentVolume, o pod pode ler e gravar dados da mesma forma que faria com qualquer sistema de arquivos.Se o pod for migrado ou reiniciado, ele ainda poderá acessar a mesma solicitação e os mesmos dados persistentes.

StorageClasses

Em ambientes corporativos, a criação manual de volumes de armazenamento para cada aplicação torna-se complexa e incontrolável. O Kubernetes resolve esse desafio por meio das StorageClasses, que definem diferentes tipos de armazenamento (por exemplo, unidades de estado sólido de alto desempenho) e utilizam um provisionador para criar automaticamente volumes de dados sob demanda.

Quando uma aplicação solicita armazenamento e faz referência a um StorageClass, o Kubernetes provisiona o volume apropriado sem a necessidade de configuração manual. Essa funcionalidade simplifica o gerenciamento do armazenamento geral.

Interface de armazenamento de contêiner (CSI)

A Interface de Armazenamento de Contêiner (CSI) é uma API padronizada e independente de fornecedor que permite que o Kubernetes interaja com vários sistemas de armazenamento.

A CSI permite que as plataformas dos provedores de armazenamento (por exemplo, IBM Storage Fusion, NetApp) desenvolvam e atualizem seus próprios plug-ins de forma independente. Esses plug-ins gerenciam todo o ciclo de vida do armazenamento: criação, conexão, provisionamento e remoção de volumes conforme necessário.

Benefícios do armazenamento persistente para contêineres

O armazenamento persistente para contêineres permite que as organizações executem aplicações com estado em configurações conteinerizadas, proporcionando os seguintes benefícios:

  • Durabilidade e resiliência dos dados: os dados gravados em cada volume persistente sobrevivem a falhas, reinicializações e reagendamentos de contêiner, evitando a perda de dados e garantindo que as aplicações com estado permaneçam resilientes mesmo com mudanças na infraestrutura do contêiner subjacente.
  • Operações simplificadas: o provisionamento dinâmico e o gerenciamento automatizado de armazenamento reduzem a carga de trabalho manual. As equipes de plataforma definem políticas de armazenamento uma vez, permitindo que as aplicações consumam o armazenamento como um recurso de autoatendimento dentro de seu namespace.
  • Desempenho e escalabilidade: o armazenamento persistente para contêineres oferece a taxa de transferência, a baixa latência e a escalabilidade necessárias para cargas de trabalho de computação intensiva de dados, como treinamento de IA/ML e análise em tempo real.
  • Flexibilidade e portabilidade: os volumes persistentes e os drivers CSI do Kubernetes abstraem o armazenamento, permitindo que as organizações executem aplicações em ambientes de infraestrutura local, nuvem privada e nuvem pública, oferecendo suporte às estratégias de nuvem híbrida.
  • Segurança e conformidade: volumes persistentes com suporte de sistemas de armazenamento empresarial oferecem recursos de proteção de dados , incluindo criptografia, replicação e backup, necessários para atender aos requisitos de conformidade e regulamentares.
  • Eficiência de custos: o provisionamento dinâmico aumenta ou diminui o armazenamento com base na demanda, enquanto o escalonamento automatizado de dados migra dados pouco utilizados para níveis de armazenamento mais econômicos, ajudando as organizações a otimizar os custos.
  • Acesso compartilhado: o armazenamento persistente para contêineres permite que vários pod leiam e gravem simultaneamente os mesmos dados, com suporte a fluxos de trabalho colaborativos sem duplicar os recursos de armazenamento.

Ferramentas para armazenamento persistente para contêineres

As organizações podem acessar o armazenamento persistente para contêineres por meio de uma série de ferramentas e soluções:

  • Plataformas de orquestração de contêineres
  • Soluções de armazenamento empresarial
  • Provedores de nuvem pública

Plataformas de orquestração de contêineres

As plataformas de orquestração de contêineres (por exemplo, Red Hat OpenShift) fornecem um gerenciamento integrado de armazenamento persistente com suporte nativo para monitoramento de CSI e provisionamento dinâmico de armazenamento.

Essas plataformas simplificam a implementação e as operações para as organizações que executam cargas de trabalho conteinerizadas em escala.

Soluções de armazenamento empresarial

As plataformas de armazenamento empresarial (por exemplo, IBM Storage Fusion) oferecem soluções de armazenamento nativas de contêiner com serviços de dados avançados, incluindo captura instantânea, clonagem, replicação e recuperação de desastres.

Essas plataformas se integram diretamente ao Kubernetes por meio de drivers CSI, fornecendo segurança, recursos de conformidade e controles de acesso compartilhado para aplicações com estado.

Provedores de nuvem pública

Provedores de nuvem pública, incluindo AWS, Microsoft Azure, Google Cloud e IBM Cloud, oferecem serviços gerenciados de Kubernetes com opções de armazenamento persistente nativo, como Amazon Elastic Block Store (EBS) e IBM Cloud Block Storage.

Casos de uso para armazenamento persistente em contêineres

O armazenamento persistente para contêineres atende aos seguintes caso de uso empresarial:

  • Bancos de dados e gerenciamento de dados
  • Cargas de trabalho de IA
  • DevOps e CI/CD
  • Backup e recuperação de desastres (BDR)
Bancos de dados e gerenciamento de dados

Os bancos de dados relacionais e NoSQL exigem armazenamento persistente para que os contêineres preservem a integridade dos dados. Os volumes persistentes garantem que o estado do banco de dados permaneça consistente mesmo com as mudanças no sistema subjacente.

Cargas de trabalho de IA

As cargas de trabalho de IA atuais dependem de armazenamento persistente para conjuntos de dados de treinamento, pontos de verificação de modelos e resultados de inferência. O treinamento de modelos em grande escala requer acesso de alto rendimento a conjuntos de dados, enquanto as aplicações de disponibilização de modelos necessitam de acesso rápido e confiável aos modelos treinados.

DevOps e CI/CD

Os pipelines de CI/CD usam armazenamento persistente para manter os artefatos de compilação e dados de teste. Os volumes persistentes permitem que as equipes de DevOps e outras equipes preservem o histórico de compilação e mantenham os ambientes de teste consistentes.

Backup e recuperação de desastres (BDR)

As estratégias de backup e recuperação de desastres dependem do armazenamento persistente de contêineres para capturar o estado da aplicação. As organizações podem fazer capturas instantâneas dos volumes, replicar os dados em locais secundários e restaurar as cargas de trabalho rapidamente durante as interrupções.

Autores

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Soluções relacionadas
IBM instana observability

Aproveite o poder da IA e da automação para resolver problemas de forma proativa em todo o stack de aplicações.

Explore o IBM Instana Observability
Soluções de DevOps

Utilize softwares e ferramentas de DevOps para desenvolver, implementar e gerenciar aplicações nativas da nuvem em diversos dispositivos e ambientes.

Explore as soluções de DevOps
Serviços de consultoria em nuvem

Acelere a agilidade e o crescimento dos negócios, modernize suas aplicações de forma contínua em qualquer plataforma utilizando nossos serviços de consultoria de nuvem.

Explore os serviços de consultoria em nuvem
Dê o próximo passo

Da detecção proativa de problemas com IBM Instana a insights em tempo real em todo o seu stack, você pode manter aplicações nativas em nuvem funcionando de forma confiável.

  1. Descubra o IBM Instana
  2. Explore as soluções de DevOps
Notas de rodapé

¹ Relatório do Mercado de Contêineres de Aplicação, Strategic Market Research, agosto de 2025.