Implante o Oracle REST Data Services com alta disponibilidade no Oracle Cloud Infrastructure

Implemente o Oracle REST Data Services (ORDS) com alta disponibilidade na Oracle Cloud Infrastructure (OCI) e REST para ativar seu banco de dados e expor os benefícios da arquitetura e dos recursos de microsserviços.

O ORDS conecta HTTPS e seu banco de dados Oracle. Como um aplicativo Java de camada intermediária, ele fornece uma API REST de Gerenciamento de Banco de Dados, SQL Developer Web, um Gateway PL/SQL, SODA para REST e a capacidade de publicar serviços Web RESTful para interagir com os dados e procedimentos armazenados em seu banco de dados Oracle.

O ORDS também oferece maior flexibilidade ao oferecer suporte a implantações que usam o Oracle WebLogic Server ou o Apache Tomcat, ou que estão em um modo independente. O ORDS simplifica ainda mais o processo de implantação porque não há Oracle home necessário, pois um driver JDBC incorporado fornece conectividade.

Essa arquitetura de referência descreve como você pode implantar o ORDS em várias instâncias do VM Compute, criando uma camada intermediária altamente disponível para suas instâncias de banco de dados Oracle.

Arquitetura

Essa arquitetura mostra como implantar o Oracle REST Data Services com alta disponibilidade na OCI.

A arquitetura começa com uma Rede Virtual na Nuvem (VCN) em uma única região. Embora essa VCN possa abranger vários Domínios de Disponibilidade (AD), para essa arquitetura de referência, ela usa um único AD. Esse AD contém vários domínios de falha — áreas dentro de um AD que agruparam hardware e infraestrutura. As VMs de computação com ORDS são implantadas em vários domínios de falha para ajudar na obtenção de alta disponibilidade.

Na VCN, várias sub-redes contêm componentes arquitetônicos específicos. Ele começa com um gateway de internet, que só permite tráfego por uma porta especificada para os balanceadores de carga no front-end dessa VCN em uma sub-rede pública. Os balanceadores de carga também têm um IP voltado para o público que você pode usar posteriormente para aplicar nomes de domínio personalizados, se necessário. O balanceador de carga conversará com a sub-rede que contém as camadas intermediárias de computação do ORDS. A comunicação é protegida por listas de segurança de toda a sub-rede, bem como grupos de segurança de rede (NSG). Você pode aplicar esses NSGs a um conjunto de VNICs nos balanceadores de computação e carga para fornecer regras de segurança granulares para comunicação entre esses recursos.

Por fim, novamente empregando listas de segurança e NSGs, as camadas intermediárias do ORDS podem acessar um banco de dados Oracle em uma sub-rede privada. Os recursos que usam sub-redes privadas não recebem IPs voltados para o público. Dessa forma, você pode usar os NSGs para uma camada de comunicação segura entre as sub-redes pública e privada. A instância do banco de dados Oracle nesta sub-rede privada pode ser uma instância do BD de VM, um banco de dados autônomo ou um banco de dados Exadata Cloud Service.

O diagrama a seguir ilustra essa arquitetura de referência.

A seguir, descrição de ha-ords-oci3.png
Descrição da ilustração ha-ords-oci3.png

ha-ords-oci3.zip

Essa arquitetura tem os seguintes componentes:
  • Região

    Região do OCI é uma área geográfica localizada que contém um ou mais data centers, denominada domínios de disponibilidade. As regiões são independentes de outras regiões, e grandes distâncias podem separá-las (entre países ou até mesmo continentes).

  • Domínios de disponibilidade

    Domínios de disponibilidade são data centers stand-alone e independentes dentro de uma região. Os recursos físicos de cada domínio de disponibilidade são isolados dos recursos de outros domínios de disponibilidade, o que oferece tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura como energia ou refrigeração ou a rede interna do domínio de disponibilidade. Portanto, é improvável que uma falha em um domínio de disponibilidade afete os outros domínios de disponibilidade na região. Os recursos dessa arquitetura são implantados em um único domínio de disponibilidade.

  • Domínios de falha

    Um domínio de falha é um agrupamento de hardware e infraestrutura dentro de um domínio de disponibilidade. Cada domínio de disponibilidade tem três domínios de falha com energia e hardware independentes. Quando você distribui recursos entre vários domínios de falha, seus aplicativos podem tolerar falha no servidor físico, manutenção do sistema e falhas de energia dentro de um domínio de falha. Os recursos dessa arquitetura são implantados em vários domínios de falha.

  • Rede virtual na nuvem (VCN) e sub-redes

    VCN é uma rede personalizável definida por software que você configura em uma região do OCI. Como as redes tradicionais de data center, as VCNs oferecem total controle sobre seu ambiente de rede. Uma VCN pode ter vários blocos CIDR não sobrepostos que você pode alterar após a criação da VCN. Você pode segmentar uma VCN em sub-redes, com escopo definido para uma região ou para um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contíguo de endereços que não se sobrepõem a outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.

    Nesta arquitetura de referência, as instâncias de computação com ORDS são anexadas a uma sub-rede pública junto com o balanceador de carga, enquanto os bancos de dados podem usar uma sub-rede privada ou pública. As melhores práticas de Segurança de Banco de Dados colocam as instâncias do banco de dados em sub-redes privadas sempre que possível.

  • Balanceador de Carga

    O serviço Oracle Cloud Infrastructure Load Balancing fornece distribuição automatizada de tráfego de um único ponto de entrada para vários servidores no back-end. O IP público desse balanceador de carga também servirá como local onde podemos registrar nomes de domínio personalizados, se necessário.

  • Gateway de API

    O Oracle Cloud Infrastructure API Gateway permite publicar APIs com pontos finais privados acessíveis de dentro da sua rede e que você pode expor à internet pública, se necessário. Os pontos finais suportam validação de API, transformação de solicitação e resposta, CORS, autenticação e autorização e limitação de solicitação.

  • Instâncias de Computação/Hosts ORDS

    O Oracle Cloud Infrastructure Compute permite provisionar e gerenciar hosts de computação. Você pode iniciar instâncias de computação com formas que atendam aos seus requisitos de recursos (CPU, memória, largura de banda de rede e armazenamento). Depois de criar uma instância de computação, você pode acessá-la com segurança, reiniciá-la, anexar e desanexar volumes e encerrá-la quando não precisar dela. Os servidores Web nessa arquitetura são executados em máquinas virtuais de computação usando uma arquitetura de CPU x86 ou ARM

  • Instâncias do Banco de Dados

    O serviço de Banco de Dados oferece soluções em nuvem Oracle Database cogerenciadas e autônomas. Os Autonomous Databases são ambientes pré-configurados e totalmente gerenciados que são adequados para cargas de trabalho de processamento de transações ou data warehouse. As soluções cogerenciadas são sistemas de BD bare metal, máquina virtual e Exadata que você pode personalizar com os recursos e as definições que atendam às suas necessidades.

    Essa arquitetura de referência pode ser usada para bancos de dados autônomos ou instâncias de banco de dados cogerenciadas.

  • Grupos de segurança de rede (NSGs)

    Os NSGs atuam como firewalls virtuais para suas instâncias de computação. Com o modelo de segurança de confiança zero do OCI, todo o tráfego é negado, e você pode controlar o tráfego de rede dentro de uma VCN. Um NSG consiste em um conjunto de regras de segurança de entrada e saída que se aplicam a apenas um conjunto especificado de VNICs em uma única VCN. Nesta arquitetura, NSGs separados são usados para o balanceador de carga, servidores Web e o banco de dados.

  • Tabelas de Roteamento

    As tabelas de roteamento virtual contêm regras para rotear o tráfego de sub-redes para destinos fora de uma VCN, geralmente por meio de gateways.

  • Gateway de Internet

    O gateway de internet permite o tráfego entre as sub-redes públicas em uma VCN e a internet pública.

  • Listas de Segurança

    A lista de segurança é um conjunto de regras de entrada e saída que especificam os tipos de tráfego permitidos de entrada e saída para todas as VNICs/instâncias em uma sub-rede. As Listas de Segurança são aplicadas no nível da sub-rede, e os NSGs são aplicados em um nível de VNIC. Ambos atuam efetivamente como um firewall para uma VNIC. Com o modelo de segurança de confiança zero da OCI, todo o tráfego para uma VNIC é negado. O SL e o NSG precisam permitir o tráfego explicitamente, para que o tráfego seja permitido para a VNIC.

  • ZPR (Zero-Trust Packet Routing)

    Além de SL e NSG, a OCI tem uma construção de segurança de rede chamada Zero-Trust Packet Routing. O ZPR é uma rede segura baseada em intenção que atua na camada 4 e pode ser implementada em linguagem de política legível por humanos. Atribuindo atributos de segurança ("tags" para ZPR) aos seus recursos, você pode criar controles de acesso granulares para garantir que somente entidades autorizadas possam se comunicar com componentes confidenciais, como bancos de dados e servidores de aplicativos. Essa abordagem não apenas reduz o risco de acesso não autorizado, mas também simplifica o gerenciamento de políticas à medida que seu aplicativo evolui. A ZPR opera junto com NSGs e SLs existentes, fornecendo uma postura de segurança mais abrangente que se adapta às mudanças em sua arquitetura de rede. Aqui você pode atribuir atributos de segurança (tags ZPR especiais) a nós em cada sub-rede, de forma que apenas o tráfego necessário seja permitido (direção de fluxo, protocolo e portas), não importa como a arquitetura de rede mude/muda no futuro.

Recomendações

Use as recomendações a seguir como ponto de partida. Seus requisitos podem ser diferentes da arquitetura descrita aqui.
  • VCN

    Ao criar uma VCN, determine o número de blocos CIDR necessários e o tamanho de cada bloco com base no número de recursos que você planeja anexar a sub-redes na VCN. Use blocos CIDR que estejam dentro do espaço de endereço IP privado padrão.

    Selecione blocos CIDR que não se sobreponham a nenhuma outra rede (no Oracle Cloud Infrastructure, em seu data center local ou em outro provedor de nuvem) para a qual você pretende configurar conexões privadas.

    Depois de criar uma VCN, você poderá alterar, adicionar e remover seus blocos CIDR.

    Ao projetar as sub-redes, considere seus requisitos de fluxo de tráfego e segurança. Anexe todos os recursos dentro de uma camada ou atribuição específica à mesma sub-rede, que pode servir como um limite de segurança.

    Usar sub-redes regionais.

    Considere implantar firewalls para cada limite de rede.

  • Balanceamento de Carga

    A OCI oferece balanceamento de carga flexível. Você pode criar balanceadores de carga com limites superior e inferior para que eles possam ser dimensionados com base no número de solicitações recebidas. Os limites podem variar de 10mbps a 8000mbps. Para instâncias em que o balanceamento de carga multi-AD ou multi-região é necessário, use o DNS Cloud Service com recurso de orientação de gerenciamento de tráfego.

  • Segurança

    Use o Oracle Cloud Guard para monitorar e manter proativamente a segurança de seus recursos no Oracle Cloud Infrastructure. O Cloud Guard usa receitas do detector que você pode definir para examinar seus recursos quanto a pontos fracos de segurança e para monitorar operadores e usuários quanto a atividades arriscadas. Quando qualquer configuração incorreta ou atividade insegura é detectada, o Cloud Guard recomenda ações corretivas e ajuda a tomar essas ações, com base nas receitas do respondedor que você pode definir.

    Para recursos que exigem segurança máxima, a Oracle recomenda o uso de zonas de segurança. Uma zona de segurança é um compartimento associado a uma receita de políticas de segurança definida pela Oracle baseada nas melhores práticas. Por exemplo, os recursos de uma zona de segurança não devem ser acessíveis por meio da internet pública e devem ser criptografados usando chaves gerenciadas pelo cliente. Quando você criar e atualizar recursos em uma zona de segurança, o Oracle Cloud Infrastructure validará as operações de acordo com as políticas na receita da zona de segurança e negará as operações que violam qualquer uma das políticas.

  • Instâncias do Banco de Dados

    Para aplicativos de produção, a instância do banco de dados Oracle deve seguir o modelo de implantação MAA (Maximum Availability Architecture) da Oracle na OCI. Seguir essas diretrizes garante que o banco de dados não esteja apenas altamente disponível, mas também protegido contra interrupções e desastres caso ocorram. Essas arquiteturas também beneficiam os bancos de dados de relatórios que utilizam a instância de DR.

    A arquitetura MAA é integrada diretamente aos serviços do Oracle Cloud Infrastructure Database, cogerenciados e autônomos. O Data Guard, GoldenGate, RAC e backups automáticos estão imediatamente disponíveis e devem ser usados para o ambiente de produção, quando aplicável.

    Ao usar o RAC com o Oracle Cluster Registry (OCR)Oracle Database, certifique-se de que as informações de conexão do banco de dados usadas pelo ORDS estejam apontando para o listener SCAN e não para um nó individual.

  • Instâncias do serviço Compute/ORDS

    Ao dimensionar suas camadas intermediárias de computação, consulte o seguinte gráfico para obter recomendações:

    Tamanhos de Arquitetura de Referência (Máquinas Virtuais)

    Para descobrir a lista de formas disponíveis em seu compartimento, você também pode executar a operação List Shapes por meio da CLI/SDK. Consulte a documentação da API List Shapes e "Formas de Computação", acessíveis em "Explorar Mais", abaixo, para obter mais informações.

    Para descobrir os custos de computação mensais projetados na OCI, você pode usar o Cost Estimator. Você pode encontrar informações detalhadas sobre Faturamento na página "Faturamento e Gerenciamento de Custos". Você pode acessar o Cost Estimator e o "Billing and Cost Management" em "Explore mais", abaixo.

    Tamanhos de Arquitetura de Referência (Bare Metal)

Considerações

Considere os pontos a seguir ao implantar essa arquitetura de referência.

  • Desempenho

    As instâncias de computação, balanceadores de carga e Database Cloud podem ser dimensionadas para lidar com o aumento da carga. Com a camada de computação/ORDS, instâncias adicionais podem ser criadas e adicionadas rapidamente à configuração do Balanceador de Carga. Para a camada Database, o Autonomous Database pode ser definido para dimensionar automaticamente a CPU/Memória quando houver um aumento na carga. Para instâncias cogerenciadas, o serviço baseado em VM pode dimensionar o número de CPUs usadas na VM. No caso dos serviços de nuvem Exadata, a plataforma X8M não pode apenas dimensionar a CPU, mas os nós podem ser adicionados ao cluster RAC para adicionar mais poder de computação.

  • Segurança

    Certifique-se de usar regras muito granulares em sua sub-rede e regras de entrada/saída do NSG. Você só deseja tráfego nas portas esperadas para IPs específicos de instâncias em suas sub-redes. Se o acesso for necessário a uma camada de computação ou banco de dados, use o Bastion as a Service para acesso. Isso garante que somente usuários autorizados possam acessar essas instâncias e apenas as instâncias específicas às quais tenham acesso. O uso do Bastion as a Service é um método muito mais seguro do que expor portas SSH à internet pública.

  • Disponibilidade

    Siga o guia Oracle Maximum Availability Architecture (MAA) para implantações de banco de dados. Para ORDS, várias camadas intermediárias com um balanceador de carga são recomendadas. Novamente, como lembrete, ao usar RAC com o Oracle Database, certifique-se de que as informações de conexão do banco de dados usadas pelo ORDS estejam apontando para o listener SCAN e não para um nó individual.

  • Custo

    O uso do dimensionamento automático e do dimensionamento em geral para cada camada de computação e banco de dados ajudará no controle de custos, permitindo que você pague apenas pelo que está sendo usado sem excesso ou desperdício de CPU, memória ou instâncias. Os custos também podem ser controlados usando um balanceador de carga flexível.

Implante

Com um único clique, você pode extrair o código dessa arquitetura para o Oracle Cloud Infrastructure Resource Manager, criar a pilha e implantá-la.

A arquitetura disponível por meio do Oracle Cloud Infrastructure Resource Manager Service usa um único banco de dados autônomo enquanto, na arquitetura acima, a Oracle recomenda um banco de dados de recuperação de desastres em cenários de produção. Ele é usado nesta arquitetura de referência de amostra para permitir economia de custos, melhorar a velocidade e concentrar mais atenção na implantação de alta disponibilidade (HA) de computação/ORDS.
Implante essa arquitetura usando a pilha de amostra no Oracle Cloud Infrastructure Resource Manager:
  1. Clique Implantar para o Oracle Cloud.

    Se você ainda não tiver acessado, informe a tenancy e as credenciais do usuário.

  2. Selecione a região na qual você deseja implantar a pilha.
  3. Siga os prompts na tela e as instruções para criar a pilha.
  4. Após criar a pilha, clique em Ações do Terraform e selecione Planejar.
  5. Aguarde a conclusão do job e revise o plano.

    Para fazer qualquer alteração, retorne à página Detalhes da Pilha, clique em Editar Pilha e faça as alterações necessárias. Em seguida, execute a ação Planejar novamente.

  6. Se nenhuma alteração adicional for necessária, retorne à página Detalhes da Pilha, clique em Ações do Terraform e selecione Aplicar.

Confirmações

  • Autors: Gagan S. Kohli
  • Colaboradores: Eric Peterson, Mayur Raleraskar, Robert Wunderlich, Sherwood Zern

Alterar Log

Este log lista alterações significativas: