Esta lista de tareas para el lanzamiento proporciona una lista de consideraciones que se deben tener en cuenta antes de lanzar una aplicación de producción en Spanner. No pretende ser exhaustiva, pero sirve para destacar las consideraciones clave para minimizar los riesgos, optimizar el rendimiento y garantizar la alineación con los objetivos empresariales y operativos, lo que ofrece un enfoque sistemático para ofrecer 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
- Migración (opcional)
- Deployment
- Administración de estadísticas y del optimizador de consultas
- Recuperación ante desastres
- Seguridad
- Registro y supervisión
- Biblioteca cliente
- Asistencia
- Administración de costos
Diseño, desarrollo, pruebas y optimización
Optimizar el diseño de esquemas, las transacciones y las consultas es esencial para usar la arquitectura distribuida de Spanner para obtener un alto rendimiento y escalabilidad. Las rigurosas pruebas integrales y a escala de producción garantizan que el sistema pueda controlar las cargas de trabajo del mundo real, las cargas máximas y las operaciones simultáneas, a la vez que minimizan 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 considera optimizaciones, como la intercalación de tablas para datos relacionados. Revisa las
prácticas recomendadas para el diseño de esquemas
para garantizar que el esquema admita tanto el alto rendimiento como la escalabilidad
en las cargas de trabajo esperadas.
|
❑ |
Optimiza las transacciones y las consultas para minimizar el bloqueo y maximizar el rendimiento. Usa los modos de transacción de Spanner, como
las sentencias de lectura y escritura con bloqueo, de solo lectura sólida y de DML particionado,
para equilibrar la coherencia, la capacidad de procesamiento y la latencia. Minimiza
los permisos de bloqueo con
transacciones de solo lectura
para las consultas, procesamiento por lotes
para obtener la máxima capacidad de procesamiento de DML o
sentencias 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 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 situaciones de alta simultaneidad y
pico que imiten las cargas de aplicaciones del mundo real,
incluidas diversas formas de transacciones y patrones de consulta. 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 las pruebas de carga de forma iterativa durante el desarrollo para optimizar y
perfeccionar la implementación.
|
❑ |
Extiende las pruebas de carga para abarcar todos los servicios que interactúan, no solo las
aplicaciones aisladas. Simular recorridos del usuario integrales 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 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 del mundo real.
|
❑ |
Para garantizar un rendimiento de 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 con regularidad las nuevas versiones del optimizador
en un entorno controlado y actualiza la versión predeterminada solo después de
confirmar las mejoras de compatibilidad y rendimiento. Para obtener más
información, consulta
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
crear 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), adición de índices nuevos o cambios de esquema.
Mantener actualizadas las estadísticas del optimizador de consultas 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 profundo de los detalles 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 (SOP) detallado para la
migración de sistemas. Esto incluye los pasos para el lanzamiento de la aplicación, la conmutación de la base de datos y la automatización para minimizar la intervención manual.
Identifica y comunica los posibles períodos de tiempo de inactividad a las partes interesadas con mucha
anticipación. Implementa mecanismos sólidos de supervisión y alertas 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 problemas críticos durante la migración. Prueba los procedimientos de respaldo en un entorno de etapa de pruebas para asegurarte de que sean confiables y se puedan ejecutar con un tiempo de inactividad mínimo. Define claramente las condiciones que activarían una reversión y asegúrate de que el equipo esté capacitado para ejecutar este plan de forma rápida y eficiente.
|
Implementación
La planificación de la implementación adecuada garantiza que las configuraciones de Spanner cumplan con los requisitos de carga de trabajo en cuanto a disponibilidad, latencia y escalabilidad, y que se tengan en cuenta las consideraciones geográficas y operativas. Alinear el dimensionamiento, 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 las restricciones de recursos o las interrupciones durante las 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 en función de los tamaños de almacenamiento esperados, los patrones de tráfico y los límites de uso recomendados, lo que garantiza capacidad suficiente para las interrupciones zonales o regionales. Planifica los
picos de tráfico habilitando el ajuste de escala automático.
Puedes establecer un límite superior para la capacidad de procesamiento y, así, establecer medidas de seguridad de costos. Para obtener más información, consulta Capacidad de procesamiento, nodos y unidades de procesamiento.
|
❑ |
Si usas una configuración de instancia birregional o multirregional,
elige una región líder que minimice la latencia para las operaciones de escritura de la aplicación
desde 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 realiza ajustes para optimizar el rendimiento de la aplicación. Planifica situaciones 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 líder durante las interrupciones regionales. Para obtener más información, consulta Cómo modificar la región líder de una base de datos.
|
❑ |
Configura las etiquetas de forma adecuada para lograr claridad operativa y realizar el 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 en el análisis de costos
y la administración de permisos. Para obtener más información, consulta
Controla el acceso y organiza las instancias con etiquetas.
|
❑ |
Evalúa si es necesario el calentamiento de Spanner,
especialmente para los servicios que esperan un tráfico repentino y alto en el lanzamiento.
Probar la latencia con cargas iniciales altas puede revelar la necesidad de
un calentamiento previo al lanzamiento para garantizar un rendimiento óptimo. Si se requiere un período de calentamiento, genera carga artificial. Para obtener más información, consulta Prepara 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 actividad. 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, y asegúrate de que las configuraciones sean eficientes
y a prueba de errores. Para la administración de esquemas, considera usar herramientas como
Liquibase
para evitar la eliminación accidental de esquemas durante las actualizaciones. Para obtener más información, consulta Usa Terraform con Spanner.
|
Recuperación ante desastres
Establecer una estrategia sólida de recuperación ante desastres (DR) es esencial para proteger los datos, minimizar el tiempo de inactividad y garantizar la continuidad empresarial durante fallas inesperadas. Las pruebas periódicas de los procedimientos de restauración y la automatización de las copias de seguridad ayudan a garantizar la preparación operativa, el cumplimiento de los objetivos de recuperación y la 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 protección de datos, objetivos de recuperación
y situaciones de falla. 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 empresarial. Especifica la frecuencia de las copias de seguridad y 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, confiabilidad 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 para los procedimientos de copia de seguridad y restablecimiento,
incluidas guías paso a paso para diversas 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 falla del mundo real para identificar brechas y mejorar el proceso de recuperación. Para obtener más información, consulta Descripción general del restablecimiento.
|
❑ |
Implementa programas de copias de seguridad automatizadas para garantizar una protección de datos coherente y
confiable. Configura los parámetros de frecuencia y 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 Crea y administra programas 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 los impactos de latencia en caso de interrupción. Prueba situaciones de recuperación ante desastres para garantizar que la aplicación pueda funcionar con eficiencia operativa cuando la región líder se mueva a una región de conmutación por error. Para obtener más información, consulta Cómo modificar 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 de las consultas predecible y eficiente. Usar versiones probadas y mantener actualizadas las estadísticas garantiza la estabilidad, evita cambios inesperados en el rendimiento y optimiza los planes de ejecución de consultas, en especial durante las modificaciones significativas de los datos o el esquema.
| 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 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
crear 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), adición de índices nuevos o cambios de esquema.
Mantener actualizadas las estadísticas del optimizador de consultas es fundamental para
conservar un rendimiento óptimo de las consultas.
|
❑ |
En ciertas situaciones, como después de eliminaciones masivas o cuando la generación de estadísticas nuevas puede afectar el rendimiento de las consultas de forma impredecible, se recomienda fijar un paquete de estadísticas específico. Esto proporciona
un rendimiento de consultas coherente hasta que se pueda generar y probar
un paquete nuevo. Revisa periódicamente la necesidad de fijar estadísticas y deja de fijarlas una vez
que 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 esencial para proteger los datos sensibles y evitar el acceso no autorizado en Spanner. Si aplicas el acceso con privilegio mínimo, el control de acceso detallado (FGAC) y la protección contra 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 e implementa políticas de Identity and Access Management (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 con regularidad
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 y, así, reduce 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 basadas en atributos de usuario
o valores de datos para aplicar reglas de acceso detalladas. Revisar y actualizar periódicamente estas políticas 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.
|
❑ |
Habilita la protección contra eliminaciones 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 medidas de protección contra la eliminación accidental de tus bases de datos. Este enfoque en capas minimiza los riesgos para
los recursos 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. Con los registros de auditoría, el seguimiento distribuido, los paneles y las alertas proactivas, puedes identificar y resolver problemas con rapidez, 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 de cumplimiento y operativos para supervisar los patrones de acceso y
detectar anomalías de manera eficaz. Ten en cuenta que los registros de auditoría pueden crecer,
en especial para las solicitudes DATA_READ y DATA_WRITE,
ya que todas las sentencias de SQL y DML se registran para estas
solicitudes respectivas. Para obtener más información, consulta Registros de auditoría de Spanner.
Enrutar estos registros a un bucket de registros 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 registros. |
❑ |
Recopila métricas del cliente instrumentando 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 la visibilidad de extremo a extremo del rendimiento de la aplicación
y las interacciones con 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 de las consultas,
la latencia, el uso de CPU y el uso del almacenamiento.
Usa estas métricas para el seguimiento en tiempo real y el 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 y, así, detectar y abordar problemas de forma proactiva. Configura alertas para condiciones como latencia de consultas alta, disponibilidad de almacenamiento baja o aumentos repentinos inesperados en el tráfico. Integra estas alertas con herramientas de respuesta
ante incidentes para tomar medidas con rapidez. 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 reintentos 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 carga de trabajo y los errores transitorios, lo que alinea el comportamiento del sistema con los requisitos de la aplicación.
| Casilla de verificación | Actividad |
|---|---|
❑ |
Configura la biblioteca cliente para que use etiquetas de transacciones y solicitudes de consulta
significativas. Puedes usar 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 introspección y la depuración mejoradas. Asegúrate de que las etiquetas sean visibles 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 Soluciona problemas con etiquetas de solicitud y etiquetas de transacción.
|
❑ |
Optimiza la administración de sesiones habilitando la agrupación de sesiones en la biblioteca cliente. Establece 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 periódicamente el uso de las sesiones para ajustar estos parámetros y garantizar que el grupo de sesiones proporcione beneficios de rendimiento coherentes. Para obtener más información, consulta Sesiones.
|
❑ |
En situaciones 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 de forma exhaustiva 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 claros para los incidentes, de modo que se garanticen respuestas rápidas y coordinadas a los problemas relacionados con Spanner. Para obtener más información, consulta Obtén asistencia.
| Casilla de verificación | Actividad |
|---|---|
❑ |
Establece un marco de trabajo claro de respuesta ante incidentes, 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 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 libro de trabajo de SRE de Google sobre la respuesta ante incidentes y la administración de incidentes.
Realiza simulaciones y capacitaciones periódicas sobre respuesta ante incidentes 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 el ajuste de escala automático y las copias de seguridad incrementales, garantiza una utilización eficiente de los recursos y ahorros significativos. 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, a la vez que mantiene el rendimiento y la flexibilidad.
| Casilla de verificación | Actividad |
|---|---|
❑ |
Evalúa y compra CUD para Spanner y reduce los costos
en cargas de trabajo predecibles. Estos compromisos pueden 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 recomendados de uso de CPU. El aprovisionamiento excesivo
de recursos de procesamiento puede generar costos innecesarios, mientras que
el aprovisionamiento insuficiente puede afectar el rendimiento. Sigue los lineamientos recomendados para el uso máximo de CPU de Spanner para garantizar una alineación 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 los períodos de carga máxima y reduce los costos durante los períodos de poca actividad. Configura políticas de ajuste de escala con límites superior e inferior para controlar los costos y evitar el ajuste de escala 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 las 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 desaprovisionando los 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 de atención o automatiza el escalamiento de recursos para situaciones de desarrollo
y prueba. Este enfoque minimiza los costos y, al mismo tiempo, mantiene la flexibilidad operativa.
|