Lista de comprobación de lanzamiento de Spanner

Esta lista de comprobación de lanzamiento incluye una serie de aspectos que se deben tener en cuenta antes de lanzar una aplicación de producción en Spanner. No pretende ser exhaustiva, sino que destaca las consideraciones clave para minimizar los riesgos, optimizar el rendimiento y asegurar la alineación con los objetivos empresariales y operativos, ofreciendo un enfoque sistemático para ofrecer una implementación de Spanner fluida y fiable.

Esta lista de comprobación se divide en las siguientes secciones:

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 conseguir un alto rendimiento y escalabilidad. Las pruebas rigurosas a escala de producción y de extremo a extremo aseguran que el sistema pueda gestionar cargas de trabajo reales, cargas máximas y operaciones simultáneas, al tiempo que se minimizan los riesgos de cuellos de botella o fallos en producción.

Casilla Actividad
❑  
Diseña el esquema teniendo en cuenta la escalabilidad y la arquitectura distribuida de Spanner. Sigue las prácticas recomendadas, como seleccionar las claves principales y los índices adecuados para evitar los puntos de acceso, y ten en cuenta las optimizaciones, como el entrelazado de tablas para los datos relacionados. Consulta las prácticas recomendadas para diseñar esquemas para asegurarte de que el esquema admite tanto un alto rendimiento como la escalabilidad en las cargas de trabajo previstas.
❑  
Optimiza las transacciones y las consultas para minimizar los bloqueos y maximizar el rendimiento. Usa los modos de transacción de Spanner, como las instrucciones de lectura y escritura con bloqueo, de solo lectura sólidas y de DML con particiones, para equilibrar la coherencia, el rendimiento y la latencia. Minimiza los ámbitos de bloqueo usando transacciones de solo lectura para las consultas, agrupación por lotes para maximizar el volumen de DML o declaraciones de DML particionadas para actualizaciones y eliminaciones a gran escala. Cuando migres desde sistemas con niveles de aislamiento diferentes (por ejemplo, PostgreSQL o MySQL), usa transacciones para evitar cuellos de botella en el rendimiento. Para obtener más información, consulta Transacciones.
❑  
Realiza pruebas de carga rigurosas a gran escala para validar el diseño del esquema, el comportamiento de las transacciones y el rendimiento de las consultas. Simula escenarios de picos 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 el rendimiento en estas condiciones para confirmar que el diseño de la base de datos y la topología de la instancia cumplen los requisitos de rendimiento. Usa las pruebas de carga de forma iterativa durante el desarrollo para optimizar y refinar la implementación.
❑  
Amplía las pruebas de carga para que abarquen todos los servicios que interactúan, no solo las aplicaciones aisladas. Simula recorridos de 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 para asegurarte de que los controladores y los servicios de las pruebas de carga se ajustan geográficamente a la topología de la implementación de producción prevista. Este enfoque integral identifica posibles conflictos con antelación y garantiza un rendimiento fluido de la base de datos durante las operaciones reales.
❑  
Para asegurar un rendimiento predecible de las consultas, usa la versión del optimizador en la que se ha probado 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úrese 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, puede crear manualmente un nuevo paquete de estadísticas en situaciones como modificaciones de datos a gran escala (por ejemplo, inserciones, actualizaciones o eliminaciones en bloque), adición de nuevos índices o cambios de esquema. Es fundamental mantener actualizadas las estadísticas del optimizador de consultas para que las consultas tengan un rendimiento óptimo.

Migración (opcional)

La migración de bases de datos es un proceso exhaustivo que requiere un análisis detallado de las características específicas de cada proceso de migración. Ten en cuenta lo siguiente en tu estrategia de migración:

Casilla Actividad
❑  
Elabora un procedimiento operativo estándar (SOP) detallado para el cambio de la migración. Esto incluye los pasos para lanzar la aplicación, cambiar de base de datos y automatizar el proceso para minimizar la intervención manual. Identifica y comunica a las partes interesadas las posibles ventanas de inactividad con suficiente antelación. Implementa mecanismos de monitorización y alertas sólidos para hacer un seguimiento del proceso de migración en tiempo real y detectar cualquier anomalía rápidamente. Asegúrate de que el proceso de cambio incluya comprobaciones de validación para confirmar la integridad de los datos y las funciones de la aplicación después de la migración.
❑  
Prepara un plan de respaldo detallado para volver al sistema de origen en caso de que se produzcan problemas críticos durante la migración. Prueba los procedimientos de respaldo en un entorno de preproducción para asegurarte de que son fiables y se pueden ejecutar con un tiempo de inactividad mínimo. Define claramente las condiciones que activarían un plan de contingencia y asegúrate de que el equipo esté preparado para ejecutarlo de forma rápida y eficiente.

Implementación

Una planificación de la implementación adecuada asegura que las configuraciones de Spanner cumplan los requisitos de disponibilidad, latencia y escalabilidad de las cargas de trabajo, al tiempo que tiene en cuenta los aspectos geográficos y operativos. Al alinear el tamaño, la gestión de recursos, los escenarios de conmutación por error y la automatización, se minimizan los riesgos, se garantiza un rendimiento óptimo y se evitan las limitaciones o las interrupciones de los recursos durante las operaciones críticas.

Casilla Actividad
❑  
Asegúrate de que la configuración de la instancia de Spanner (regional, birregional o multirregional) se ajuste a los requisitos de disponibilidad y latencia de la carga de trabajo de tu aplicación, y ten en cuenta los aspectos geográficos. Calcula la capacidad de computación de destino en función de los tamaños de almacenamiento, los patrones de tráfico y los límites de utilización recomendados, para asegurarte de que haya capacidad suficiente en caso de interrupciones zonales o regionales. Planifica los picos de tráfico habilitando el autoescalado. Puedes definir un límite superior para la capacidad de computación y establecer así medidas de protección de los costes. Para obtener más información, consulta Capacidad de computación, nodos y unidades de procesamiento.
❑  
Si usas una configuración de instancia de dos o varias regiones, elige una región principal que minimice la latencia de las escrituras de aplicaciones de los servicios implementados en las ubicaciones más sensibles a la latencia. Prueba las implicaciones de las diferentes regiones líderes en la latencia de las operaciones y haz los ajustes necesarios para optimizar el rendimiento de las aplicaciones. Planifica escenarios de conmutación por error asegurándote de que la topología de la aplicación pueda adaptarse a los cambios de la región principal durante las interrupciones regionales. Para obtener más información, consulta Modificar la región líder de una base de datos.
❑  
Configura las etiquetas de forma adecuada para que las operaciones sean claras y para hacer un seguimiento de los recursos de Google Cloud. Usa etiquetas para agrupar instancias por entorno o tipo de carga de trabajo. Usa etiquetas para los metadatos que ayudan a analizar los costes y gestionar los permisos. Para obtener más información, consulta Controlar el acceso y organizar instancias con etiquetas.
❑  
Evalúa si es necesario calentar Spanner, sobre todo en el caso de los servicios que esperan un tráfico repentino y elevado al lanzarse. Si pruebas la latencia con cargas iniciales elevadas, puede que tengas que calentar el sistema antes del lanzamiento para asegurar un rendimiento óptimo. Si es necesario, genera carga artificial. Para obtener más información, consulta Calentar la base de datos antes de lanzar 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 Google Cloud consola para evitar restricciones durante los periodos de mayor actividad. Ten en cuenta los límites estrictos (por ejemplo, el número máximo 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 gestionar tus instancias de Spanner, de modo que las configuraciones sean eficientes y no tengan errores. Para gestionar el esquema, te recomendamos que utilices herramientas como Liquibase para evitar que se eliminen esquemas por error durante las actualizaciones. Para obtener más información, consulta Usar Terraform con Spanner.

Recuperación tras fallos

Es fundamental establecer una estrategia de recuperación tras fallos sólida para proteger los datos, minimizar el tiempo de inactividad y garantizar la continuidad del negocio durante fallos inesperados. Realizar pruebas periódicas de los procedimientos de restauración y automatizar las copias de seguridad ayuda a asegurar la disponibilidad operativa, el cumplimiento de los objetivos de recuperación y una protección de datos fiable adaptada a las necesidades de la organización.

Casilla Actividad
❑  
Define una estrategia integral de recuperación tras fallos para Spanner que incluya la protección de datos, los objetivos de recuperación y las situaciones de fallo. Define objetivos de tiempo de recuperación (RTO) y de punto de recuperación (RPO) claros que se ajusten a los requisitos de continuidad de la actividad empresarial. Especifica la frecuencia de las copias de seguridad y las políticas de conservación, y usa la recuperación a un momento dado (PITR) para minimizar la pérdida de datos en caso de fallos. Consulta la descripción general de la recuperación ante desastres para identificar las herramientas y técnicas adecuadas que te permitan cumplir los requisitos de disponibilidad, fiabilidad y 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 sobre los procedimientos de creación de copias de seguridad y restauración, incluidas guías paso a paso para diferentes situaciones de recuperación. Prueba estos procedimientos con regularidad para asegurarte de que están listos y validar los requisitos de RTO y RPO. Las pruebas deben simular condiciones y situaciones de fallo reales para identificar las carencias y mejorar el proceso de recuperación. Para obtener más información, consulta el resumen de la restauración.
❑  
Implementa programaciones de copias de seguridad automatizadas para asegurar una protección de datos coherente y fiable. Configura los ajustes de frecuencia y conservación para que se ajusten a las necesidades de la empresa y a las obligaciones normativas. Usa las funciones de programación de copias de seguridad de Spanner para automatizar la creación, la gestión y la monitorización de copias de seguridad. Para obtener más información, consulta Crear y gestionar programaciones de copias 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 el impacto de la latencia en caso de interrupción. Prueba escenarios de recuperación tras fallos para asegurarte de que la aplicación puede funcionar de forma eficiente cuando la región principal se traslada a una región de conmutación por error. Para obtener más información, consulta Modificar la región líder de una base de datos.

Gestión de estadísticas y optimizador de consultas

Gestionar las versiones y las estadísticas del optimizador de consultas es importante para mantener un rendimiento de las consultas predecible y eficiente. Usar versiones probadas y mantener las estadísticas actualizadas garantiza la estabilidad, evita cambios inesperados en el rendimiento y optimiza los planes de ejecución de las consultas, especialmente durante las modificaciones significativas de los datos o del esquema.

Casilla Actividad
❑  
De forma predeterminada, las bases de datos de Spanner usan la versión más reciente del optimizador de consultas. Para asegurar un rendimiento predecible de las consultas, usa la versión del optimizador en la que se ha probado la carga de trabajo. Evalúa periódicamente las nuevas versiones del optimizador en un entorno controlado y actualiza la versión predeterminada solo después de confirmar que es compatible y que mejora el rendimiento. Para obtener más información, consulta la descripción general del optimizador de consultas.
❑  
Asegúrese 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, puede crear manualmente un nuevo paquete de estadísticas en situaciones como modificaciones de datos a gran escala (por ejemplo, inserciones, actualizaciones o eliminaciones en bloque), adición de nuevos índices o cambios de esquema. Es fundamental mantener actualizadas las estadísticas del optimizador de consultas para que las consultas tengan un rendimiento óptimo.
❑  
En determinados casos, como después de eliminaciones en bloque o cuando la generación de nuevas estadísticas puede afectar de forma impredecible al rendimiento de las consultas, es recomendable fijar un paquete de estadísticas específico. De esta forma, se mantiene un rendimiento de las consultas constante hasta que se pueda generar y probar un nuevo paquete. Revisa periódicamente si es necesario fijar estadísticas y desfíjalas cuando se validen los paquetes actualizados. Para obtener más información, consulta Paquetes de estadísticas del optimizador de consultas.

Seguridad

Implementar medidas de control de acceso es fundamental para proteger los datos sensibles y evitar el acceso no autorizado en Spanner. Al aplicar el acceso con los mínimos privilegios, el control de acceso detallado (FGAC) y la protección contra la eliminación de bases de datos, puedes minimizar los riesgos, asegurar el cumplimiento y proteger los recursos críticos frente a acciones accidentales o maliciosas.

Casilla Actividad
❑  
Revisa e implementa políticas de gestión de identidades y accesos (IAM) siguiendo el principio de privilegio mínimo para todos los usuarios y cuentas de servicio que accedan 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 asegurarte de que se cumple este modelo. Usa cuentas de servicio con el mínimo de privilegios para los procesos automatizados y, de esta forma, reduce el riesgo de acceso no autorizado. Para obtener más información, consulta la información general sobre la gestión de identidades y accesos.
❑  
Si la aplicación requiere acceso restringido a filas, columnas o celdas específicas de una tabla, implementa el control de acceso pormenorizado (FGAC). Diseña y aplica políticas de acceso condicional basadas en atributos de usuario o valores de datos para aplicar reglas de acceso pormenorizadas. Revisa y actualiza estas políticas periódicamente para adaptarlas a los requisitos de seguridad y cumplimiento en constante evolución. Para obtener más información, consulta la descripción general del control de acceso pormenorizado.
❑  
Implementa programaciones de copias de seguridad automatizadas para asegurar una protección de datos coherente y fiable. Configura los ajustes de frecuencia y conservación para que se ajusten a las necesidades de la empresa y a las obligaciones normativas. Usa las funciones de programación de copias de seguridad de Spanner para automatizar la creación, la gestión y la monitorización de copias de seguridad. Para obtener más información, consulta Crear y gestionar programaciones de copias de seguridad.
❑  
Habilita la protección frente a la eliminación de bases de datos para evitar eliminaciones accidentales o no autorizadas. Combina esta medida con controles de gestión de identidades y accesos estrictos para limitar los privilegios de eliminación a un conjunto reducido y de confianza de usuarios o cuentas de servicio. Además, configura herramientas de automatización de la infraestructura, como Terraform, para incluir medidas de protección contra la eliminación accidental de tus bases de datos. Este enfoque por capas minimiza los riesgos para los recursos de datos críticos. Para obtener más información, consulta Evitar que se eliminen bases de datos por error.

Almacenamiento de registros y monitorización

Un registro y una monitorización eficaces son fundamentales para mantener la visibilidad de las operaciones de la base de datos, detectar anomalías y asegurar el buen estado del sistema. Si usas registros de auditoría, monitorización distribuida, paneles de control y alertas proactivas, puedes identificar y resolver problemas rápidamente, optimizar el rendimiento y cumplir los requisitos.

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

Si enrutas estos registros a un segmento de registro definido por el usuario, puedes optimizar los costes de conservación de registros (los primeros 30 días no se cobran) y controlar el acceso a los registros de forma granular mediante vistas de registro.
❑  
Recopila métricas del lado del cliente instrumentando la lógica de tu aplicación con OpenTelemetry para distribuir las trazas y la observabilidad. Configura la instrumentación de OpenTelemetry para recoger trazas y métricas de Spanner, lo que te permitirá tener una visibilidad integral del rendimiento de las aplicaciones y las interacciones con las bases de datos. Para obtener más información, consulta el artículo Recoger métricas personalizadas del lado del cliente con OpenTelemetry.
❑  
Crea y configura métricas de monitorización para visualizar el rendimiento de las consultas, la latencia, la utilización de la CPU y el uso del almacenamiento. Usa estas métricas para hacer 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 el artículo sobre monitorizar instancias con Cloud Monitoring.
❑  
Define alertas de monitorización basadas en umbrales para métricas críticas con el objetivo de detectar y solucionar problemas de forma proactiva. Configura alertas para condiciones como una latencia de consulta alta, una disponibilidad de almacenamiento baja o picos inesperados de tráfico. Integra estas alertas con herramientas de respuesta a incidentes para tomar medidas rápidamente. Para obtener más información, consulta Crear alertas para métricas de Spanner.

Biblioteca de 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 aseguran una gestión eficiente de las demandas de carga de trabajo y los errores transitorios, lo que alinea el comportamiento del sistema con los requisitos de la aplicación.

Casilla Actividad
❑  
Configura la biblioteca de cliente para que use etiquetas de solicitud de consulta y de transacción significativas. Puedes usar las etiquetas de solicitud y transacción para comprender 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 se vean en las estadísticas y los registros de las consultas para facilitar el análisis del rendimiento y la solución de problemas. Para obtener más información, consulta Solucionar problemas con etiquetas de solicitud y de transacción.
❑  
Optimiza la gestión de sesiones habilitando la agrupación de sesiones en la biblioteca de cliente. Configura los ajustes del grupo, como el número mínimo y máximo de sesiones, para que se adapten a las demandas de la carga de trabajo y, al mismo tiempo, se minimice la latencia. Monitoriza periódicamente el uso de las sesiones para ajustar estos parámetros y asegurarte de que el grupo de sesiones ofrece ventajas de rendimiento constantes. Para obtener más información, consulta Sesiones.
❑  
En casos excepcionales, los parámetros predeterminados de la biblioteca de cliente para reintentos, incluidos el número máximo de intentos y los intervalos de espera exponenciales, deben configurarse para equilibrar la resiliencia con el rendimiento. Prueba estas políticas a fondo para asegurarte de que se ajustan a las necesidades de la aplicación. Para obtener más información, consulte Configurar tiempos de espera y reintentos personalizados.

Asistencia

Para minimizar el tiempo de inactividad y el impacto, define roles y responsabilidades claros en caso de incidentes para asegurar respuestas rápidas y coordinadas a los problemas relacionados con Spanner. Para obtener más información, consulta el artículo Obtener asistencia.

Casilla Actividad
❑  
Establece un marco de respuesta a incidentes claro que defina los roles y las responsabilidades de todos los miembros del equipo implicados en la gestión de incidentes relacionados con Spanner. Designa roles para los incidentes, como el de responsable de incidentes, responsable de comunicaciones y expertos en la materia, para asegurar una coordinación y una comunicación eficientes durante los incidentes. Desarrollar y documentar procesos para identificar, derivar, mitigar y resolver problemas. Sigue las prácticas recomendadas que se describen en el SRE Workbook de Google sobre la respuesta ante incidentes y en el artículo Gestión de incidentes. Realiza simulaciones y formaciones periódicas sobre respuesta a incidentes para asegurar que el equipo está preparado y mejorar su capacidad para gestionar situaciones de alta presión de forma eficaz.

Gestión de costes

Implementar estrategias de gestión de costes, como el autoescalado y las copias de seguridad incrementales, asegura un uso eficiente de los recursos y un ahorro de costes significativo. Alinear el aprovisionamiento de recursos con las demandas de las cargas de trabajo y optimizar los entornos que no son de producción reduce aún más los gastos, al tiempo que se mantienen el rendimiento y la flexibilidad.

Casilla Actividad
❑  
Evalúa y compra descuentos por uso continuado para Spanner y reduce los costes de las cargas de trabajo predecibles. Estos compromisos pueden suponer un ahorro significativo en comparación con los precios bajo demanda. Analiza los patrones de uso históricos para determinar los compromisos de CUD óptimos. Para obtener más información, consulta los descuentos por compromiso de uso y los precios de Spanner.
❑  
Monitoriza la utilización de la capacidad de computación y ajusta los recursos aprovisionados para mantener los niveles de utilización de la CPU recomendados. Si aprovisionas en exceso los recursos de computación, puedes incurrir en costes innecesarios, mientras que si los aprovisionas por debajo de lo necesario, el rendimiento puede verse afectado. Sigue las directrices recomendadas sobre el uso máximo de la CPU de Spanner para asegurarte de que los recursos se asignan de forma rentable.
❑  
Habilita el autoescalado para ajustar dinámicamente la capacidad de computación en función de las demandas de la carga de trabajo. De esta forma, se asegura un rendimiento óptimo durante los picos de carga y se reducen los costes durante los periodos de baja actividad. Configura políticas de escalado con límites superiores e inferiores para controlar los costes y evitar el escalado excesivo. Para obtener más información, consulta la descripción general del autoescalado.
❑  
Usa copias de seguridad incrementales para reducir los costes de almacenamiento de las copias de seguridad. Las copias de seguridad incrementales solo almacenan los cambios en los datos desde la última copia de seguridad. De esta forma, se reducen significativamente los requisitos de almacenamiento en comparación con las copias de seguridad completas. Incorpora copias de seguridad incrementales a tu estrategia de copias de seguridad. Para obtener más información, consulta Copias de seguridad incrementales.
❑  
Optimiza los costes de los entornos de no producción seleccionando la configuración de instancia más óptima y retirando los recursos cuando no se utilicen los entornos. Por ejemplo, reduce el tamaño de los entornos no críticos fuera del horario de trabajo o automatiza el escalado de recursos para los escenarios de desarrollo y pruebas. Este enfoque minimiza los costes y, al mismo tiempo, mantiene la flexibilidad operativa.