Serviços de banco de dados MySQL e PostgreSQL no Azure

Concluído

Se você tiver um banco de dados local funcional, por que deve considerar movê-lo para um serviço de nuvem, como o Azure? Da mesma forma, por que considerar a implementação de um novo sistema de banco de dados no Azure? Muitas organizações realizam essa migração porque é fácil e relativamente barato criar um serviço altamente disponível e escalável na nuvem, em comparação com o uso de um datacenter local.

Para sua empresa iniciante, os bancos de dados que atualmente são executados no MySQL e PostgreSQL no local são de missão crítica, mas limitados pelo tamanho do seu data center e pelo tamanho da sua equipe de administração. Você deseja investigar se pode resolver essas limitações usando os serviços do Azure e, em caso afirmativo, quais serviços são mais adequados às suas necessidades.

Aqui, você aprenderá sobre o Banco de Dados do Azure para MySQL, o Banco de Dados do Azure para MariaDB e o Banco de Dados do Azure para PostgreSQL e as opções de implantação que você pode usar com eles. Você também aprenderá sobre as vantagens de executar bancos de dados de código aberto em máquinas virtuais ou contêineres no Azure e a abordagem de infraestrutura como serviço (IaaS).

Disponibilidade

A disponibilidade garantida pelos SLAs (contratos de nível de serviço) do Azure depende dos detalhes precisos da sua implementação, mas eles são sempre altos. Por exemplo, para o Banco de Dados do Azure para PostgreSQL, a Microsoft garante 99,99% de disponibilidade sem custo adicional. Para uma disponibilidade ainda maior, você pode usar o Servidor Flexível.

Se você quisesse obter essa disponibilidade em uma rede local, teria que arquitetar um sistema resiliente a falhas de hardware. Você precisaria de:

  • Vários servidores físicos.
  • Um balanceador de carga que pode redirecionar consultas se houver uma falha do servidor.
  • Uma rede de área de armazenamento que compartilha dados entre servidores ou uma maneira de replicar dados entre servidores.
  • Hardware de rede resiliente.
  • Um datacenter controlado ambientalmente.
  • Fontes de alimentação ininterruptas e geradores de backup.

Todos esses componentes são caros e exigem habilidade para implementar e executar. Consumiriam também recursos administrativos significativos. Com o Azure, esses requisitos já estão resolvidos; basta criar o banco de dados e a alta disponibilidade é incorporada.

Escalabilidade

Se sua base de usuários cresce, a demanda do sistema cresce com ela. Cada sistema local tem uma capacidade máxima — se você se aproximar desse limite, deverá aumentá-lo adicionando mais hardware. Não é possível adicionar capacidade instantaneamente. Em vez disso, você deve comprar o hardware, instalar o sistema operacional e o software necessários, aplicar atualizações e adicionar os dados à nova instância do banco de dados. Todas estas coisas levam tempo.

Lembre-se também que a alta demanda é muitas vezes temporária. Por exemplo, se você executar uma campanha de marketing bem-sucedida, poderá ver um pico no tráfego, seguido por um retorno à demanda menor. Em uma configuração local, você precisa projetar o sistema para esses picos. Isso significa que o sistema é subutilizado na maioria das vezes, mas ainda fatura e requer manutenção.

Esses desafios são muito mais fáceis de superar na nuvem. Se o seu sistema atingir sua capacidade, você poderá responder muito rapidamente, por exemplo, movendo-se para uma camada maior ou adicionando máquinas virtuais. Se a demanda cair, você economizará dinheiro rapidamente removendo a capacidade. No Azure, você paga apenas pela capacidade usada.

IaaS e PaaS

Você pode escolher entre pelo menos duas abordagens ao implementar um banco de dados no Azure, dependendo do nível de controle necessário:

  • Infraestrutura como serviço (IaaS). Se você escolher a abordagem IaaS, o Azure executará a infraestrutura física para você. Você cria máquinas virtuais e redes virtuais para conectá-las e, em seguida, instala o software e os dados necessários. Executar uma máquina virtual é como executar um servidor físico. Você mantém o sistema operacional e o software, mas não precisa se preocupar com o datacenter, o controle ambiental ou as conexões com a internet.
  • Plataforma como serviço (PaaS). Se você escolher a abordagem PaaS, o Azure executará a infraestrutura física, os servidores virtuais necessários e o software de banco de dados. Não é necessário executar tarefas de configuração ou manutenção nesses componentes. Por exemplo, o Azure aplica pacotes de serviços automaticamente. Você pode se concentrar na administração do banco de dados. As ofertas de PaaS para executar bancos de dados de código aberto no Azure incluem o Banco de Dados do Azure para MySQL, o Banco de Dados do Azure para MariaDB e o Banco de Dados do Azure para PostgreSQL.

Quais são os serviços do Banco de Dados do Azure para MySQL, MariaDB e PostgreSQL?

Se você tiver um sistema de banco de dados local criado em MySQL, MariaDB ou PostgreSQL e quiser mover seu banco de dados para a nuvem, considere usar o Banco de Dados do Azure para MySQL, o Banco de Dados do Azure para MariaDB ou o Banco de Dados do Azure para PostgreSQL. Você também pode querer usar esses serviços para implementar novos bancos de dados. Por exemplo, se seus desenvolvedores e administradores de banco de dados tiverem experiência com esses servidores de banco de dados e você não quiser que eles gastem tempo aprendendo um novo sistema, usar o Banco de Dados do Azure para MySQL, o Banco de Dados do Azure para MariaDB ou o Banco de Dados do Azure para PostgreSQL permitirá que a equipe use seu conhecimento existente. O Banco de Dados do Azure para MySQL, o Banco de Dados do Azure para MariaDB e o Banco de Dados do Azure para PostgreSQL são sistemas PaaS, portanto, você não precisa se preocupar com a arquitetura ou implementação de servidores ou redes virtuais.

O que é a Base de Dados do Azure para MySQL?

A Base de Dados do Azure para MySQL é uma implementação PaaS do MySQL na cloud do Azure, baseada na Community Edition do MySQL. Atualmente, você pode selecionar entre o suporte para as versões 5.6, 5.7 e 8.0 do MySQL, dependendo de suas necessidades. O suporte para versões adicionais será fornecido à medida que o MySQL evolui.

As seguintes funcionalidades são proporcionadas com a Base de Dados do Azure para MySQL:

  • Recursos de alta disponibilidade integrados.
  • Desempenho previsível.
  • Dimensionamento fácil que responde rapidamente à procura.
  • Dados protegidos, tanto inativos como em movimento.
  • Cópias de segurança automáticas e recuperação para um ponto anterior no tempo até 35 dias.
  • Segurança de nível empresarial e conformidade com a legislação.

O sistema utiliza preços pay as you go para que pague apenas pelo que utiliza.

Você pode escolher entre duas opções de implantação:

Banco de Dados do Azure para MySQL - Servidor Flexível

O Banco de Dados do Azure para MySQL - Servidor Flexível fornece maior disponibilidade replicando seus bancos de dados para várias zonas de disponibilidade. Ele também permite que você inicie e pare seu serviço de banco de dados rapidamente para otimizar custos.

A Base de Dados do Azure para MySQL proporciona um sistema de base de dados global que aumenta verticalmente para bases de dados de grande dimensão sem a necessidade de gerir hardware, componentes de rede, servidores virtuais, patches de software e outros componentes subjacentes.

O que é a Azure Database for MariaDB?

MariaDB é um fork do MySQL que foi criado pela comunidade em resposta à aquisição do MySQL pela Oracle. O Banco de Dados do Azure para MariaDB é a implementação PaaS do MariaDB na nuvem do Azure.

O MariaDB foi projetado para ser um substituto drop-in para o MySQL, para que você possa substituir um banco de dados MySQL por um banco de dados MariaDB sem recodificação extensiva de aplicativos cliente ou alterações no esquema do banco de dados. Muitos recursos do MariaDB são os mesmos do MySQL, por exemplo:

  • Estruturas e índices de bases de dados
  • Comandos de definição de dados
  • Protocolos, estruturas e APIs de clientes
  • Os mysqldump e mysqladmin programas

Essa semelhança entre MySQL e MariaDB significa que as tarefas de migração do MySQL para o Banco de Dados do Azure para MySQL são muito semelhantes para o MariaDB para o Banco de Dados do Azure para MariaDB. Existem algumas diferenças entre os sistemas. Por exemplo, o MariaDB suporta ColumnStore e Cache Redis, que podem ser usados para otimizar o desempenho.

Nota

Como a migração de bancos de dados do MySQL e MariaDB para o Azure é tão semelhante, eles serão abordados juntos neste curso.

Importante

No momento da escrita, não há nenhuma opção de implantação de Servidor Flexível para o Banco de Dados do Azure para MariaDB.

O que é a Base de Dados do Azure para PostgreSQL?

Se preferir PostgreSQL, você pode escolher o Banco de Dados do Azure para PostgreSQL para obter uma implementação PaaS desse servidor de banco de dados na Nuvem do Azure. Isso fornece a mesma disponibilidade, desempenho, escala, segurança e benefícios administrativos que o serviço MySQL.

Você pode escolher entre três opções de implantação:

Base de Dados do Azure para PostgreSQL – Servidor Flexível

O Banco de Dados do Azure para PostgreSQL - Servidor Flexível fornece benefícios semelhantes aos do Servidor Flexível MySQL. Você pode usá-lo para fornecer os maiores níveis de disponibilidade e reinicializações convenientes.

Opções de IaaS para executar MySQL, MariaDB e PostgreSQL no Azure

Use a abordagem IaaS para replicar uma arquitetura física na nuvem. Você pode escolher IaaS se quiser manter mais controle dos sistemas operacionais e do software subjacente ao seu sistema.

No entanto, há várias abordagens que você pode adotar para implementar a abordagem IaaS, dependendo de seus requisitos e da complexidade de seus sistemas existentes.

Migração lift-and-shift

Uma abordagem é espelhar sua arquitetura local na nuvem criando uma infraestrutura de rede virtual que corresponda à do seu datacenter — você cria uma máquina virtual para cada servidor em seu sistema local. Você instala e configura o software do sistema de gerenciamento de banco de dados (MySQL, MariaDB ou PostgreSQL) nas máquinas virtuais. Em seguida, você eleva e transfere o sistema para a nuvem com pouca alteração no código ou na configuração do cliente.

Com essa estratégia, você segue um processo passo a passo para a migração. Você move partes do seu sistema incrementalmente para a nuvem, mantendo outros elementos no local, usando o gateway de rede do Azure. Use essa abordagem híbrida para estabilizar o sistema em cada etapa e reverter, se necessário.

Usar máquinas virtuais pré-criadas

O mercado inclui máquinas virtuais pré-configuradas para servidores MySQL, MariaDB e PostgreSQL. Essas imagens economizam tempo porque você não precisa instalar o software do servidor de banco de dados sozinho. Ao configurar máquinas virtuais de banco de dados, verifique se há uma imagem no Marketplace com a versão correta do software de banco de dados e considere usá-la.

Você também pode carregar uma imagem de máquina virtual personalizada no Azure e usá-la para criar máquinas virtuais. Esta imagem pode incluir o software de banco de dados de sua escolha e até mesmo o próprio banco de dados. Para obter mais informações, consulte Tutorial: Criar uma imagem personalizada de uma VM do Azure com o Azure PowerShell.

Usar contêineres MySQL, MariaDB ou PostgreSQL

Outra tecnologia de virtualização que você pode considerar é a conteinerização. Um contêiner é como uma máquina virtual, mas compartilha o sistema operacional com o computador host. Os contêineres são menores do que as máquinas virtuais, portanto, você pode executar mais deles em um computador host e iniciar novos mais rapidamente. No entanto, você não pode executar um contêiner Linux em uma máquina Windows, por exemplo, porque o sistema operacional é compartilhado. Para executar contêineres em um servidor físico, você precisa de software host de contêiner, como o Docker. Os contêineres são implantados a partir de imagens e, como máquinas virtuais, essas imagens podem incluir software de banco de dados como MySQL, MariaDB e PostgreSQL.

Se você quiser executar um pequeno número de contêineres no Azure, instale o Docker em uma máquina virtual. Como alternativa, se você usar o serviço Instâncias de Contêiner, poderá executar contêineres no Azure sem configurar suas próprias máquinas virtuais. Se você quiser gerenciar facilmente um grande número de contêineres que precisam se comunicar uns com os outros, use o Serviço Kubernetes do Azure.