Sobre a Modernização do Armazenamento com o Oracle Cloud Infrastructure Object Storage

Este manual de soluções ajudará você a entender como projetar e executar a migração de armazenamento de longo prazo de sistemas de arquivos locais ou NFS para o Oracle Cloud Infrastructure Object Storage (OCI Object Storage). Uma solução como essa pode ajudar a reduzir custos, bem como aplicar retenção, regras de ciclo de vida e solicitações pré-autenticadas como recursos adicionais.

Neste manual de soluções, estamos usando um caso de uso do cliente para destacar o ponto de partida para implementar um esforço de modernização bem-sucedido.

Muitas vezes falamos sobre migração e modernização da nuvem na mesma conversa, passando por todos os métodos, serviços e ofertas disponíveis. A conversa muitas vezes envolve fazer uma abordagem em fases, em que um data center inteiro é sistematicamente movido para a nuvem, levantado e deslocado como está, e então tudo o mais segue o exemplo.

Uma vez concluída a fase inicial, a modernização de aplicativos geralmente perde sua importância quando comparada aos desafios de segurança, monitoramento, integração atual e contínua. Ele também destaca uma mudança do trabalho que as equipes de Infraestrutura podem fazer para as equipes de Aplicativos. Orçamentos, cronometragem e outras prioridades têm precedência e, portanto, os aplicativos são deixados para serem executados como estão na nuvem. A fim de realizar a verdadeira economia potencial que a nuvem pode fornecer, as empresas devem olhar para tecnologias como o armazenamento de objetos, a fim de economizar em custos.

Os arquivos compactados de arquivos são um ótimo lugar para começar, pois podem ser transferidos do NFS para o OCI Object Storage com o mínimo de trabalho de desenvolvimento e teste. A implementação de uma solução como essa pode economizar na ordem de 10-50x no armazenamento, dependendo do caso de uso. As empresas perceberam que a operação de data centers está se tornando mais uma responsabilidade e pode resultar em custos adicionais invisíveis, com o crescente número de possíveis ataques, perda de serviço e concorrentes inovando constantemente.

Isso deve tornar o uso de serviços nativos da nuvem, como o OCI Object Storage, uma prioridade, para economizar custos, proteger os negócios, compartilhar o ônus de operar uma ampla variedade de cargas de trabalho diferentes com um hiperescalador e muito mais.

Entenda os desafios pós-migração

A chave aqui era se concentrar em um ponto de dor pós-migração e redesenhar uma peça grande o suficiente do aplicativo para ser impactante, mas pequena o suficiente para enfrentar em um único sprint de design. Dessa forma, a empresa obtém economia e tranquilidade, mantendo os custos de desenvolvimento e teste baixos.

Para o caso de uso neste manual de soluções, o custo do armazenamento de arquivos compartilhados (NFS) tornou-se um problema na nuvem, e o design original do aplicativo tornou-se a razão pela qual não era tão fácil mudar. Durante o projeto de migração on-premises para a nuvem, falamos sobre o Armazenamento de Objetos como uma alternativa mais barata e confiável ao Armazenamento de Arquivos, em papel sobre 10x em economia. Adicionando backups e replicação, esse 10x provavelmente é maior. Recursos eficientes, como replicação entre regiões, Bloqueio de Retenção e Políticas de Ciclo de Vida, podem trabalhar juntos para tornar o Object Storage a base de um sistema econômico, confiável e seguro no qual armazenar documentos importantes. No entanto, quando o aplicativo é projetado em torno do sistema de arquivos NFS para armazenamento de documentos e espera semântica POSIX, as coisas se tornam mais difíceis.

O aplicativo que foi modernizado neste caso de uso é um aplicativo padrão de 3 camadas, mas com vários componentes externos que precisam executar um processo coordenado e intenso de cpu para gerar faturas de clientes, publicá-las em uma estrutura de diretórios organizada e catalogá-las para download e armazenamento de longo prazo. Esses arquivos PDF e outros arquivos foram armazenados em um sistema de arquivos NFS grande com um padrão de nomeação de arquivo muito específico, a fim de serem acessados por um caminho gerado. Ainda outro aplicativo foi criado em torno do servidor Apache HTTP, usando a área de armazenamento de longo prazo desse compartilhamento NFS como sua raiz de documentos, de modo que os URLs gerados do aplicativo poderiam ser usados para baixar arquivos de qualquer ponto nos últimos 2 anos. Finalmente, arquivos com mais de uma certa idade podem ser removidos do arquivo on-line, mas ainda podem ser solicitados por auditores que buscam registros.

Assim, todos os arquivos de até 10 anos de idade eram necessários para serem mantidos no sistema de arquivos NFS, essencialmente custando ao negócio mais dinheiro a cada dia que novos arquivos eram gerados. O problema existia em várias aplicações diferentes, então o problema de custo só pioraria com o tempo.

Aproveite o OCI Object Storage

O Object Storage é perfeito para arquivos que não mudam com frequência. Isso contrasta com o NFS, que se concentra no armazenamento compartilhado de uso misto.

Ao aproveitar vários elementos de design do Object Storage e alguns recursos específicos do OCI Object Storage Service, podemos aumentar a disponibilidade e reduzir os custos para cargas de trabalho adequadas.

Nesse caso de uso, os arquivos criados para acesso de médio prazo e arquivamento de longo prazo são adequados. Esses arquivos provavelmente são escritos uma vez e precisam ser armazenados por meses ou anos sem alterações. Na verdade, talvez a empresa queira garantir que eles sejam imutáveis por um período.

No geral, aqui está uma lista de motivos básicos pelos quais o Object Storage tem vantagens em relação ao armazenamento de arquivos tradicional para esses tipos de arquivos.

  • Disponibilidade: O Object Storage é um serviço regional, o que significa que ele não está vinculado a um único Domínio de Disponibilidade.
  • Pesquisar: O uso de metadados de objeto provavelmente é mais útil do que depender apenas de nomes de arquivo e comandos de localização no estilo POSIX.
  • Regras de Retenção: É possível garantir que um bucket inteiro não seja alterado depois que os objetos forem gravados para garantir a conformidade imediata.
  • Camadas de Armazenamento: A camada de armazenamento de objetos (automática ou manual) leva a uma enorme redução no custo de objetos de retenção acessados com pouca frequência ou exigidos pela regra de negócios.
  • Políticas de Ciclo de Vida: O ajuste do movimento entre camadas de armazenamento e exclusão automática (limpeza) após a retenção economizará no armazenamento e na administração.
  • Replicação: A replicação fácil e automática de um bucket inteiro para outra região pode aumentar a disponibilidade e o acesso aos dados.
  • Custo: O armazenamento de objetos construído e mantido adequadamente custa muito menos do que os sistemas de arquivos NFS duplicados e desordenados.

O NFS ainda é útil para aplicativos que requerem um sistema de arquivos montado, compartilhado e no estilo POSIX. O cliente ainda exigia NFS para armazenamento compartilhado, mas seu uso estava limitado a arquivos "operacionais", em oposição a arquivos "arquivados". A solução descrita aqui aborda como configurar e acessar o Object Storage e como o aplicativo foi modificado para usar o armazenamento NFS e o novo arquivo compactado do Object Storage criado para armazenamento de longo prazo.

Arquitetura

Essa arquitetura mostra o design e a execução para mover o armazenamento de longo prazo para o OCI Object Storage, ajudando a reduzir custos e aplicar retenção, regras de ciclo de vida e solicitações pré-autenticadas como recursos adicionados.

As imagens a seguir descrevem a arquitetura "antes" e "depois" da implementação. O Oracle File System Service (FSS) é usado para um sistema de arquivos compartilhado grande. Neste sistema de arquivos, que foi migrado de um datacenter local, os componentes do aplicativo usam o processamento em batch para gerar arquivos de arquivamento continuamente. Assim, o mesmo sistema de arquivos NFS contém os elementos do aplicativo necessários para executar o processamento intermediário (scripts, arquivos temporários etc.) e o arquivo compactado do arquivo real, armazenado em uma hierarquia que deve ser mantida por até 10 anos, de acordo com os requisitos de negócios.

Depois de configurados, os buckets do OCI Object Storage são usados para hospedar a parte do arquivo compactado do que o NFS estava fazendo. As permissões para ler e gravar o bucket são definidas de forma restrita, e as regras de retenção e ciclo de vida são estabelecidas, a fim de serem preparadas para um grande fluxo de dados. A grande hierarquia de arquivos compactados é copiada para o OCI Object Storage, e o processamento em batch é refatorado para colocar novos arquivos compactados no novo bucket de objetos. Os mecanismos de acesso também foram ligeiramente refatorados para acessar os arquivos do armazenamento de objetos, de forma a evitar que o restante do aplicativo e os clientes finais tivessem que fazer alterações na forma como acessam esses arquivos.

O diagrama a seguir ilustra a arquitetura antes da implementação:



oci-object-storage-modernization-arch-oracle1.zip

O diagrama a seguir ilustra a arquitetura após a implementação:



oci-object-storage-modernization-arch-oracle.zip

a: Política de OSS Padrão:
  • Administradores da Tenancy - Acesso Total
  • Administradores de Aplicativos - Acesso Limitado sem leitura de objetos
  • Somente leitura - Inspeção de bucket sem leitura de objeto
b: Política de IAM do Grupo Dinâmico:
  • Instruções adicionadas por grupo dinâmico
  • Estreitamente definido para recursos específicos
c: Definição de Grupo Dinâmico (um dos):
  • Lista de OCIDs da instância
  • OCID do compartimento da instância
d: Regras de Retenção:
  • 3650 dias (10 anos)
  • bloqueado

e: Regras de Ciclo de Vida:

  • Após 90 dias - Armazenamento não frequente
  • Após 180 dias - Armazenamento de arquivos
  • Após 3651 dias - Excluir

Essa arquitetura suporta os seguintes componentes:

  • Object Storage

    O serviço Oracle Cloud Infrastructure Object Storage oferece acesso rápido a grandes quantidades de dados estruturados e não estruturados de qualquer tipo de conteúdo, incluindo backups de bancos de dados, dados de análise e conteúdo avançado, como imagens e vídeos. Você pode armazenar de forma segura e depois recuperar dados diretamente da internet ou de dentro da plataforma da nuvem. Você pode dimensionar o armazenamento sem prejudicar o desempenho ou a confiabilidade do serviço. Use o armazenamento padrão para armazenamento de acesso frequente que você precisa para acessar de forma rápida, imediata e com frequência. Use o armazenamento de arquivos compactados para armazenamento "frio" que você mantém por longos períodos de tempo e raramente acessa.

  • Armazenamento do arquivo

    O serviço Oracle Cloud Infrastructure File Storage fornece um sistema de arquivos de rede durável, escalável e seguro e de nível empresarial. Você pode se conectar a um sistema de arquivos do serviço File Storage de qualquer instância bare metal, de máquina virtual ou de contêiner em uma VCN. Você também pode acessar um sistema de arquivos de fora da VCN usando o Oracle Cloud Infrastructure FastConnect e a IPSec VPN.

  • Serviço IAM (Identity and Access Management)

    O Oracle Cloud Infrastructure Identity and Access Management (IAM) é o plano de controle de acesso do Oracle Cloud Infrastructure (OCI) e do Oracle Cloud Applications. A API do serviço IAM e a interface do usuário permitem gerenciar domínios de identidades e os recursos dentro do domínio de identidades. Cada domínio de identidades do OCI IAM representa uma solução de gerenciamento de identidade e acesso independente ou uma população de usuários diferente.

Considerações para Gerenciamento de Identidades

O uso de buckets privados de armazenamento de objetos implica a configuração de permissões adequadas para uso. Por padrão, os grupos de usuários e os grupos dinâmicos geralmente não recebem acesso a conjuntos de permissões amplos, como object-family, a menos que tenham escopo em um compartimento.

Antes de embarcar nesta solução, vale a pena garantir que apenas os grupos que você deseja ter acesso ao armazenamento de objetos tenham permissões. Uma coisa que é extremamente útil aqui é seguir a metodologia da Zona de Destino do CIS em torno da restrição de acesso. Ao implementar essa solução, discutimos a criação de grupos dinâmicos, por isso vale a pena entender a estrutura de compartimento da sua tenancy, bem como os conceitos discutidos pela zona de destino. Também vale a pena ler a Sintaxe de Política do OCI, incluindo como definir estreitamente um grupo dinâmico e uma instrução de política.

Embora tanto o RCLONE quanto o OCIFS suportem Chaves de API do OCI padrão como um mecanismo de autenticação, escolhemos Controladores de Instâncias e Grupos Dinâmicos para autenticação. Isso melhora a postura de segurança geral - não é necessário criar, distribuir ou girar chaves. Em vez disso, grupos dinâmicos separados são utilizados, a fim de garantir as permissões mais estreitas possíveis para cada grupo dinâmico. Por exemplo, permitir a criação de bucket pode ser permitido pela política para o grupo dinâmico RCLONE, enquanto apenas a leitura de objetos é permitida para o grupo dinâmico Apache.

Considerações sobre o Serviço Archive Storage

Para economizar custos e utilizar a camada de custo mais baixo do OCI Object Storage, essa solução implementou Regras de Ciclo de Vida, que movem objetos para a Camada Não Frequente e, em seguida, para a camada Arquivo Compactado após um período após a criação.

Depois que os objetos forem arquivados, eles não poderão ser reclassificados diretamente na Camada Padrão. Devido à natureza off-line do Armazenamento de Objetos Arquivado, é necessário desenvolver um processo no qual uma auditoria (processo de negócios) possa ser solicitada, determinados arquivos extraídos do arquivo e, em seguida, os arquivos se tornam acessíveis por um período limitado por tempo.

Mais uma vez, usando os recursos inerentes do armazenamento de objetos, os arquivos podem ser recuperados temporariamente, copiados para um local temporário (outro bucket) e expostos externamente usando PARs (Solicitações Pré-autenticadas). Esses são URLs obscuros (segurança por obscuridade) que permitem o acesso a arquivos específicos em um bucket e podem expirar após um período definido, revogando o acesso.

Durante o período de recuperação, os arquivos podem ser copiados para novos buckets de camada padrão e, em seguida, eles são revertidos automaticamente para o modo Archive, e nenhuma manutenção é necessária. RCLONE e OCI CLI, Java, REST ou Python podem ser usados de forma semelhante para a solução principal, novamente com acesso a um bucket de auditoria específico.