Implantar Aplicativos Nativos da Nuvem que usem o MySQL para o Oracle Cloud Infrastructure

Você pode usar o Oracle Container Engine for Kubernetes (OKE), o Oracle Cloud Infrastructure Registry e o Oracle MySQL Database Service (MDS) para desenvolver e implantar aplicativos nativos da nuvem e migrar aplicativos legados para a nuvem.

O OKE é um serviço totalmente gerenciado, escalável e altamente disponível que você pode usar para implantar seus aplicativos de contêineres na nuvem. Use o OKE quando sua equipe de desenvolvimento quiser criar, implantar e gerenciar de forma confiável aplicativos nativos da nuvem.

Você pode usar o Oracle Cloud Infrastructure Registry como um registro privado do Docker para uso interno, enviar e extrair imagens do Docker para e do registro usando a API V2 do Docker e a CLI (interface de linha de comando) padrão do Docker.

O MDS é um serviço nativo do Oracle Cloud Infrastructure totalmente gerenciado, que automatiza tarefas como backup e recuperação, bem como aplicação de patches do banco de dados e do sistema operacional.

O uso do MDS no Oracle Cloud Infrastructure Compute tem as seguintes vantagens:

  • Implante o MySQL em minutos.
  • Aproveite um serviço OCI totalmente gerenciado.
  • Concentre-se no desenvolvimento, não na administração de infraestrutura.
  • Use ferramentas e recursos mais recentes para aplicativos modernos.
  • Dimensione de acordo com suas necessidades.
  • Evite a sombra de TI.

Arquitetura

Essa arquitetura de referência contém uma camada de banco de dados altamente disponível, criada com o MDS e um cluster do OKE.

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

Veja a seguir a descrição da ilustração architecture-kubernetes-mysql-oci.png
Descrição da ilustração architecture-kubernetes-mysql-oci.png

arquitetura-kubernetes-mysql-oci-oracle.zip

Ao implantar o MDS em uma sub-rede de Domínio Ativo, o MDS implantará um cluster de instâncias do MySQL, com uma instância em cada Domínio de Falha para fornecer a redundância. Uma instância é a principal e as outras duas instâncias são as secundárias. O principal inclui um único ponto final que permite leituras e gravações no banco de dados, enquanto as secundárias recebem dados replicados do principal. Não é permitido o acesso direto às instâncias secundárias.

Em caso de falha ou switchover manual, uma das secundárias se torna a nova instância principal e o ponto final é redirecionado a ela. Isso significa que o endereço IP do ponto final nunca muda e não há necessidade de atualizar o aplicativo. A OCI gerencia os aspectos de alta disponibilidade do banco de dados.

A arquitetura inclui um cluster do OKE, que funciona com o Oracle Cloud Infrastructure Registry para acomodar aplicativos nativos da nuvem desenvolvidos e implantáveis.

A arquitetura tem os seguintes componentes:

  • Bastion host

    O bastion host é uma instância de computação que serve como ponto de entrada seguro e controlado para a topologia de fora da nuvem. O bastion host geralmente é provisionado em uma zona desmilitarizada (DMZ). Ele permite proteger recursos confidenciais colocando-os nas redes privadas que não podem ser acessadas diretamente de fora da nuvem. A topologia tem um único ponto de entrada conhecido que você pode monitorar e auditar regularmente. Portanto, você pode evitar expor os componentes mais confidenciais da topologia sem comprometer o acesso a eles.

  • Container Engine for Kubernetes

    O Oracle Cloud Infrastructure Container Engine for Kubernetes é um serviço totalmente gerenciado, escalável e altamente disponível que você pode usar para implantar seus aplicativos de contêineres na nuvem. Você especifica os recursos de computação necessários para os seus aplicativos, e o Serviço Container Engine for Kubernetes vai provisioná-los no Oracle Cloud Infrastructure em uma tenancy existente. O Serviço Container Engine for Kubernetes usa o Kubernetes para automatizar a implantação, o dimensionamento e o gerenciamento de aplicativos de contêineres em clusters de hosts.

  • Oracle MySQL Database Service

    O Oracle MySQL Database Service é um serviço de banco de dados do Oracle Cloud Infrastructure (OCI) totalmente gerenciado que permite aos desenvolvedores desenvolver e implantar rapidamente aplicativos nativos da nuvem seguros. Otimizado e exclusivamente disponível no OCI, o Oracle MySQL Database Service é 100% criado, gerenciado e suportado pelas equipes de engenharia do OCI e do MySQL.

    O Oracle MySQL Database Service tem um mecanismo de análise integrado, de alto desempenho (HeatWave) para executar análises sofisticadas em tempo real diretamente em um banco de dados MySQL operacional.

  • Registro

    O Oracle Cloud Infrastructure Registry é um registro gerenciado pela Oracle que permite simplificar seu workflow de desenvolvimento até a produção. O registro facilita o armazenamento, o compartilhamento e o gerenciamento de artefatos de desenvolvimento, como imagens do Docker. A arquitetura altamente disponível e escalável do Oracle Cloud Infrastructure garante que você possa implantar e gerenciar seus aplicativos de forma confiável.

  • Região

    Uma região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, denominados domínios de disponibilidade. As regiões são independentes das outras regiões, e grandes distâncias podem se separar (em países ou até mesmo continentes).

  • VCN (Virtual Cloud Network) e sub-rede

    Uma VCN é uma rede personalizável definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes de data center tradicionais, as VCNs dão a você total controle sobre seu ambiente de rede. Uma VCN pode ter vários blocos CIDR não sobrepostos que você pode alterar após criar a VCN. Você pode segmentar uma VCN em sub-redes, que podem ter escopo em uma região ou em um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contínuo de endereços que não se sobrepõem com as 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.

  • Domínios de disponibilidade

    Os domínios de disponibilidade são data centers independentes 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, que oferecem tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura como energia ou resfriamento ou rede interna. Portanto, é pouco provável que uma falha em um domínio de disponibilidade afete os outros domínios

  • Domínios de falha

    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 diversos domínios de falha, seus aplicativos podem tolerar falha física do servidor, manutenção do sistema e falhas de alimentação dentro de um domínio de falha.

  • Gateway de roteamento dinâmico (DRG)

    O DRG é um roteador virtual que fornece um caminho para o tráfego de rede privada entre uma VCN e uma rede fora da região, como uma VCN em outra região do Oracle Cloud Infrastructure, uma rede local ou uma rede em outro provedor de nuvem.

  • Gateway de serviço

    O gateway de serviço fornece acesso de uma VCN a outros serviços, como o Oracle Cloud Infrastructure Object Storage. O tráfego da VCN para o serviço Oracle percorre a malha da rede Oracle e nunca atravessa a internet.

  • 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.

  • Lista de segurança

    Para cada sub-rede, você pode criar regras de segurança que especifiquem a origem, o destino e o tipo de tráfego que deve ser permitido dentro e fora da sub-rede.

  • Tabela 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.

Recomendações

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

  • Bastion host

    Use a forma VM.Standard.E4.Flex com uma CPU e 1 GB de memória e o Sistema Operacional Oracle Linux mais recente.

  • Cluster do OKE

    Use a opção Criação Personalizada na Console para que você possa especificar uma VCN e uma sub-rede para implantação. Crie um cluster de três nós e escolha VM.Standard.E4.Flex como sua forma inicial. Para implantações maiores, você pode usar um tamanho de cluster maior com uma forma de computação mais alta.

  • Forma do Sistema de BD

    Essa arquitetura usa Alta Disponibilidade no MDS para fornecer três servidores MySQL distribuídos entre os domínios de falha. Para uma carga de trabalho leve, recomendamos o uso do MySQL.VM.Standard.E3.1.8GB.HA. É possível usar configurações maiores para cargas de trabalho mais exigentes.

  • Estabelecendo conexão com o MDS

    Você pode acessar o MDS diretamente com o cliente MySQL ou um shell MySQL instalado em VMs ou contêineres de aplicativos.

  • Armazenamento do Banco de Dados do MDS

    O desempenho do Armazenamento de Banco de Dados do MDS é dimensionado com o tamanho de armazenamento selecionado para o sistema de BD. Não é possível limitar ou editar o IOPS de armazenamento do MDS. Você deve provisionar o tamanho do armazenamento com base no tamanho dos dados e nos requisitos de desempenho. O MDS usa a opção de Desempenho Superior do serviço Block Volume no iSCSI. Os resultados finais do desempenho podem variar para diferentes formas e cenários.

  • Registro de Contêiner

    A Oracle gerencia o registro; portanto, você não precisa escolher o tamanho ou nenhuma outra opção. Recomendamos a criação de um registro privado para as melhores práticas de segurança.

  • 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 às sub-redes na VCN. Use blocos CIDR que estão dentro do espaço de endereço IP privado padrão.

    Selecione os blocos CIDR que não se sobrepõem 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 seu fluxo de tráfego e os requisitos de segurança. Anexe todos os recursos dentro de uma camada ou atribuição específica à mesma sub-rede, que pode servir como limite de segurança.

Considerações

  • Escalabilidade

    Você pode dimensionar o MySQL verticalmente, alterando a configuração da VM de cada nó do serviço Compute. O uso de uma forma com uma contagem de núcleos mais alta aumenta a memória e a largura de banda da rede alocadas para a instância do serviço Compute.

  • Disponibilidade do aplicativo

    Essa arquitetura usa Alta Disponibilidade no MDS para distribuir instâncias de computação entre diversos domínios de falha, o que remove pontos únicos de falha e fornece redundância.

  • Custo

    Selecione a configuração da VM com base nos núcleos, memória e largura de banda de rede necessários para o seu banco de dados. Você pode começar com uma forma de um núcleo. Se você precisar de mais largura de banda de desempenho, memória ou rede para o nó do aplicativo ou do banco de dados, poderá alterar a configuração da VM posteriormente.

Implantar

O código do Terraform para esta arquitetura de referência está disponível como uma pilha de amostra no Oracle Cloud Infrastructure Resource Manager. Você também pode baixar o código do GitHub, e personalizá-lo de acordo com seus requisitos específicos.

  • Implante usando a pilha de amostra no Oracle Cloud Infrastructure Resource Manager:
    1. Clique em Implante no Oracle Cloud

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

    2. Revise e aceite os termos e condições.
    3. Selecione a região na qual você deseja implantar a pilha.
    4. Siga os prompts na tela e as instruções para criar a pilha.
    5. Após criar a pilha, clique em Ações do Terraform e selecione Planejar.
    6. Aguarde a conclusão da tarefa 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.

    7. Se nenhuma alteração adicional for necessária, retorne à página Detalhes da Pilha, clique em Ações do Terraform e selecione Aplicar.
  • Implante usando o código do Terraform no GitHub:
    1. Vá para GitHub.
    2. Clone ou faça download do repositório para seu computador local.
    3. Siga as instruções no documento README.

Alterar Log

Esse log lista alterações significativas: