Información acerca del mantenimiento

En esta página, se explica cómo Memorystore for Redis Cluster realiza el mantenimiento de los clústeres. También proporciona información y recomendaciones de configuración que tus aplicaciones cliente deben tener en cuenta para aprovechar el diseño de mantenimiento sin tiempo de inactividad de Memorystore para Redis Cluster. Estas recomendaciones se aplican a los clústeres de alta disponibilidad y a los clústeres sin réplicas. Sin embargo, recomendamos la configuración de alta disponibilidad para todos los casos de uso de producción.

Memorystore for Redis Cluster actualiza los clústeres de forma rutinaria para garantizar que el servicio sea confiable, tenga un buen rendimiento, sea seguro y esté actualizado. Estas actualizaciones se denominan mantenimiento. El mantenimiento está completamente administrado por el servicio y está diseñado para no causar problemas de tiempo de inactividad.

Por lo general, el mantenimiento se divide en las siguientes categorías:

  • Funciones de Memorystore. Para lanzar algunas funciones, Memorystore requiere una actualización de mantenimiento.
  • Parches del sistema operativo. Supervisamos continuamente las vulnerabilidades de seguridad recién identificadas en el sistema operativo. Cuando se descubren, aplicamos parches en el sistema operativo para protegerte de nuevos riesgos.
  • Parches de bases de datos. El mantenimiento puede incluir una actualización de Redis para mejorar las características de seguridad, rendimiento y confiabilidad de los clústeres más allá de lo que proporciona Redis.

Memorystore para Redis Cluster no actualiza automáticamente los clústeres para cada versión de mantenimiento. Para determinar el mejor momento para programar el mantenimiento integral, Google Cloud evalúa periódicamente las actualizaciones disponibles. Si necesitas una versión de mantenimiento específica antes, puedes usar el mantenimiento de autoservicio después de que haya una actualización disponible. Para obtener más información sobre las versiones de mantenimiento, incluidos los números y detalles de las versiones de mantenimiento, consulta los registros de cambios de mantenimiento de Memorystore para Redis Cluster.

Configura tu aplicación cliente

Para configurar tu aplicación cliente con el mejor rendimiento y la mayor disponibilidad posibles durante el mantenimiento, sigue estos pasos:

  1. Usa y configura tu cliente de clúster de Redis de OSS según la guía de Prácticas recomendadas para clientes de Redis para asegurarte de que el mantenimiento programado no afecte a tu aplicación cliente. Nuestros parámetros de configuración recomendados para el cliente pueden evitar los restablecimientos de conexiones a través de actualizaciones periódicas de la topología intercalada y rotaciones de conexiones en segundo plano.
  2. Prueba tu aplicación cliente con una serie de operaciones de actualización (como el escalamiento horizontal o vertical, o los cambios en el recuento de réplicas) mientras ejecutas una carga de trabajo representativa en los nodos principal y de réplica, y supervisas el impacto en el cliente. Estas actualizaciones prueban la lógica de actualización de la topología intercalada en los clientes, el impacto de la sincronización completa, el descubrimiento de nodos nuevos y la capacidad de quitar nodos existentes. Las pruebas ayudan a garantizar que el cliente esté configurado correctamente para evitar cualquier impacto negativo en tu aplicación.

Mantenimiento programado

Memorystore para Redis Cluster aprovecha una estrategia de ciclo de vida de implementación gradual y de crear antes de destruir para evitar cualquier impacto de tiempo de inactividad causado por el mantenimiento. El mantenimiento sin tiempo de inactividad se logra usando las capacidades de redireccionamiento de solicitudes del protocolo de Redis con los siguientes mecanismos de Memorystore:

  1. Conmutación por error coordinada sin pérdida de datos.
  2. Eliminación correcta de nodos para permitir que los clientes se pongan al día con las actualizaciones de la topología del clúster sin ningún impacto en la disponibilidad.
  3. Los extremos de Private Service Connect del clúster no se ven afectados por el mantenimiento. Para obtener más información sobre estos extremos, consulta Extremos del clúster.

El comportamiento del servicio que se describe en las siguientes secciones se aplica solo al mantenimiento programado. Para obtener información sobre el impacto de los eventos no planificados, como las fallas de hardware, consulta Comportamiento del cliente durante una conmutación por error no planificada.

Estrategia de implementación gradual

Las implementaciones de mantenimiento de Memorystore para Redis Cluster se realizan con un alcance que aumenta de forma progresiva y a una velocidad que permite detectar fallas con la suficiente anticipación para mitigar el impacto y establecer la confianza en la estabilidad. Los tiempos de preparación (tiempo durante el cual se aplica y supervisa la actualización antes de considerarla exitosa y avanzar) se integran en toda la flota de clústeres de Memorystore a escala de servicio. Además, los tiempos de preparación se integran en el clúster en todas las zonas de una región (varios dominios de fallas) para reducir el alcance del impacto, si lo hubiera.

En el caso de tu clúster configurado para la alta disponibilidad, se actualiza como máximo un dominio o una zona de fallas en un momento determinado para garantizar que un fragmento del clúster, incluidas la instancia principal y las réplicas, tenga alta disponibilidad durante la actualización. Además, solo se actualizan unos pocos nodos de Redis en un momento determinado. Las actualizaciones usan un mecanismo de ciclo de vida de crear antes de destruir para maximizar la estabilidad del clúster. Esta estrategia proporciona la mayor cantidad de beneficios cuando se actualiza un clúster con muchos fragmentos. Aplicar las actualizaciones solo a una pequeña parte del espacio de claves de usuario general en un momento dado maximiza la disponibilidad de los datos.

Estrategia de ciclo de vida de crear antes de destruir

Un clúster de Redis tiene varios fragmentos. Cada fragmento tiene un nodo principal y cero o más nodos de réplica. Memorystore usa el siguiente proceso para actualizar cualquier nodo de Redis principal o de réplica existente en un fragmento:

  1. Memorystore para Redis Cluster primero agrega una réplica completamente nueva con la actualización de software más reciente al fragmento. Memorystore crea un nodo completamente nuevo, en lugar de actualizar uno existente, para garantizar que se conserve la capacidad aprovisionada en caso de que se produzca un error de arranque inesperado.
  2. Si un nodo dentro del fragmento que se actualizará es un nodo principal, primero se convierte en una réplica antes de quitarlo con una conmutación por error coordinada.
  3. Luego, Memorystore quita la réplica que usa el software anterior.
  4. El proceso se repite para cada nodo del clúster.

La estrategia de crear antes de destruir ayuda a conservar la capacidad aprovisionada del clúster, en comparación con una implementación progresiva típica que se actualiza in situ, pero genera una interrupción de la disponibilidad (y, a veces, pérdida de datos) para la aplicación cliente. En el caso de los fragmentos sin réplicas, Memorystore for Redis Cluster sigue aprovisionando una réplica nueva primero, coordina la conmutación por error y, por último, reemplaza el nodo principal existente del fragmento.

Paso 1: Agrega una réplica de Redis

El primer paso del mecanismo de creación antes de la destrucción es agregar un nodo de réplica con el software más reciente usando el mecanismo de OSS Redis de sincronización completa para copiar los datos del nodo principal al nodo de réplica. Para ello, se bifurca un proceso secundario y se aprovecha la replicación sin disco para iniciar la réplica. Memorystore para Redis Cluster admite la replicación sin disco. A menos que habilites la persistencia, Memorystore para Redis Cluster no usa discos durante la replicación.

Puedes aprovechar mejor la arquitectura de escalamiento horizontal del clúster aprovisionando una mayor cantidad de fragmentos para reducir el tamaño del espacio de claves dentro de un nodo. Tener un conjunto de datos más pequeño por nodo ayuda a reducir el impacto de la latencia de bifurcación de una operación de sincronización completa. También acelera la copia de datos en los nodos.

Paso 2: Conmutación por error principal coordinada

Si el nodo de Redis que se debe actualizar es un nodo principal, Memorystore primero ejecuta una conmutación por error coordinada al nodo de réplica recién agregado y, luego, continúa con la eliminación del nodo. Durante la conmutación por error coordinada, el cliente y los nodos de Redis trabajan juntos y usan las siguientes estrategias para evitar el tiempo de inactividad de la aplicación:

  1. Las solicitudes entrantes de los clientes se bloquean temporalmente en el nodo principal, lo que proporciona un período para garantizar que la réplica existente esté sincronizada al 100% con el principal.
  2. La réplica completa el proceso de elección para asumir el rol principal.
  3. El nodo principal anterior, que ahora es una réplica, desbloquea las solicitudes existentes y las redirecciona al nodo principal recién elegido con el protocolo de clúster de Redis de OSS. Las solicitudes nuevas que se envíen al nodo de réplica anterior se seguirán redireccionando al nodo principal nuevo.
  4. Tu cliente compatible con Redis Cluster actualiza su topología en la memoria. Aprende la dirección del nuevo extremo principal y ya no requiere redireccionamientos.

Las conmutaciones por error coordinadas suelen tardar decenas de milisegundos. Sin embargo, el tamaño total del clúster puede aumentar la latencia de conmutación por error. También pueden perderse los datos en tránsito pendientes de vaciarse en las réplicas. El tamaño del clúster puede afectar la convergencia entre los nodos principales, lo que afecta la toma de decisiones sobre la elección del nuevo nodo principal.

Paso 3: Quita la réplica de Redis

El último paso del mecanismo de creación antes de la destrucción es quitar el nodo de réplica en el software anterior. La eliminación abrupta de un nodo tendría un impacto en las aplicaciones cliente, ya que los clientes almacenan en caché la información del extremo y la topología del clúster. Memorystore para Redis Cluster diseñó la eliminación de una réplica de Redis para que sea correcta y permitir que las aplicaciones cliente actualicen su topología antes de experimentar un cierre forzado del nodo. La topología se personaliza para permitir que los clientes conozcan la réplica nueva. La topología también olvida la réplica que se quitará antes de que se quite.

El nodo de réplica que ejecuta el software anterior se mantiene durante un período de desvío determinado, por lo general, en el orden de minutos, durante el cual comienza a redireccionar las solicitudes de lectura entrantes al nodo principal de su fragmento. Permite que el cliente del clúster actualice la topología del clúster y conozca los nuevos extremos de réplica. Si el cliente intenta comunicarse con un nodo quitado después del período de desvío, el intento falla, lo que, a su vez, activa una actualización de la topología del clúster en el cliente del clúster para que conozca el cambio de réplica. Las actualizaciones nuevas de la topología del clúster no ven el nodo de réplica que se quitará.

Configuración de mantenimiento

Con Memorystore, puedes personalizar los programas de mantenimiento para que se alineen con las necesidades de tu aplicación y minimizar las interrupciones. Para ello, puedes configurar un período de mantenimiento para tu clúster.

Los períodos de mantenimiento se establecen por clúster de Memorystore y permiten las siguientes opciones de configuración:

  • Día de la semana. Designa el día en que se realiza el mantenimiento.
  • Es la hora de inicio. La hora en que comienza el mantenimiento.

La duración del período de mantenimiento es de 1 hora. Ten en cuenta que, en algunos casos, el mantenimiento puede extenderse más allá del período que seleccionaste.

Después de configurar un período de mantenimiento para un clúster, Memorystore para Redis Cluster programa el mantenimiento automático en el futuro según las preferencias que establezcas para los períodos de mantenimiento.

Períodos de mantenimiento predeterminados

Si no configuras un período de mantenimiento, Memorystore actualizará tu clúster en uno de los siguientes períodos según la zona horaria del clúster:

  • Período de días de la semana (de lunes a viernes). De 10 p.m. a 6 a.m.

  • Período de fin de semana. Del viernes a las 10 p.m. al lunes a las 6 a.m.

Ejemplo de mantenimiento

Como desarrollador que administra un servicio de carrito de compras en una tienda minorista, tienes la responsabilidad de supervisar un entorno de producción que incluye un clúster. Para garantizar un rendimiento óptimo durante el mantenimiento, debes programarlo cuando el clúster experimente un tráfico mínimo, lo que suele ocurrir alrededor de la medianoche de los domingos.

En este caso, puedes configurar el período de mantenimiento de tu clúster de producción de la siguiente manera:

  • Día de la semana. Domingo.
  • Es la hora de inicio. 1 a.m.

Próximas notificaciones de mantenimiento

Para asegurarte de mantenerte informado sobre los eventos de mantenimiento en tu clúster, puedes configurar notificaciones por correo electrónico sobre el próximo mantenimiento al menos una semana antes de que se programe. Estas notificaciones tendrán el asunto "Upcoming maintenance for your Cloud Memorystore instance [your-cluster-name]".

También se envía una notificación cuando comienza el mantenimiento de tu clúster. El asunto del correo electrónico sería "Maintenance is undergoing for your Cloud Memorystore instance [your-cluster-name]".

Cuando se completa el mantenimiento, se envía una notificación de finalización. El título del correo electrónico es "Completed Maintenance for your Cloud Memorystore instance [your-cluster-name]".

Si Memorystore vuelve a programar el mantenimiento, recibirás un correo electrónico en el que se te notificará sobre la cancelación del mantenimiento. El asunto de este correo electrónico sería "Canceled maintenance for your Cloud Memorystore instance [your-cluster-name]".

Debes habilitar la recepción de estas notificaciones de mantenimiento. Para registrarte y recibir notificaciones de mantenimiento, sigue estos pasos:

  1. Configura un período de mantenimiento.
  2. Activa las notificaciones de mantenimiento.

Para recibir notificaciones de mantenimiento de Memorystore, asegúrate de completar estos pasos al menos una semana antes de la actualización de mantenimiento programada para tu clúster. Si no lo haces, Memorystore for Redis Cluster no tendrá tiempo suficiente para notificarte sobre el próximo mantenimiento.

Memorystore para Redis Cluster envía notificaciones a la dirección de correo electrónico asociada con tu Cuenta de Google. No puedes configurar un alias de correo electrónico personalizado (por ejemplo, un alias de correo electrónico del equipo). Por el momento, no admitimos el envío de notificaciones a una dirección de correo electrónico diferente.

Si te suscribes a las notificaciones de mantenimiento, recibirás alertas de todos los clústeres de Memorystore con mantenimiento programado dentro de un proyecto específico. Si te suscribes, recibirás una notificación independiente para cada clúster.

Para obtener instrucciones sobre cómo encontrar el mantenimiento programado, consulta Busca el mantenimiento programado.

Reprograma el mantenimiento

En la situación en la que se configuran períodos de mantenimiento para tu clúster, en esta sección se proporcionan lineamientos para reprogramar el mantenimiento. Por ejemplo, si se programa el lanzamiento de un servicio nuevo durante el período de mantenimiento actual, es posible que desees posponerlo hasta unos días después del lanzamiento.

Puedes reprogramar el mantenimiento en un plazo de 14 días a partir de la hora programada originalmente. Como parte de la reprogramación del mantenimiento, elige una de las siguientes opciones:

  • Actualizar ahora: En lugar de esperar el período de mantenimiento programado, puedes aplicar las actualizaciones a tu clúster de inmediato.
  • Día y hora personalizados: Elige cualquier hora dentro de los 14 días posteriores a la hora de mantenimiento programada en un principio.

Cuando reprogrames el mantenimiento, se aplicarán las siguientes restricciones:

  • Si queda menos de una hora antes de la hora de mantenimiento programada actual, no puedes reprogramar el mantenimiento.
  • Cuando se vuelve a programar de forma correcta, se envía un correo electrónico para confirmar la cancelación del mantenimiento anterior y se envía una nueva notificación de mantenimiento próximo con el programa actualizado.

Para obtener instrucciones sobre cómo reprogramar el mantenimiento, consulta Reprograma el mantenimiento.

Preguntas frecuentes

En esta sección, se incluyen preguntas frecuentes sobre el mantenimiento de Memorystore para Redis Cluster.

¿Cómo sabes cuándo se programa el mantenimiento de tu clúster?

Para saber cuándo se programa el mantenimiento de tu clúster, te recomendamos que te suscribas a las notificaciones y configures un período de mantenimiento. También puedes verificar tu clúster de forma manual para ver si el parámetro maintenanceSchedule aparece en la respuesta.

¿Cuándo te notifica Memorystore para Redis Cluster sobre el próximo mantenimiento?

Si te suscribes a las notificaciones de mantenimiento y estableces un período de mantenimiento, Memorystore para Redis Cluster te notificará por correo electrónico al menos una semana antes de un evento de mantenimiento.

¿Cuánto tiempo puedes aplazar el mantenimiento?

Después de programar el mantenimiento de tu clúster, puedes iniciar la actualización de inmediato o aplazarla hasta dos semanas a partir de la fecha y hora de mantenimiento programadas originalmente.

Por ejemplo, si programas el mantenimiento para el 11 de octubre a las 11:15 p.m., puedes aplazarlo hasta el 25 de octubre a las 11:15 p.m. Si no realizas ninguna acción, el mantenimiento se ejecutará en la fecha y hora programadas.

Para obtener más información, consulta Reprograma el mantenimiento.

¿Qué prácticas recomendadas dan como resultado una experiencia de actualización de mantenimiento sin problemas?

Para garantizar una experiencia de actualización de mantenimiento sin problemas, te recomendamos que hagas lo siguiente:

  1. Sigue las instrucciones para configurar tu aplicación cliente.
  2. Establece el período de mantenimiento en un día y una hora en que el clúster experimente un tráfico mínimo (por ejemplo, los domingos a la medianoche).
  3. Activa las notificaciones de mantenimiento. Como resultado, Memorystore para Redis Cluster te notifica por correo electrónico al menos siete días antes de que se programe una actualización de mantenimiento para tu clúster.
  4. Si no tienes una hora de bajo impacto o sin impacto para el uso de tu aplicación, usa el valor predeterminado del servicio de los lanzamientos graduales. Este valor predeterminado contiene prácticas recomendadas para las actualizaciones de mantenimiento. Para obtener más información, consulta Mantenimiento programado.

¿Cuándo te recomendamos que apliques una actualización de mantenimiento de inmediato?

Puedes aplicar una actualización de mantenimiento de inmediato en un clúster de prueba para ver cómo afecta a tu aplicación. Puedes observar el impacto que tiene esta actualización. Si hay problemas con la actualización, puedes aplazar el mantenimiento de tus clústeres de producción hasta que los resuelvas.

Si el día y la hora actuales funcionan para tu clúster y esperas una carga alta en el futuro, puedes ejecutar la actualización de mantenimiento de inmediato.

¿Las actualizaciones de mantenimiento siempre se completan dentro del período de mantenimiento?

Memorystore for Redis Cluster inicia una actualización de mantenimiento dentro del período de mantenimiento que especifiques. Memorystore for Redis Cluster suele completar la actualización dentro del período, pero no siempre es así.

¿Puedes inhabilitar el mantenimiento o programarlo en ciertos clústeres primero?

No puedes inhabilitar el mantenimiento ni controlar el orden de mantenimiento de tus clústeres. Sin embargo, después de recibir la notificación de mantenimiento inicial, puedes reprogramar el mantenimiento para aplazarlo hasta dos semanas.

¿Qué sigue?

  • Consulta los permisos que necesitas para administrar los períodos de mantenimiento de tu clúster.