MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Comparando as Ofertas do Galera Cluster Cloud:Parte Três Microsoft Azure

O Microsoft Azure é conhecido por muitos como uma plataforma de nuvem pública alternativa ao Amazon AWS. Não é fácil comparar diretamente essas duas empresas gigantes. O negócio de nuvem da Microsoft - apelidado de nuvem comercial - inclui tudo, desde Azure até assinaturas corporativas do Office 365, Dynamics 365 e serviços do LinkedIn. Depois que o LinkedIn foi adquirido pela Microsoft, ele começou a mover sua infraestrutura para o Azure. Embora a migração do LinkedIn para o Azure possa levar algum tempo, ela demonstra os recursos e a capacidade do Microsoft Azure de lidar com milhões de transações. A forte herança corporativa, pilha de software e ferramentas de data center da Microsoft oferecem familiaridade e uma abordagem híbrida para implantações de nuvem.

O Microsoft Azure é construído como uma infraestrutura como serviço (IaaS), bem como uma plataforma como serviço (PaaS). A máquina virtual do Azure oferece cobrança por segundo e atualmente é uma computação multilocatário. No entanto, recentemente visualizou sua nova oferta, que permite que máquinas virtuais sejam executadas em servidores físicos de locatário único. A oferta é chamada de Hosts Dedicados do Azure.

O Azure também oferece instâncias grandes especializadas (como para SAP HANA). Existem blocos multilocatários, armazenamento de arquivos e muitos outros recursos adicionais de IaaS e PaaS. Isso inclui armazenamento de objetos (Azure Blob Storage), um CDN, um serviço de contêiner baseado em Docker (Azure Container Service), um serviço de computação em lote (Azure Batch) e “computação sem servidor” orientada a eventos (Azure Functions). O Azure Marketplace oferece software e serviços de terceiros. As necessidades de colocação são atendidas por meio de trocas de parceiros (Azure ExpressRoute) oferecidas por parceiros como Equinix e CoreSite.

Com todas essas ofertas, o Microsoft Azure intensificou seu jogo para desempenhar um papel vital no mercado de nuvem pública. A infraestrutura de PaaS oferecida a seus consumidores conquistou muita confiança e muitos estão migrando sua própria infraestrutura ou nuvem privada para a infraestrutura de nuvem pública do Microsoft Azure. Isso é especialmente vantajoso para consumidores que precisam de integração com outros Serviços do Windows, como o Visual Studio.

Então, qual é a diferença entre o Azure e as outras nuvens que analisamos nesta série? A Microsoft se concentrou fortemente em IA, análise e Internet das Coisas. O AzureStack é outro esforço de “cloud-meets-data center” que tem sido um verdadeiro diferencial no mercado.

Prós e contras da migração do Microsoft Azure

Há várias coisas que você deve considerar ao mover seus aplicativos ou infraestrutura herdados para o Microsoft Azure.

Forças

  • As empresas estrategicamente comprometidas com a tecnologia da Microsoft geralmente escolhem o Azure como seu principal provedor de IaaS+PaaS. A experiência integrada de ponta a ponta para empresas que criam aplicativos .NET usando o Visual Studio (e serviços relacionados) é insuperável. A Microsoft também está aproveitando seu enorme alcance de vendas e capacidade de co-venda do Azure com outros produtos e serviços da Microsoft para impulsionar a adoção.
  • O Azure oferece uma abordagem bem integrada para computação de borda e Internet das Coisas (IoT), com ofertas que vão desde seu data center de hiperescala até soluções de borda, como AzureStack e Data Box Edge.
  • Os recursos do Microsoft Azure tornaram-se cada vez mais inovadores e abertos. 50% das cargas de trabalho são baseadas em Linux, juntamente com várias pilhas de aplicativos de código aberto. A Microsoft tem uma visão única para o futuro que envolve trazer parceiros de tecnologia por meio de ofertas nativas, como VMware, NetApp, Red Hat, Cray e Databricks.

Cuidados

  • Os problemas de confiabilidade do Microsoft Azure continuam sendo um desafio para os clientes, em grande parte como resultado das dores de crescimento do Azure. Desde setembro de 2018, o Azure teve vários incidentes com impacto no serviço, incluindo interrupções significativas envolvendo o Azure Active Directory. Essas interrupções deixam os clientes sem capacidade de mitigar o tempo de inatividade.
  • Os clientes da Gartner geralmente enfrentam desafios para executar implementações dentro do prazo e dentro do orçamento. Isso vem da Microsoft, muitas vezes fornecendo expectativas excessivamente altas para os clientes. Muito disso decorre do fato de as equipes de vendas de campo da Microsoft serem “encorajadas” a posicionar e vender adequadamente o Azure em sua base de clientes.
  • As empresas frequentemente lamentam a qualidade do suporte técnico da Microsoft (junto com o custo crescente do suporte) e os arquitetos de soluções de campo. Isso afeta negativamente a satisfação do cliente e retarda a adoção do Azure e, portanto, os gastos do cliente.

A Microsoft pode não ser sua primeira escolha, pois tem sido vista como uma gigante da tecnologia “não tão amigável ao código aberto”, mas, para ser justo, ela abraçou muita atividade e suporte dentro do Mundo de código aberto. O Microsoft Azure oferece serviços totalmente gerenciados para a maioria dos principais bancos de dados RDBMS de código aberto, como PostgreSQL, MySQL e MariaDB.
As variantes de

Galera Cluster (Percona, Codership ou MariaDB), infelizmente, não são compatíveis com o Azure. A única maneira de implantar seu Cluster Galera no Azure é por meio de uma Máquina Virtual. Você também pode verificar o blog deles sobre o uso do MariaDB Enterprise Cluster (baseado no Galera) no Azure.

Máquina Virtual do Azure

Virtual Machine é a oferta equivalente para instâncias de computação no GCP e AWS. Uma máquina virtual do Azure é um servidor de computação sob demanda de alto desempenho na nuvem e pode ser implantado no Azure usando vários métodos. Isso pode incluir a interface do usuário no portal do Azure, usando imagens pré-configuradas no mercado do Azure, scripts por meio do Azure PowerShell, implantação de um modelo definido usando um arquivo JSON ou implantando diretamente por meio do Visual Studio.

O Azure usa um modelo de implantação chamado Azure Resource Manager (ARM), que define todos os recursos que fazem parte de sua solução geral de aplicativo, permitindo que você implante, atualize ou exclua sua solução em uma única operação .

Os recursos podem incluir a conta de armazenamento, configurações de rede e endereços IP. Você pode ter ouvido o termo “modelos ARM”, que significa essencialmente o modelo JSON que define os diferentes aspectos da sua solução que você está tentando implantar.

As Máquinas Virtuais do Azure vêm em diferentes tipos e tamanhos, com nomes começando com série A a série N. Cada tipo de VM é criado com cargas de trabalho específicas ou necessidades de desempenho em mente, incluindo uso geral, otimização de computação, otimização de armazenamento ou otimização de memória. Você também pode implantar tipos menos comuns, como GPU ou VMs de computação de alto desempenho.

Semelhante a outras ofertas de nuvem pública, você pode fazer o seguinte em suas instâncias de máquina virtual...

  • Criptografe seu disco na máquina virtual . Embora isso não seja fácil quando comparado ao GCP e AWS. Criptografar sua máquina virtual requer uma abordagem mais manual. Ele exige que você conclua os pré-requisitos do Azure Disk Encryption. Como o Galera não suporta Windows, estamos falando aqui apenas de imagens baseadas em Linux. Basicamente, requer que você tenha módulos dm-crypt e vfat presentes no sistema. Depois de acertar essa parte, você pode criptografar a VM usando a CLI do Azure. Você pode conferir como habilitar a criptografia de disco do Azure para VMs IaaS do Linux para ver como fazer isso. Criptografar seu disco é muito importante, especialmente se sua empresa ou organização exigir que os dados do Galera Cluster sigam os padrões exigidos por leis e regulamentos, como PCI DSS ou GDPR.
  • Criando um instantâneo . Você pode criar um instantâneo usando a CLI do Azure ou por meio do portal. Verifique o manual deles sobre como fazer isso.
  • Use o dimensionamento automático ou conjuntos de dimensionamento de máquina virtual se precisar de dimensionamento horizontal . Confira a visão geral do dimensionamento automático no Azure ou a visão geral dos conjuntos de dimensionamento de máquinas virtuais.
  • Implantação em várias zonas . Implante suas instâncias de máquina virtual em diferentes zonas de disponibilidade para evitar um único ponto de falha.

Você também pode criar (ou obter informações de) suas máquinas virtuais de diferentes maneiras. Você pode usar o portal do Azure, Azure PowerShell, APIs REST, SDKs de cliente ou com a CLI do Azure. As máquinas virtuais na rede virtual do Azure também podem ser facilmente conectadas à rede da sua organização e tratadas como um datacenter estendido.

Preços do Microsoft Azure

Assim como outros provedores de nuvem pública, o Microsoft Azure também oferece um nível gratuito com alguns serviços gratuitos. Ele também oferece opções de pagamento conforme o uso e instâncias reservadas para escolher. O pagamento conforme o uso começa em US$ 0,008/hora - US$ 0,126/hora.

Para instâncias reservadas, quanto mais tempo você confirmar e contratar com o Azure, mais você economiza no custo. O Microsoft Azure afirma ajudar os assinantes a economizar até 72% de seus custos de cobrança em comparação com seu modelo de pagamento conforme o uso quando os assinantes se inscrevem por um período de um a três anos para uma máquina virtual Windows ou Linux. A Microsoft também oferece flexibilidade adicional no sentido de que, se sua empresa precisar mudar, você poderá cancelar sua assinatura de RI do Azure a qualquer momento e devolver a RI restante não utilizada à Microsoft como uma taxa de rescisão antecipada.

Vamos verificar os preços em comparação entre GCP, AWS EC2 e uma máquina virtual do Azure. Isso é baseado na região us-east1 e compararemos as faixas de preço das instâncias de computação necessárias para executar seu cluster Galera.

Máquina/
Instância
Tipo

Google
Compute Engine

AWS EC2

Microsoft
Azure

Compartilhado

f1-micro

G1-pequeno

Os preços começam em US$ 0,006 -  US$ 0,019 por hora

t2.nano – t3a.2xlarge

O preço começa em US$ 0,0058 - US$ 0,3328 por hora

Série B

O preço começa em US$ 0,0052 - US$ 0,832 por hora

Padrão

n1-standard-1 – n1-standard-96

Os preços começam em US$ 0,034  - US$ 3,193 por hora

m4.large – m4.16xlarge

m5.large – m5d.metal

Os preços começam em US$ 0,1 - US$ 5,424  por hora

Av2 Standard, D2-64 v3 última geração, D2s-64s v3 última geração, D1-5 v2, DS1-S5 v2, série DC

O preço começa em US$ 0,043 - US$ 3,072 por hora

Memória alta/ Memória otimizada

n1-highmem-2 – n1-highmem-96

n1-megamem-96

n1-ultramem-40 – n1-ultramem-160

Os preços começam em US$ 0,083  - US$ 17,651 por hora

r4.large – r4.16xlarge

x1,16xgrande – x1,32xgrande

x1e.xlarge – x1e.32xlarge

Os preços começam em US$ 0,133  - US$ 26,688 por hora

D2a – D64a v3, D2as – D64as v3, E2-64 v3 última geração, E2a – E64a v3, E2as – E64as v3, E2s-64s v3 última geração, D11-15 v2, DS11-S15 v2, M-series, Mv2-series, Instances, Extreme Memory Optimized

O preço começa em US$ 0,043 - US$ 44,62 por hora

Alta CPU/Armazenamento otimizado

n1-highcpu-2 – n1-highcpu-32

Os preços começam em US$ 0,05 - US$ 2,383 por hora

h1.2xlarge – h1.16xlarge

i3.large – i3.metal

I3en.large - i3en.metal

d2.xlarge – d2.8xlarge

Os preços começam em US$ 0,156 - US$ 10,848  por hora

Fsv2-series, F-series, Fs-Series

O preço começa em US$ 0,0497 - US$ 3,045 por hora

Criptografia de dados no Microsoft Azure

O Microsoft Azure não oferece suporte de criptografia diretamente para Galera Cluster (ou vice-versa). Existem, no entanto, maneiras de criptografar dados em repouso ou em trânsito.

A criptografia em trânsito é um mecanismo para proteger os dados quando são transmitidos pelas redes. Com o Armazenamento do Azure, você pode proteger dados usando:

  • Criptografia em nível de transporte, como HTTPS, quando você transfere dados para dentro ou para fora do Armazenamento do Azure.
  • Criptografia de fio, como criptografia SMB 3.0, para compartilhamentos de arquivos do Azure.
  • Criptografia do lado do cliente, para criptografar os dados antes de serem transferidos para o armazenamento e para descriptografar os dados após serem transferidos para fora do armazenamento.

A Microsoft usa criptografia para proteger os dados do cliente quando estão em trânsito entre o território do cliente e os serviços de nuvem da Microsoft. Mais especificamente, o Transport Layer Security (TLS) é o protocolo que os data centers da Microsoft usarão para negociar com sistemas clientes conectados aos serviços em nuvem da Microsoft.

Perfect Forward Secrecy (PFS) também é empregado para que cada conexão entre os sistemas clientes dos clientes e os serviços em nuvem da Microsoft use chaves exclusivas. As conexões com os serviços de nuvem da Microsoft também aproveitam os comprimentos de chave de criptografia de 2.048 bits baseados em RSA.

Criptografia em repouso

Para muitas organizações, a criptografia de dados em repouso é uma etapa obrigatória para alcançar a privacidade, a conformidade e a soberania dos dados. Três recursos do Azure fornecem criptografia de dados em repouso:

  • A Criptografia do Serviço de Armazenamento está sempre habilitada e criptografa automaticamente os dados do serviço de armazenamento ao gravá-los no Armazenamento do Azure. Se a lógica do seu aplicativo exigir que o banco de dados MySQL Galera Cluster armazene dados valiosos, o armazenamento no Armazenamento do Azure pode ser uma opção.
  • A criptografia do lado do cliente também oferece o recurso de criptografia em repouso.
  • A Criptografia de Disco do Azure permite criptografar os discos do SO e os discos de dados que uma máquina virtual IaaS usa. A Criptografia de Disco do Azure também dá suporte à habilitação da criptografia em VMs Linux configuradas com distribuição de disco (RAID) usando mdadm e habilitando a criptografia em VMs Linux usando LVM para discos de dados

Implantações Multi-AZ/Multi-Região/Multi-Cloud do Galera Cluster com GCP

Semelhante à AWS e GCP, o Microsoft Azure não oferece suporte direto para a implantação de um Galera Cluster em um Multi-AZ/-Region/-Cloud. No entanto, você pode implantar seus nós manualmente, bem como criar scripts usando o PowerShell ou a CLI do Azure para fazer isso por você. Como alternativa, ao provisionar sua instância de máquina virtual, você pode colocar seus nós em diferentes zonas de disponibilidade. O Microsoft Azure também oferece outro tipo de redundância, além de ter sua zona de disponibilidade, que é chamada de Conjuntos de Dimensionamento de Máquinas Virtuais. Você pode verificar as diferenças entre a máquina virtual e os conjuntos de dimensionamento.

Alta disponibilidade, escalabilidade e redundância do cluster do Galera no Azure

Um dos principais motivos para usar um cluster de nó Galera é a alta disponibilidade, redundância e sua capacidade de dimensionamento. Se você estiver atendendo o tráfego globalmente, é melhor atender seu tráfego por região. Você deve garantir que seu projeto arquitetônico inclua a distribuição geográfica de seus nós de banco de dados. Para conseguir isso, são recomendadas implantações multi-AZ, multi-região ou multi-nuvem/multi-datacenter. Isso evita que o cluster fique inativo, bem como um mau funcionamento devido à falta de quorum.

Como mencionado anteriormente, o Microsoft Azure tem uma solução de dimensionamento automático que pode ser aproveitada usando conjuntos de dimensionamento. Isso permite dimensionar automaticamente um nó quando um determinado limite for atingido (com base no que você está monitorando). Isso depende de quais itens de status de integridade você está monitorando antes de ser dimensionado verticalmente. Você pode conferir o tutorial deles sobre este tópico aqui.

Para implantações multi-região ou multi-nuvem, Galera tem seu próprio parâmetro chamado gmcast.segment para o qual pode ser definido na inicialização do servidor. Este parâmetro é projetado para otimizar a comunicação entre os nós Galera e minimizar a quantidade de tráfego enviado entre segmentos de rede. Isso inclui retransmissão de conjunto de gravações e seleção de doadores IST e SST. Esse tipo de configuração permite implantar vários nós em diferentes regiões. Além disso, você também pode implantar seus nós Galera em um roteamento de fornecedores de nuvem diferente do GCP, AWS, Microsoft Azure ou em uma configuração local.

Recomendamos que você confira nosso blog Multiple Data Center Setups Using Galera Cluster for MySQL ou MariaDB and Zero Downtime Network Migration With MySQL Galera Cluster Using Relay Node para obter mais informações sobre como implementar esses tipos de implantações.

Desempenho do banco de dados de cluster do Galera no Microsoft Azure

As máquinas host subjacentes usadas por máquinas virtuais no Azure são, de fato, muito poderosas. As VMs mais recentes do Azure já foram equipadas com módulos de otimização de rede. Você pode verificar isso nas informações do seu kernel executando (por exemplo, no Ubuntu).

uname -r|grep azure

Observação:certifique-se de que seu comando tenha a string "azure" nele.

Para Centos/RHEL, instalar qualquer Linux Integration Services (LIS) desde a versão 4.2 contém otimização de rede. Para saber mais sobre isso, visite a página sobre como otimizar a taxa de transferência da rede.

Se seu aplicativo for muito sensível à latência da rede, talvez você esteja interessado em analisar o grupo de posicionamento de proximidade. Ele está atualmente em pré-visualização (e ainda não é recomendado para uso em produção), mas isso ajuda a otimizar a taxa de transferência da rede.

Para o tipo de máquina virtual que você consumiria, isso dependeria do requisito do tráfego do aplicativo e das demandas de recursos. Para consultas com alto consumo de memória, você pode começar com Dv3. No entanto, para otimização de memória, comece com a série Ev3. Para requisitos de alta CPU, como banco de dados de alta transação ou aplicativos de jogos, comece com a série Fsv2.

A escolha do armazenamento correto e do IOPS necessário para o volume do banco de dados é essencial. Geralmente, um disco permanente baseado em SSD é a escolha ideal. Comece com o SSD padrão, que é econômico e oferece desempenho consistente. Essa decisão, no entanto, pode depender se você precisar de mais IOPS a longo prazo. Se for esse o caso, você deve optar pelo armazenamento SSD Premium.

Recomendamos também que você verifique e leia nosso blog How to Improve Performance of Galera Cluster for MySQL ou MariaDB para saber mais sobre como otimizar seu Galera Cluster.

Backup de banco de dados para nós Galera no Azure

Não há suporte de backup ingênuo existente para seus dados do MySQL Galera no Azure, mas você pode tirar um instantâneo. O Microsoft Azure oferece o Backup de VM do Azure, que tira um instantâneo que pode ser agendado e criptografado.

Alternativamente, se você quiser fazer backup dos arquivos de dados do seu Galera Cluster, você também pode usar serviços externos como ClusterControl, usar Percona Xtrabackup para seu backup binário ou usar mysqldump ou mydumper para seus backups lógicos. Essas ferramentas fornecem cópias de backup para seus dados de missão crítica e você pode ler isso se quiser saber mais.

Monitoramento de cluster do Galera no Azure

O Microsoft Azure tem seu serviço de monitoramento chamado Azure Monitor. O Azure Monitor maximiza a disponibilidade e o desempenho de seus aplicativos fornecendo uma solução abrangente para coletar, analisar e atuar na telemetria de seus ambientes de nuvem e locais. Ele ajuda você a entender o desempenho de seus aplicativos e identifica proativamente os problemas que os afetam (e os recursos dos quais eles dependem). Você pode configurar ou criar alertas de integridade, ser notificado sobre avisos e alertas detectados nos serviços que você implantou.

Se você quiser um monitoramento específico para seu banco de dados, precisará utilizar ferramentas de monitoramento externas que tenham métricas de banco de dados avançadas e altamente granulares. Existem várias opções que você pode escolher, como PMM by Percona, DataDog, Idera, VividCortex ou nosso próprio ClusterControl (o monitoramento é GRATUITO com a Comunidade ClusterControl).

Galera Cluster Database Security no Azure

Conforme discutido em nossos blogs anteriores para AWS e GCP, você pode adotar a mesma abordagem para proteger seu banco de dados na nuvem pública. Depois de criar uma máquina virtual, você pode especificar quais portas só podem ser abertas ou criar e configurar seu grupo de segurança de rede no Azure. Você pode configurar as portas que precisam estar abertas (particularmente as portas 3306, 4444, 4567, 4568) ou criar uma rede virtual no Azure e especificar as sub-redes privadas se elas permanecerem como um nó privado. Para adicionar isso, se você configurar suas VMs no Azure sem um IP público, ainda poderá uma conexão de saída simplesmente porque usa SNAT e PAT. Se você estiver familiarizado com AWS e GCP, você vai gostar desta explicação para facilitar a compreensão.

Outro recurso disponível é o Controle de Acesso Baseado em Função no Microsoft Azure. Isso lhe dá controle sobre quais pessoas acessam os recursos específicos de que precisam.

Além disso, você pode proteger seus dados em trânsito usando uma conexão TLS/SSL ou criptografando seus dados quando estiverem inativos. Se você estiver usando o ClusterControl, implantar um seguro de dados em trânsito é simples e fácil. Você pode conferir nosso blog SSL Key Management and Encryption of MySQL Data in Transit se quiser experimentar. Para dados em repouso, você pode seguir a discussão que afirmei anteriormente na seção Criptografia deste blog.

Solução de problemas do cluster Galera 

O Microsoft Azure oferece uma ampla variedade de tipos de log para ajudar na solução de problemas e na auditoria. Os logs Logs de atividades, logs de diagnóstico do Azure, relatórios do Azure AD, máquinas virtuais e serviços de nuvem, logs de fluxo do Grupo de Segurança de Rede (NSG) e informações do aplicativo são muito úteis na solução de problemas. Pode nem sempre ser necessário entrar em tudo isso quando você precisar de solução de problemas, no entanto, isso adicionaria mais informações e pistas ao verificar os logs.

Se você estiver usando o ClusterControl, vá para Logs -> System Logs e poderá navegar pelos logs de erros capturados do próprio nó do MySQL Galera. Além disso, o ClusterControl fornece monitoramento em tempo real que amplifica seu sistema de alarme e notificação em caso de emergência ou se o(s) nó(s) do MySQL Galera estiverem danificados.

Conclusão

Ao terminarmos esta série de três partes do blog, mostramos as ofertas e as vantagens de cada um dos gigantes da tecnologia que atendem ao setor de nuvem pública. Há vantagens e desvantagens ao selecionar um em vez do outro, mas o que mais importa é o motivo para migrar para uma nuvem pública, seus benefícios para sua organização e como ela atende aos requisitos de seu aplicativo.

A escolha do fornecedor para o seu Galera Cluster pode envolver considerações financeiras como “o que é mais econômico” e se adapta melhor às suas necessidades orçamentárias. Também pode ser devido a leis de privacidade e conformidade com regulamentos, ou mesmo por causa da pilha de tecnologia que você deseja usar. O importante é como seu aplicativo e banco de dados funcionarão quando estiverem na nuvem, lidando com grandes quantidades de tráfego. Ele precisa ser altamente disponível, resiliente, ter os níveis certos de escalabilidade e redundância e fazer backups para garantir a recuperação dos dados.