Lista de tareas de lanzamiento para Spanner

En esta lista de tareas de lanzamiento, se ofrece una lista de consideraciones que deben realizarse antes del lanzamiento de una aplicación de producción en Spanner. No pretende ser exhaustivo, pero sirve para destacar las consideraciones clave para minimizar los riesgos, optimizar el rendimiento y garantizar la alineación con los objetivos comerciales y operativos, y ofrece un enfoque sistemático para lograr una implementación de Spanner fluida y confiable.

Esta lista de tareas está dividida en las secciones siguientes:

Diseño, desarrollo, pruebas y optimización

Optimizar el diseño del esquema, las transacciones y las consultas es esencial para usar la arquitectura distribuida de Spanner y obtener un alto rendimiento y escalabilidad. Las pruebas rigurosas de extremo a extremo y a gran escala de producción garantizan que el sistema pueda controlar cargas de trabajo, cargas máximas y operaciones simultáneas del mundo real, a la vez que minimiza los riesgos de cuellos de botella o fallas en la producción.

Casilla de verificación Actividad
❑  
Diseña el esquema teniendo en cuenta la escalabilidad y la arquitectura distribuida de Spanner. Sigue las prácticas recomendadas, como seleccionar claves primarias e índices adecuados para evitar hotspots y considerar optimizaciones, como la intercalación de tablas para datos relacionados. Revisa las prácticas recomendadas para el diseño de esquemas para asegurarte de que el esquema admita alto rendimiento y escalabilidad en las cargas de trabajo esperadas.
❑  
Optimiza las transacciones y las consultas para lograr un bloqueo mínimo y un rendimiento máximo. Usa los modos de transacción de Spanner, como las instrucciones de DML particionadas, de bloqueo de lectura y escritura, y de solo lectura sólidas, para equilibrar la coherencia, la capacidad de procesamiento y la latencia. Minimiza los ámbitos de bloqueo con el uso de transacciones de solo lectura para las consultas, agrupación en lotes para obtener el máximo rendimiento de DML o declaraciones DML particionadas para actualizaciones y eliminaciones a gran escala. Cuando migres desde sistemas con diferentes niveles de aislamiento (por ejemplo, PostgreSQL o MySQL), usa transacciones para evitar cuellos de botella de rendimiento. Para obtener más información, consulta Transacciones.
❑  
Realiza pruebas de carga a gran escala y rigurosas para validar el diseño del esquema, el comportamiento de las transacciones y el rendimiento de las consultas. Simula situaciones de carga máxima y de alta simultaneidad que imiten las cargas de aplicaciones del mundo real, incluidos diversos patrones de consulta y formas de transacción. Evalúa la latencia y la capacidad de procesamiento en estas condiciones para confirmar que el diseño de la base de datos y la topología de la instancia cumplan con los requisitos de rendimiento. Usa pruebas de carga de forma iterativa durante el desarrollo para optimizar y definir mejor la implementación.
❑  
Extiende las pruebas de carga para abarcar todos los servicios que interactúan, no solo las aplicaciones aisladas. Simula recorridos del usuario completos junto con procesos paralelos, como cargas por lotes o tareas de administración que acceden a la base de datos. Ejecuta pruebas en la configuración de la instancia de Spanner de producción y asegúrate de que los controladores y los servicios de prueba de carga estén alineados geográficamente con la topología de implementación de producción prevista. Este enfoque integral identifica posibles conflictos con anticipación y garantiza un rendimiento fluido de la base de datos durante las operaciones reales.
❑  
Para garantizar un rendimiento de las consultas predecible, usa la versión del optimizador en la que se probó la carga de trabajo. De forma predeterminada, las bases de datos de Spanner usan la versión más reciente del optimizador de consultas. Evalúa periódicamente las nuevas versiones del optimizador en un entorno controlado y actualiza la versión predeterminada solo después de confirmar la compatibilidad y las mejoras de rendimiento. Para obtener más información, consulta la descripción general del optimizador de consultas.
❑  
Asegúrate de que las estadísticas del optimizador de consultas estén actualizadas para admitir planes de ejecución de consultas eficientes. Aunque las estadísticas se actualizan automáticamente, considera construir un paquete de estadísticas nuevo de forma manual en situaciones como modificaciones de datos a gran escala (por ejemplo, inserciones, actualizaciones o eliminaciones masivas), la adición de índices nuevos o cambios de esquema. Mantener las estadísticas del optimizador de consultas actualizadas es fundamental para mantener un rendimiento óptimo de las consultas.

Migración (opcional)

La migración de bases de datos es un proceso integral que requiere un análisis detallado de los aspectos específicos de cada recorrido de migración individual. Ten en cuenta lo siguiente en tu estrategia de migración:

Casilla de verificación Actividad
❑  
Desarrolla un procedimiento operativo estándar (POE) detallado para la migración. Esto incluye pasos para el lanzamiento de aplicaciones, el cambio de base de datos y la automatización para minimizar la intervención manual. Identifica y comunica posibles períodos de inactividad a las partes interesadas con bastante anticipación. Implementa mecanismos sólidos de supervisión y alerta para hacer un seguimiento del proceso de migración en tiempo real y detectar cualquier anomalía de inmediato. Asegúrate de que el proceso de cambio incluya verificaciones de validación para confirmar la integridad de los datos y las capacidades de la aplicación después de la migración.
❑  
Prepara un plan de resguardo detallado para volver al sistema de origen en caso de que se produzcan problemas críticos durante la migración. Prueba los procedimientos de resguardo en un entorno de pruebas para asegurarte de que sean confiables y se puedan ejecutar con un tiempo de inactividad mínimo. Define con claridad las condiciones que activarían un resguardo y asegúrate de que el equipo esté capacitado para ejecutar este plan con rapidez y eficiencia.

Implementación

Una planificación de implementación adecuada garantiza que las configuraciones de Spanner cumplan con los requisitos de carga de trabajo de disponibilidad, latencia y escalabilidad, a la vez que se tienen en cuenta las consideraciones geográficas y operativas. Alinear el tamaño, la administración de recursos, las situaciones de conmutación por error y la automatización minimiza los riesgos, garantiza un rendimiento óptimo y evita restricciones de recursos o interrupciones durante operaciones críticas.

Casilla de verificación Actividad
❑  
Asegúrate de que la configuración de la instancia de Spanner (ya sea regional, birregional o multirregional) se alinee con los requisitos de disponibilidad y latencia de la carga de trabajo de tu aplicación y, al mismo tiempo, ten en cuenta las consideraciones geográficas. Calcula la capacidad de procesamiento objetivo según los tamaños de almacenamiento esperados, los patrones de tráfico y los límites de utilización recomendados, lo que garantiza una capacidad suficiente para las interrupciones zonales o regionales. Habilita el ajuste de escala automático para planificar los picos de tráfico. Puedes establecer un límite superior para la capacidad de procesamiento para establecer salvaguardas de costos. Para obtener más información, consulta Capacidad de procesamiento, nodos y unidades de procesamiento.
❑  
Si usas una configuración de instancia de doble región o multirregional, elige una región líder que minimice la latencia de las operaciones de escritura de la aplicación desde los servicios implementados en tus ubicaciones más sensibles a la latencia. Prueba las implicaciones de las diferentes regiones líderes en la latencia de la operación y ajústalas para optimizar el rendimiento de la aplicación. Planifica situaciones de resguardo asegurándote de que la topología de la aplicación pueda adaptarse a los cambios en la región líder durante las interrupciones regionales. Para obtener más información, consulta Modifica la región líder de una base de datos.
❑  
Configura las etiquetas de forma adecuada para lograr claridad operativa y seguimiento de recursos de Google Cloud. Usa etiquetas para agrupar instancias por entorno o tipo de carga de trabajo. Usa etiquetas para metadatos que ayuden en el análisis de costos y la administración de permisos. Para obtener más información, consulta Controla el acceso y organiza instancias con etiquetas.
❑  
Evalúa si es necesario el calentamiento de Spanner, especialmente para los servicios que esperan un tráfico repentino y alto al momento del lanzamiento. Probar la latencia con cargas iniciales altas podría revelar la necesidad de un precalentamiento previo al lanzamiento para garantizar un rendimiento óptimo. Si se requiere el precalentamiento, genera una carga artificial. Para obtener más información, consulta Preparación de la base de datos antes del lanzamiento de la aplicación.
❑  
Revisa los límites y las cuotas de Spanner antes de la implementación. Si es necesario, solicita aumentos de cuota en la consola de Google Cloud para evitar restricciones durante los períodos de mayor demanda. Ten en cuenta los límites estrictos (por ejemplo, la cantidad máxima de tablas por base de datos) para evitar problemas después de la implementación. Para obtener más información, consulta Cuotas y límites.
❑  
Usa herramientas de automatización, como Terraform, para aprovisionar y administrar tus instancias de Spanner, lo que garantiza que las configuraciones sean eficientes y a prueba de errores. Para la administración de esquemas, considera usar herramientas como Liquibase para evitar caídas accidentales de esquemas durante las actualizaciones. Para obtener más información, consulta Cómo usar Terraform con Spanner.

Recuperación ante desastres

Establecer una estrategia sólida de recuperación ante desastres (DR) es fundamental para proteger los datos, minimizar el tiempo de inactividad y garantizar la continuidad del negocio durante fallas inesperadas. Probar periódicamente los procedimientos de restablecimiento y automatizar las copias de seguridad ayuda a garantizar la preparación operativa, el cumplimiento de los objetivos de recuperación y una protección de datos confiable adaptada a las necesidades de la organización.

Casilla de verificación Actividad
❑  
Define una estrategia integral de recuperación ante desastres para Spanner que incluya la protección de datos, los objetivos de recuperación y las situaciones de fallas. Establece objetivos de tiempo de recuperación (RTO) y objetivos de punto de recuperación (RPO) claros que se alineen con los requisitos de continuidad del negocio. Especifica la frecuencia de las copias de seguridad, las políticas de retención y usa la recuperación de un momento determinado (PITR) para minimizar la pérdida de datos en caso de fallas. Revisa la descripción general de la recuperación ante desastres para identificar las herramientas y técnicas adecuadas que garanticen el cumplimiento de la disponibilidad, la confiabilidad y la seguridad de tu aplicación. Para obtener más información, consulta el informe Soluciones de protección y recuperación de datos en Spanner.
❑  
Crea documentación detallada para los procedimientos de creación de copias de seguridad y restablecimiento, incluidas guías paso a paso para varias situaciones de recuperación. Prueba estos procedimientos con regularidad para garantizar la preparación operativa y validar los requisitos de RTO y RPO. Las pruebas deben simular condiciones y situaciones de fallas del mundo real para identificar las brechas y mejorar el proceso de recuperación. Para obtener más información, consulta Descripción general del restablecimiento.
❑  
Implementa programas de copia de seguridad automatizados para garantizar una protección de datos coherente y confiable. Configura la frecuencia y la retención para que coincidan con las necesidades comerciales y las obligaciones reglamentarias. Usa las funciones de programación de copias de seguridad de Spanner para automatizar la creación, la administración y la supervisión de las copias de seguridad. Para obtener más información, consulta Cómo crear y administrar programas de copia de seguridad.
❑  
Alinea los procedimientos de conmutación por error con la topología de configuración de instancias de tu aplicación para minimizar los impactos de latencia en caso de una interrupción. Prueba situaciones de recuperación ante desastres para asegurarte de que la aplicación pueda funcionar de manera eficiente cuando la región líder se mueva a una región de conmutación por error. Para obtener más información, consulta Modifica la región líder de una base de datos.

Optimizador de consultas y administración de estadísticas

Administrar las versiones y las estadísticas del optimizador de consultas es importante para mantener un rendimiento predecible y eficiente de las consultas. El uso de versiones probadas y el mantenimiento de las estadísticas actualizadas garantizan la estabilidad, evitan cambios de rendimiento inesperados y optimizan los planes de ejecución de consultas, especialmente durante modificaciones significativas de datos o esquemas.

Casilla de verificación Actividad
❑  
De forma predeterminada, las bases de datos de Spanner usan la versión más reciente del optimizador de consultas. Para garantizar un rendimiento de las consultas predecible, usa la versión del optimizador en la que se probó la carga de trabajo. Evalúa con regularidad las nuevas versiones del optimizador en un entorno controlado y actualiza la versión predeterminada solo después de confirmar la compatibilidad y las mejoras de rendimiento. Para obtener más información, consulta la descripción general del optimizador de consultas.
❑  
Asegúrate de que las estadísticas del optimizador de consultas estén actualizadas para admitir planes de ejecución de consultas eficientes. Aunque las estadísticas se actualizan automáticamente, considera construir un nuevo paquete de estadísticas de forma manual en situaciones como modificaciones de datos a gran escala (por ejemplo, inserciones, actualizaciones o eliminaciones masivas), la adición de índices nuevos o cambios de esquema. Mantener las estadísticas del optimizador de consultas actualizadas es fundamental para mantener un rendimiento óptimo de las consultas.
❑  
En ciertas situaciones, como después de una eliminación masiva o cuando la generación de estadísticas nuevas podría afectar de forma impredecible el rendimiento de las consultas, se recomienda fijar un paquete de estadísticas específico. Esto proporciona un rendimiento de consulta coherente hasta que se puede generar y probar un paquete nuevo. Revisa periódicamente la necesidad de fijar estadísticas y desfijarlas una vez que se validen los paquetes actualizados. Para obtener más información, consulta Paquetes de estadísticas del optimizador de consultas.

Seguridad

La implementación de medidas de control de acceso es esencial para proteger los datos sensibles y evitar el acceso no autorizado en Spanner. Si aplicas el acceso de privilegio mínimo, el control de acceso detallado (FGAC) y la protección contra la eliminación de bases de datos, puedes minimizar los riesgos, garantizar el cumplimiento y proteger los recursos críticos contra acciones accidentales o maliciosas.

Casilla de verificación Actividad
❑  
Revisa y, luego, implementa las políticas de administración de identidades y accesos (IAM) según el principio de privilegio mínimo para todos los usuarios y cuentas de servicio que acceden a tu base de datos. Asigna solo los permisos necesarios para realizar tareas específicas y audita periódicamente los permisos de control de acceso para garantizar el cumplimiento de este modelo. Usa cuentas de servicio con privilegios mínimos para los procesos automatizados para reducir el riesgo de acceso no autorizado. Para obtener más información, consulta la descripción general de IAM.
❑  
Si la aplicación requiere acceso restringido a filas, columnas o celdas específicas dentro de una tabla, implementa el control de acceso detallado (FGAC). Diseña y aplica políticas de acceso condicional según los atributos del usuario o los valores de datos para aplicar reglas de acceso detalladas. Revisa y actualiza estas políticas con regularidad para alinearlas con los requisitos de seguridad y cumplimiento en evolución. Para obtener más información, consulta la descripción general del control de acceso detallado.
❑  
Implementa programas de copia de seguridad automatizados para garantizar una protección de datos coherente y confiable. Configura la frecuencia y la retención para que coincidan con las necesidades comerciales y las obligaciones reglamentarias. Usa las funciones de programación de copias de seguridad de Spanner para automatizar la creación, la administración y la supervisión de las copias de seguridad. Para obtener más información, consulta Cómo crear y administrar programas de copias de seguridad.
❑  
Habilita la protección contra la eliminación de bases de datos para evitar eliminaciones accidentales o no autorizadas. Combina esto con controles estrictos de IAM para limitar los privilegios de eliminación a un conjunto pequeño y confiable de usuarios o cuentas de servicio. Además, configura herramientas de automatización de infraestructura como Terraform para incluir protecciones contra la eliminación no intencional de tus bases de datos. Este enfoque en capas minimiza los riesgos para los activos de datos críticos. Para obtener más información, consulta Cómo evitar la eliminación accidental de bases de datos.

Registro y supervisión

El registro y la supervisión eficaces son fundamentales para mantener la visibilidad de las operaciones de la base de datos, detectar anomalías y garantizar el estado del sistema. Cuando usas registros de auditoría, seguimiento distribuido, paneles y alertas proactivas, puedes identificar y resolver problemas rápidamente, optimizar el rendimiento y cumplir con los requisitos de cumplimiento.

Casilla de verificación Actividad
❑  
Habilita el registro de auditoría para capturar información detallada sobre las actividades de la base de datos. Configura los niveles de registro de auditoría de forma adecuada según los requisitos operativos y de cumplimiento para supervisar los patrones de acceso y detectar anomalías de manera eficaz. Ten en cuenta que los registros de auditoría pueden crecer mucho, en especial para las solicitudes de DATA_READ y DATA_WRITE, ya que todas las instrucciones de SQL y DML se registran para estas solicitudes. Para obtener más información, consulta Registro de auditoría de Spanner.

Enrutar estos registros a un bucket de registro definido por el usuario te permite optimizar los costos de retención de registros (no se cobran los primeros 30 días) y controlar de forma detallada el acceso a los registros con vistas de registro.
❑  
Para recopilar métricas del cliente, instrumenta la lógica de tu aplicación con OpenTelemetry para distribuir el seguimiento y la observabilidad. Configura la instrumentación de OpenTelemetry para capturar seguimientos y métricas de Spanner, lo que garantiza una visibilidad de extremo a extremo del rendimiento de la aplicación y las interacciones de la base de datos. Para obtener más información, consulta Cómo capturar métricas personalizadas del cliente con OpenTelemetry.
❑  
Crea y configura métricas de supervisión para visualizar el rendimiento, la latencia, el uso de la CPU y el uso de almacenamiento de las consultas. Usa estas métricas para realizar un seguimiento en tiempo real y un análisis histórico del rendimiento de la base de datos. Para obtener más información, consulta Supervisa instancias con Cloud Monitoring.
❑  
Define alertas de supervisión basadas en umbrales para las métricas críticas para detectar y abordar los problemas de forma proactiva. Configura alertas para condiciones como latencia de consulta alta, baja disponibilidad de almacenamiento o aumentos repentinos inesperados en el tráfico. Integra estas alertas con las herramientas de respuesta ante incidentes para tomar medidas rápidamente. Para obtener más información, consulta Crea alertas para las métricas de Spanner.

Biblioteca cliente

Configurar el etiquetado de operaciones, los grupos de sesiones y las políticas de reintento es fundamental para optimizar el rendimiento, depurar problemas y mantener la resiliencia en Spanner. Estas medidas mejoran la observabilidad, reducen la latencia y garantizan un manejo eficiente de las demandas de la carga de trabajo y los errores transitorios, alineando el comportamiento del sistema con los requisitos de la aplicación.

Casilla de verificación Actividad
❑  
Configura la biblioteca cliente para usar solicitudes de consulta y etiquetas de transacción significativas. Puedes usar etiquetas de solicitud y transacción para comprender mejor tus consultas, lecturas y transacciones. Como práctica recomendada, usa metadatos contextuales, como el componente de la aplicación, el tipo de solicitud o el contexto del usuario, en tus etiquetas para habilitar la depuración y la introspección mejoradas. Asegúrate de que las etiquetas sean visibles en las estadísticas y los registros de consultas para facilitar el análisis de rendimiento y la solución de problemas. Para obtener más información, consulta Cómo solucionar problemas con etiquetas de solicitud y de transacción.
❑  
Habilita el grupo de sesiones en la biblioteca cliente para optimizar la administración de sesiones. Configura la configuración del grupo, como las sesiones mínimas y máximas, para que coincida con las demandas de la carga de trabajo y, al mismo tiempo, minimizar la latencia. Supervisa el uso de la sesión con regularidad para ajustar estos parámetros y asegurarte de que el grupo de sesiones proporcione beneficios de rendimiento coherentes. Para obtener más información, consulta Sesiones.
❑  
En casos excepcionales, los parámetros predeterminados de la biblioteca cliente para los reintentos, incluidos los intentos máximos y los intervalos de retirada exponencial, deben configurarse para equilibrar la resiliencia con el rendimiento. Prueba estas políticas en detalle para asegurarte de que se alineen con las necesidades de la aplicación. Para obtener más información, consulta Configura tiempos de espera y reintentos personalizados.

Asistencia

Para minimizar el tiempo de inactividad y el impacto, define roles y responsabilidades de incidentes claros para garantizar respuestas rápidas y coordinadas a los problemas relacionados con Spanner. Si necesitas más información, consulta Obtén asistencia.

Casilla de verificación Actividad
❑  
Establece un marco de trabajo de respuesta a incidentes claro en el que se definan los roles y las responsabilidades de todos los miembros del equipo involucrados en la administración de incidentes relacionados con Spanner. Designa roles para incidentes, como comandante de incidentes, líder de comunicaciones y expertos en la materia (SME), para garantizar una coordinación y una comunicación eficientes durante los incidentes. Desarrolla y documenta procesos para identificar, derivar, mitigar y resolver problemas. Sigue las prácticas recomendadas que se describen en el libro de trabajo de SRE de Google sobre la respuesta ante incidentes y Administración de incidentes. Realiza simulaciones y capacitaciones de respuesta ante incidentes con regularidad para garantizar la preparación y mejorar la capacidad del equipo para administrar situaciones de alta presión de manera eficaz.

Administración de costos

La implementación de estrategias de administración de costos, como los descuentos por uso comprometido (CUD), la escalabilidad automática y las copias de seguridad incrementales, garantiza un uso eficiente de los recursos y ahorros significativos en los costos. Alinear el aprovisionamiento de recursos con las demandas de la carga de trabajo y optimizar los entornos que no son de producción reduce aún más los gastos y, al mismo tiempo, mantiene el rendimiento y la flexibilidad.

Casilla de verificación Actividad
❑  
Evalúa y compra CUD para Spanner para reducir los costos de las cargas de trabajo predecibles. Estos compromisos podrían proporcionar ahorros significativos en comparación con los precios a pedido. Analiza los patrones de uso históricos para determinar los compromisos de CUD óptimos. Para obtener más información, consulta Descuentos por compromiso de uso y Precios de Spanner.
❑  
Supervisa el uso de la capacidad de procesamiento y ajusta los recursos aprovisionados para mantener los niveles de uso de CPU recomendados. El aprovisionamiento excesivo de recursos de procesamiento podría generar costos innecesarios, mientras que el aprovisionamiento insuficiente podría afectar el rendimiento. Sigue las guías recomendadas para el uso máximo de CPU de Spanner para garantizar un alineamiento de recursos rentable.
❑  
Habilita el ajuste de escala automático para ajustar de forma dinámica la capacidad de procesamiento según las demandas de la carga de trabajo. Esto garantiza un rendimiento óptimo durante las cargas máximas y reduce los costos durante los períodos de baja actividad. Configura políticas de escalamiento con límites superiores e inferiores para controlar el costo y evitar una escalamiento excesivo. Para obtener más información, consulta Descripción general del ajuste de escala automático.
❑  
Usa copias de seguridad incrementales para reducir los costos de almacenamiento de copias de seguridad. Las copias de seguridad incrementales solo almacenan los cambios de datos desde la última copia de seguridad. Esto reduce significativamente los requisitos de almacenamiento en comparación con las copias de seguridad completas. Incorpora copias de seguridad incrementales en tu estrategia de copia de seguridad. Para obtener más información, consulta Copias de seguridad incrementales.
❑  
Optimiza los costos de los entornos que no son de producción seleccionando la configuración de instancia más óptima y aprovisionando recursos cuando los entornos no estén en uso. Por ejemplo, reduce el tamaño de los entornos no críticos después del horario laboral o automatiza el escalamiento de recursos para situaciones de desarrollo y pruebas. Este enfoque minimiza los costos y, al mismo tiempo, mantiene la flexibilidad operativa.