sql >> Base de Datos >  >> RDS >> MariaDB

Comparación de las ofertas de Galera Cluster Cloud:tercera parte Microsoft Azure

Microsoft Azure es conocido por muchos como una plataforma de nube pública alternativa a Amazon AWS. No es fácil comparar directamente a estas dos empresas gigantes. El negocio de la nube de Microsoft, denominado nube comercial, incluye todo, desde Azure hasta suscripciones empresariales de Office 365, Dynamics 365 y servicios de LinkedIn. Después de que Microsoft adquiriera LinkedIn, comenzó a trasladar su infraestructura a Azure. Si bien mover LinkedIn a Azure podría llevar algún tiempo, demuestra las capacidades y la capacidad de Microsoft Azure para manejar millones de transacciones. La sólida herencia empresarial, la pila de software y las herramientas del centro de datos de Microsoft ofrecen familiaridad y un enfoque híbrido para las implementaciones en la nube.

Microsoft Azure está diseñado como una infraestructura como servicio (IaaS) y como una plataforma como servicio (PaaS). La máquina virtual de Azure ofrece facturación por segundo y actualmente es un proceso de varios inquilinos. Sin embargo, recientemente presentó una vista previa de su nueva oferta que permite que las máquinas virtuales se ejecuten en servidores físicos de un solo inquilino. La oferta se llama Azure Dedicated Hosts.

Azure también ofrece instancias grandes especializadas (como para SAP HANA). Hay bloques multiusuario, almacenamiento de archivos y muchas otras capacidades adicionales de IaaS y PaaS. Estos incluyen almacenamiento de objetos (Azure Blob Storage), una CDN, un servicio de contenedor basado en Docker (Azure Container Service), un servicio de computación por lotes (Azure Batch) y "informática sin servidor" basada en eventos (Azure Functions). Azure Marketplace ofrece software y servicios de terceros. Las necesidades de colocación se satisfacen a través de intercambios de socios (Azure ExpressRoute) ofrecidos por socios como Equinix y CoreSite.

Con todas estas ofertas, Microsoft Azure ha mejorado su juego para desempeñar un papel vital en el mercado de la nube pública. La infraestructura PaaS que se ofrece a sus consumidores ha ganado mucha confianza y muchos están trasladando su propia infraestructura o nube privada a la infraestructura de nube pública de Microsoft Azure. Esto es especialmente ventajoso para los consumidores que necesitan integración con otros servicios de Windows, como Visual Studio.

Entonces, ¿cuál es la diferencia entre Azure y las otras nubes que hemos visto en esta serie? Microsoft se ha centrado mucho en la IA, el análisis y el Internet de las cosas. AzureStack es otro esfuerzo de "la nube se encuentra con el centro de datos" que ha sido un diferenciador real en el mercado.

Pros y contras de la migración de Microsoft Azure

Hay varias cosas que debe tener en cuenta al trasladar sus aplicaciones o infraestructura heredadas a Microsoft Azure.

Fortalezas

  • Las empresas que están estratégicamente comprometidas con la tecnología de Microsoft generalmente eligen Azure como su principal proveedor de IaaS+PaaS. La experiencia integral integrada para empresas que crean aplicaciones .NET con Visual Studio (y servicios relacionados) es insuperable. Microsoft también está aprovechando su tremendo alcance de ventas y su capacidad para vender conjuntamente Azure con otros productos y servicios de Microsoft para impulsar la adopción.
  • Azure proporciona un enfoque bien integrado para la informática perimetral y el Internet de las cosas (IoT), con ofertas que se extienden desde su centro de datos de hiperescala hasta soluciones perimetrales como AzureStack y Data Box Edge.
  • Las capacidades de Microsoft Azure se han vuelto cada vez más innovadoras y abiertas. El 50% de las cargas de trabajo están basadas en Linux junto con numerosas pilas de aplicaciones de código abierto. Microsoft tiene una visión única para el futuro que implica incorporar socios tecnológicos a través de ofertas nativas propias, como las de VMware, NetApp, Red Hat, Cray y Databricks.

Precauciones

  • Los problemas de confiabilidad de Microsoft Azure continúan siendo un desafío para los clientes, en gran parte como resultado de los problemas de crecimiento de Azure. Desde septiembre de 2018, Azure ha tenido varios incidentes que afectan el servicio, incluidas interrupciones significativas que involucran a Azure Active Directory. Estas interrupciones dejan a los clientes sin capacidad para mitigar el tiempo de inactividad.
  • Los clientes de Gartner a menudo experimentan desafíos con la ejecución de implementaciones a tiempo dentro del presupuesto. Esto proviene de Microsoft, que a menudo proporciona expectativas irrazonablemente altas para los clientes. Gran parte de esto se debe a que los equipos de ventas de campo de Microsoft están "animados" a posicionar y vender Azure de manera adecuada dentro de su base de clientes.
  • Las empresas lamentan con frecuencia la calidad del soporte técnico de Microsoft (junto con el costo creciente del soporte) y los arquitectos de soluciones de campo. Esto afecta negativamente la satisfacción del cliente y ralentiza la adopción de Azure y, por lo tanto, el gasto del cliente.

Microsoft puede no ser su primera opción, ya que ha sido visto como un gigante tecnológico "no tan amigable con el código abierto", pero para ser justos, ha adoptado una gran cantidad de actividad y apoyo dentro de la Mundo de código abierto. Microsoft Azure ofrece servicios completamente administrados para la mayoría de las principales bases de datos RDBMS de código abierto, como PostgreSQL, MySQL y MariaDB.

Lamentablemente, las variantes de

Galera Cluster (Percona, Codership o MariaDB) no son compatibles con Azure. La única forma en que puede implementar su clúster de Galera en Azure es mediante una máquina virtual. También puede consultar su blog sobre el uso de MariaDB Enterprise Cluster (que se basa en Galera) en Azure.

Máquina virtual de Azure

Virtual Machine es la oferta equivalente para instancias informáticas en GCP y AWS. Una máquina virtual de Azure es un servidor informático de alto rendimiento bajo demanda en la nube y se puede implementar en Azure mediante varios métodos. Estos pueden incluir la interfaz de usuario dentro de Azure Portal, el uso de imágenes preconfiguradas en el mercado de Azure, la creación de scripts a través de Azure PowerShell, la implementación desde una plantilla que se define mediante el uso de un archivo JSON o la implementación directamente a través de Visual Studio.

Azure usa un modelo de implementación llamado Azure Resource Manager (ARM), que define todos los recursos que forman parte de su solución de aplicación general, lo que le permite implementar, actualizar o eliminar su solución en una sola operación .

Los recursos pueden incluir la cuenta de almacenamiento, las configuraciones de red y las direcciones IP. Es posible que haya escuchado el término "plantillas ARM", que básicamente significa la plantilla JSON que define los diferentes aspectos de su solución que está tratando de implementar.

Azure Virtual Machines vienen en diferentes tipos y tamaños, con nombres que comienzan con A-series a N-series. Cada tipo de máquina virtual se crea teniendo en cuenta cargas de trabajo o necesidades de rendimiento específicas, incluidas las de propósito general, optimizadas para computación, optimizadas para almacenamiento u optimizadas para memoria. También puede implementar tipos menos comunes como GPU o máquinas virtuales de cómputo de alto rendimiento.

Al igual que otras ofertas de nube pública, puede hacer lo siguiente en sus instancias de máquinas virtuales...

  • Cifre su disco en la máquina virtual . Aunque esto no es fácil en comparación con GCP y AWS. Cifrar su máquina virtual requiere un enfoque más manual. Requiere que complete los requisitos previos de Azure Disk Encryption. Dado que Galera no es compatible con Windows, aquí solo estamos hablando de imágenes basadas en Linux. Básicamente, requiere que tenga módulos dm-crypt y vfat presentes en el sistema. Una vez que obtenga esa parte correctamente, podrá cifrar la máquina virtual mediante la CLI de Azure. Puede consultar cómo habilitar Azure Disk Encryption para máquinas virtuales Linux IaaS para ver cómo hacerlo. Cifrar su disco es muy importante, especialmente si su empresa u organización requiere que sus datos de Galera Cluster sigan los estándares exigidos por leyes y reglamentos como PCI DSS o GDPR.
  • Crear una instantánea . Puede crear una instantánea mediante la CLI de Azure o a través del portal. Consulte su manual sobre cómo hacerlo.
  • Use escalado automático o conjuntos de escalado de máquinas virtuales si necesita un escalado horizontal . Consulte la descripción general del ajuste de escala automático en Azure o la descripción general de los conjuntos de escalado de máquinas virtuales.
  • Implementación multizona . Implemente sus instancias de máquinas virtuales en diferentes zonas de disponibilidad para evitar un punto único de falla.

También puede crear (u obtener información de) sus máquinas virtuales de diferentes maneras. Puede usar Azure Portal, Azure PowerShell, las API de REST, los SDK de cliente o la CLI de Azure. Las máquinas virtuales en la red virtual de Azure también pueden conectarse fácilmente a la red de su organización y tratarse como un centro de datos extendido.

Precios de Microsoft Azure

Al igual que otros proveedores de nube pública, Microsoft Azure también ofrece un nivel gratuito con algunos servicios gratuitos. También ofrece opciones de pago por uso e instancias reservadas para elegir. El pago por uso comienza en $0,008/hora - $0,126/hora.

Para instancias reservadas, cuanto más tiempo se comprometa y contrate con Azure, más usted ahorra en el costo. Microsoft Azure afirma ayudar a los suscriptores a ahorrar hasta un 72 % de sus costos de facturación en comparación con su modelo de pago por uso cuando los suscriptores se registran por un período de uno a tres años para una máquina virtual Windows o Linux. Microsoft también ofrece mayor flexibilidad en el sentido de que si su negocio necesita cambiar, puede cancelar su suscripción a Azure RI en cualquier momento y devolver el RI restante no utilizado a Microsoft como una tarifa de cancelación anticipada.

Veamos su precio en comparación con GCP, AWS EC2 y una máquina virtual de Azure. Esto se basa en la región us-east1 y compararemos los rangos de precios de las instancias informáticas necesarias para ejecutar su Galera Cluster.

Máquina/
Instancia
Tipo

Google
Compute Engine

AWS EC2

Microsoft
Azure

Compartido

f1-micro

G1-pequeño

Los precios comienzan en $0.006 -  $0.019 por hora

t2.nano – t3a.2xlarge

El precio comienza en $0.0058 - $0.3328 por hora

Serie B

El precio comienza en $0.0052 - $0.832 por hora

Estándar

n1-estándar-1 – n1-estándar-96

Los precios comienzan en $0,034 - $3,193 por hora

m4.grande – m4.16xgrande

m5.grande – m5d.metal

Los precios comienzan en $0.1 - $5.424 por hora

Estándar Av2, D2-64 v3 de última generación, D2s-64s v3 de última generación, D1-5 v2, DS1-S5 v2, serie DC

El precio comienza en $0.043 - $3.072 por hora

Memoria alta/Memoria optimizada

n1-highmem-2 – n1-highmem-96

n1-megamem-96

n1-ultramem-40 – n1-ultramem-160

Los precios comienzan en $0.083  - $17.651 por hora

r4.grande – r4.16xgrande

x1.16xgrande – x1.32xgrande

x1e.xgrande – x1e.32xgrande

Los precios comienzan en $0.133  - $26.688 por hora

D2a – D64a v3, D2as – D64as v3, E2-64 v3 última generación, E2a – E64a v3, E2as – E64as v3, E2s-64s v3 última generación, D11-15 v2, DS11-S15 v2, serie M, serie Mv2, instancias, Extreme Memory Optimized

El precio comienza en $0.043 - $44.62 por hora

Alta CPU/Almacenamiento optimizado

n1-highcpu-2 – n1-highcpu-32

Los precios comienzan en $0.05 - $2.383 por hora

h1.2xlarge – h1.16xlarge

i3.grande – i3.metal

I3en.grande - i3en.metal

p2.xgrande – d2.8xgrande

Los precios van desde $0.156 - $10.848  por hora

Serie Fsv2, Serie F, Serie Fs

El precio comienza en $0.0497 - $3.045 por hora

Cifrado de datos en Microsoft Azure

Microsoft Azure no ofrece soporte de cifrado directamente para Galera Cluster (o viceversa). Sin embargo, hay formas de cifrar los datos, ya sea en reposo o en tránsito.

El cifrado en tránsito es un mecanismo para proteger los datos cuando se transmiten a través de redes. Con Azure Storage, puede proteger los datos mediante:

  • Cifrado a nivel de transporte, como HTTPS, cuando transfiere datos hacia o desde Azure Storage.
  • Cifrado por cable, como el cifrado SMB 3.0, para recursos compartidos de archivos de Azure.
  • Cifrado del lado del cliente, para cifrar los datos antes de que se transfieran al almacenamiento y para descifrar los datos después de que se transfieran fuera del almacenamiento.

Microsoft usa el cifrado para proteger los datos de los clientes cuando están en tránsito entre el dominio de los clientes y los servicios en la nube de Microsoft. Más específicamente, Transport Layer Security (TLS) es el protocolo que los centros de datos de Microsoft utilizarán para negociar con los sistemas cliente que están conectados a los servicios en la nube de Microsoft.

Perfect Forward Secrecy (PFS) también se emplea para que cada conexión entre los sistemas cliente de los clientes y los servicios en la nube de Microsoft use claves únicas. Las conexiones a los servicios en la nube de Microsoft también aprovechan las longitudes de clave de cifrado de 2048 bits basadas en RSA.

Cifrado en reposo

Para muchas organizaciones, el cifrado de datos en reposo es un paso obligatorio para lograr la privacidad, el cumplimiento y la soberanía de los datos. Tres características de Azure proporcionan cifrado de datos en reposo:

  • El Cifrado del servicio de almacenamiento siempre está habilitado y cifra automáticamente los datos del servicio de almacenamiento cuando los escribe en Azure Storage. Si la lógica de su aplicación requiere que su base de datos de MySQL Galera Cluster almacene datos valiosos, el almacenamiento en Azure Storage puede ser una opción.
  • El cifrado del lado del cliente también proporciona la función de cifrado en reposo.
  • Azure Disk Encryption le permite cifrar los discos del sistema operativo y los discos de datos que usa una máquina virtual de IaaS. Azure Disk Encryption también admite la habilitación del cifrado en máquinas virtuales Linux que están configuradas con fragmentación de discos (RAID) mediante mdadm y la habilitación del cifrado en máquinas virtuales Linux mediante LVM para discos de datos

Implementaciones de Galera Cluster Multi-AZ/Multi-Region/Multi-Cloud con GCP

Al igual que AWS y GCP, Microsoft Azure no ofrece asistencia directa para implementar un clúster de Galera en Multi-AZ/-Region/-Cloud. Sin embargo, puede implementar sus nodos manualmente y crear scripts con PowerShell o la CLI de Azure para hacerlo por usted. Alternativamente, cuando aprovisiona su instancia de máquina virtual, puede colocar sus nodos en diferentes zonas de disponibilidad. Microsoft Azure también ofrece otro tipo de redundancia, además de tener su zona de disponibilidad, que se llama Virtual Machine Scale Sets. Puede comprobar las diferencias entre la máquina virtual y los conjuntos de escalado.

Alta disponibilidad, escalabilidad y redundancia de Galera Cluster en Azure

Una de las razones principales para usar un clúster de nodos de Galera es la alta disponibilidad, la redundancia y su capacidad de escalar. Si está sirviendo tráfico globalmente, es mejor que atienda su tráfico por región. Debe asegurarse de que su diseño arquitectónico incluya la distribución geográfica de los nodos de su base de datos. Para lograr esto, se recomiendan implementaciones multi-AZ, multi-región o multi-cloud/multi-datacenter. Esto evita que el clúster se caiga y que no funcione correctamente debido a la falta de quórum.

Como se mencionó anteriormente, Microsoft Azure tiene una solución de escalado automático que se puede aprovechar mediante conjuntos de escalado. Esto le permite escalar automáticamente un nodo cuando se alcanza un cierto umbral (según lo que esté monitoreando). Esto depende de qué elementos del estado de salud esté monitoreando antes de que se escale verticalmente. Puede consultar su tutorial sobre este tema aquí.

Para implementaciones de múltiples regiones o múltiples nubes, Galera tiene su propio parámetro llamado gmcast.segment que se puede configurar al iniciar el servidor. Este parámetro está diseñado para optimizar la comunicación entre los nodos de Galera y minimizar la cantidad de tráfico enviado entre los segmentos de la red. Esto incluye la retransmisión de escritura y la selección de donantes de IST y SST. Este tipo de configuración le permite implementar varios nodos en diferentes regiones. Aparte de eso, también puede implementar sus nodos de Galera en un enrutamiento de diferentes proveedores de nube desde GCP, AWS, Microsoft Azure o dentro de una configuración local.

Le recomendamos que consulte nuestro blog Configuraciones de centros de datos múltiples usando Galera Cluster para MySQL o MariaDB y migración de red sin tiempo de inactividad con MySQL Galera Cluster usando Relay Node para recopilar más información sobre cómo implementar este tipo de implementaciones.

Rendimiento de la base de datos del clúster de Galera en Microsoft Azure

Las máquinas host subyacentes que usan las máquinas virtuales en Azure son, de hecho, muy poderosas. Las máquinas virtuales más nuevas en Azure ya se han equipado con módulos de optimización de red. Puede verificar esto en la información de su kernel ejecutando (por ejemplo, en Ubuntu).

uname -r|grep azure

Nota:asegúrese de que su comando tenga la cadena "azure".

Para Centos/RHEL, la instalación de cualquier Linux Integration Services (LIS) desde la versión 4.2 contiene optimización de red. Para obtener más información al respecto, visite la página sobre cómo optimizar el rendimiento de la red.

Si su aplicación es muy sensible a la latencia de la red, es posible que le interese consultar el grupo de ubicación de proximidad. Actualmente se encuentra en versión preliminar (y aún no se recomienda para uso en producción), pero esto ayuda a optimizar el rendimiento de su red.

Para el tipo de máquina virtual que consumiría, esto dependería de los requisitos del tráfico de su aplicación y de las demandas de recursos. Para consultas que consumen mucha memoria, puede comenzar con Dv3. Sin embargo, para optimizar la memoria, comience con la serie Ev3. Para requisitos de CPU elevados, como bases de datos con muchas transacciones o aplicaciones de juegos, comience con la serie Fsv2.

Es imprescindible elegir el almacenamiento adecuado y las IOPS requeridas para el volumen de su base de datos. En general, un disco persistente basado en SSD es su opción ideal. Comience con SSD estándar, que es rentable y ofrece un rendimiento uniforme. Sin embargo, esta decisión podría depender de si necesita más IOPS a largo plazo. Si este es el caso, entonces debería optar por el almacenamiento SSD Premium.

También le recomendamos que consulte y lea nuestro blog Cómo mejorar el rendimiento de Galera Cluster para MySQL o MariaDB para obtener más información sobre cómo optimizar su Galera Cluster.

Copia de seguridad de base de datos para nodos Galera en Azure

No existe soporte de respaldo ingenuo para sus datos de MySQL Galera en Azure, pero puede tomar una instantánea. Microsoft Azure ofrece Azure VM Backup, que toma una instantánea que se puede programar y cifrar.

Alternativamente, si desea hacer una copia de seguridad de los archivos de datos de su Galera Cluster, también puede usar servicios externos como ClusterControl, usar Percona Xtrabackup para su copia de seguridad binaria o mysqldump o mydumper para sus copias de seguridad lógicas. Estas herramientas proporcionan copias de seguridad para sus datos de misión crítica y puede leer esto si desea obtener más información.

Supervisión de clústeres de Galera en Azure

Microsoft Azure tiene su servicio de monitoreo llamado Azure Monitor. Azure Monitor maximiza la disponibilidad y el rendimiento de sus aplicaciones al ofrecer una solución completa para recopilar, analizar y actuar sobre la telemetría de su nube y entornos locales. Le ayuda a comprender el rendimiento de sus aplicaciones e identifica de manera proactiva los problemas que las afectan (y los recursos de los que dependen). Puede configurar o crear alertas de salud, recibir notificaciones sobre avisos y alertas detectadas en los servicios que implementó.

Si desea realizar un seguimiento específico de su base de datos, deberá utilizar herramientas de seguimiento externas que tengan métricas de base de datos avanzadas y altamente granulares. Hay varias opciones entre las que puede elegir, como PMM de Percona, DataDog, Idera, VividCortex o nuestro propio ClusterControl (la supervisión es GRATUITA con ClusterControl Community).

Seguridad de la base de datos del clúster de Galera en Azure

Como se discutió en nuestros blogs anteriores para AWS y GCP, puede adoptar el mismo enfoque para proteger su base de datos en la nube pública. Una vez que crea una máquina virtual, puede especificar qué puertos solo se pueden abrir o crear y configurar su grupo de seguridad de red en Azure. Puede configurar los puertos que deben estar abiertos (en particular, los puertos 3306, 4444, 4567, 4568) o crear una red virtual en Azure y especificar las subredes privadas si permanecen como un nodo privado. Para agregar esto, si configura su VM en Azure sin una IP pública, aún puede tener una conexión saliente simplemente porque usa SNAT y PAT. Si está familiarizado con AWS y GCP, le gustará esta explicación para que sea más fácil de comprender.

Otra función disponible es el control de acceso basado en roles en Microsoft Azure. Esto le permite controlar qué personas acceden a los recursos específicos que necesitan.

Además de esto, puede proteger sus datos en tránsito utilizando una conexión TLS/SSL o cifrando sus datos cuando están en reposo. Si está utilizando ClusterControl, implementar un tránsito seguro de datos es simple y fácil. Puede consultar nuestro blog Gestión de claves SSL y cifrado de datos MySQL en tránsito si desea probarlo. Para los datos en reposo, puede seguir la discusión que mencioné anteriormente en la sección Cifrado de este blog.

Solución de problemas del clúster de Galera 

Microsoft Azure ofrece una amplia gama de tipos de registro para ayudar en la resolución de problemas y la auditoría. Los registros Los registros de actividad, los registros de diagnóstico de Azure, los informes de Azure AD, las máquinas virtuales y los servicios en la nube, los registros de flujo del grupo de seguridad de red (NSG) y la información de la aplicación son muy útiles para solucionar problemas. Puede que no siempre sea necesario entrar en todos estos cuando necesite solucionar problemas, sin embargo, agregaría más información y pistas al verificar los registros.

Si está utilizando ClusterControl, vaya a Registros -> Registros del sistema y podrá examinar los registros de errores capturados tomados del propio nodo MySQL Galera. Además de esto, ClusterControl proporciona monitoreo en tiempo real que amplificaría su sistema de alarma y notificación en caso de una emergencia o si su(s) nodo(s) MySQL Galera están dañados.

Conclusión

Al finalizar esta serie de blogs de tres partes, le mostramos las ofertas y las ventajas de cada uno de los gigantes tecnológicos que sirven a la industria de la nube pública. Hay ventajas y desventajas al seleccionar uno sobre el otro, pero lo que más importa es el motivo por el que se cambia a una nube pública, los beneficios para su organización y cómo cumple con los requisitos de su aplicación.

La elección del proveedor de su Galera Cluster puede involucrar consideraciones financieras como “qué es más rentable” y se adapta mejor a sus necesidades presupuestarias. También podría deberse a las leyes de privacidad y el cumplimiento de la normativa, o incluso a la pila de tecnología que desea utilizar. Lo importante es cómo funcionarán su aplicación y su base de datos una vez que estén en la nube manejando grandes cantidades de tráfico. Debe tener alta disponibilidad, debe ser resistente, tener los niveles correctos de escalabilidad y redundancia, y realizar copias de seguridad para garantizar la recuperación de datos.