Arquitectura(s) de referencia para soluciones de alta disponibilidad en escenarios distribuidos geográficamente: ¿Por qué debo preocuparme?

En esta serie de publicaciones de blog, analizaré algunas soluciones de arquitectura de referencia de alta disponibilidad en áreas distribuidas geográficamente.

Hoy en día, cuando las empresas están planificando un nuevo servicio o aplicación, es muy común que se preocupen por asegurar un alto nivel de disponibilidad.

No importa si se trata de una tienda en línea, un banco en línea o los servicios internos de una gran organización. WSabemos que los usuarios esperan acceso a servicios 24x7x365. También esperaban acceder a los datos de manera constante e instantánea. Si no cumplimos con sus expectativas, se cambian de proveedor y perdemos dinero. Simple como eso.

El otro aspecto importante de la prestación de servicios y aplicaciones en línea es que la cantidad de datos producidos, analizados y almacenados crece cada día. Pasamos de unos pocos gigabytes ayer a un terabyte hoy. ¿Quién sabe cuántos petabytes necesitaremos mañana?

Lo que una vez estuvo cubierto con una sola pila LAMP ahora puede necesitar docenas de L, A, letras diferentes en lugar de P (como J, R, Py, G) y M. Nuestro amado MySQL que fue “suficiente” para cubrir nuestras necesidades hace 12 años no es bueno con todas las necesidades de muchas aplicaciones modernas.

Es muy común tener una aplicación que utilice diferentes tipos de «almacenamiento» en diferentes niveles y en diferentes aspectos de sus actividades. Podemos usar un almacén de clave-valor para almacenar en caché las operaciones en curso, y aruna base de datos ACID completa relacionada con los datos de «valor» central (el tipo de datos que deben ser coherentes y duraderos). Los grandes datos se almacenan en un mecanismo de almacenamiento de columnas finalmente coherente, y los datos a largo plazo se almacenan en un enfoque de «grandes datos».

Además de todo esto, son los mecanismos de informes los que recopilan elementos de cada almacén de datos para proporcionar una imagen necesaria y completa de los datos. La situación es muy diversa y compleja, y el número de posibles variables es elevado. La forma en que los combinamos es tan amplia que hoy en día los desarrolladores no tienen límites y, a menudo, encuentran soluciones creativas.

Aquí es donde nosotros, como arquitectos, podemos ayudar: podemos aclarar cómo se puede usar cada herramienta para el trabajo correcto. En Percona creemos firmemente que debemos buscar la simplicidad en la complejidad y adoptar el enfoque KISS. Esto comienza con la identificación inicial de la herramienta adecuada para el trabajo.

Comencemos observando las siguientes buenas prácticas en los siguientes ejemplos:

  • No es una buena idea utilizar el almacenamiento de clave-valor si necesita definir la relación entre las entidades y las reglas entre ellas.
  • Evite el uso de almacenamiento posiblemente incoherente al guardar información de dinero en los pagos de los clientes.
  • No es una buena práctica usar una base de datos relacional para almacenar caché de HTML, información de seguimiento de páginas o información de juegos en tiempo real.

Usa la herramienta correcta para el trabajo correcto. Algunas herramientas escalan una mejor escritura y mantienen un enfoque posiblemente consistente. Se supone que algunos otros almacenan una cantidad increíble de datos, pero no pueden manejar las relaciones. Como resultado, puede llevar mucho tiempo cuando se trata de una solicitud OLTP típica, si es que pueden hacerlo. Cada herramienta tiene un diseño y un propósito diferentes, cada una se escala de manera diferente y cada una tiene su propia forma de administrar y mejorar la disponibilidad.

Es una parte crucial de la fase arquitectónica de su proyecto no mezclar las cartas. Mantenga las cosas limpias y cree la arquitectura adecuada para cada componente. Luego combine de la manera que armonice en el resultado final. Optimizaremos cada bloque a la hora de resolver un problema complejo con respuestas sencillas.

¿Qué tan lejos estamos de la antigua pila única LAMP? Años. Es como girar la cabeza y mirar a nuestros antepasados ​​construyendo las primeras tiendas de campaña. Las tiendas de campaña siempre son una buena solución si quieres ir de camping. Pero solo por diversión, no para la vida cotidiana.

Con demasiada frecuencia, existe confusión sobre lo que debe hacer una base de datos relacional y cómo debe hacerse. Una base de datos relacional no debe reemplazar todos los demás componentes de la arquitectura amplia y viceversa. Coexistirán y trabajarán junto con otras opciones. Todos deben maximizar sus características y minimizar sus limitaciones.

En esta serie, nos centraremos en RDBMS y presentaremos algunas arquitecturas de referencia posibles para la ruta de la base de datos relacional. Ilustraré soluciones que mejorarán la disponibilidad del servicio, manteniendo un enfoque en lo que es el diseño de herramientas y el enfoque de datos relacionales con respecto al paradigma ACID.

Esto significa usar las reglas simples de:

  • Atomicidad -> Todas las transacciones, parte de la misma transacción, se concluyen con éxito o no se aplican en absoluto.
  • Cconsistencia -> Todos los datos escritos deben ser válidos/validados frente a las reglas definidas y combinación de ellas.
  • Isuelas -> Garantiza que todas las transacciones serán aisladas. Ninguna transacción afecta a ninguna otra transacción.
  • Ddurabilidad -> Durabilidad significa que una vez que se realiza una transacción, permanece en el sistema incluso si hay un bloqueo del sistema inmediatamente después de la transacción. Los cambios de transacciones deben ser vigilados permanentemente.

Discutiremos la solución que involucra el RDBMS de código abierto más común, cubriendo in-situ y en la nube:

El escenario será común a todas las soluciones, pero la forma en que se implementa la solución cumple con los diferentes requisitos. ufEl primer ejemplo es MySQL High Availability in place: MySQL High Availability in place.

Author: Ing. Luis

A lo largo de conocer Windows y otros sistemas operativos me eh encontrado con diversos tipos de error, ahora brindo soluciones según mi experiencia-

Deja un comentario