Preparación de producción para el período de mayor tráfico

En este artículo, se ayuda a los administradores de proyectos y a los líderes técnicos a crear planes de ejecución para los períodos esperados de aumento de tráfico de usuarios en una aplicación. Por ejemplo, en Estados Unidos, el último viernes de noviembre, conocido como Black Friday, suele ser uno de los días de compras con más actividad del año. En muchos otros países hay días o semanas similares en los que los minoristas esperan un tráfico muy alto. En este artículo, se describen áreas en las que puedes aumentar la preparación de tu organización, la confiabilidad del sistema y la participación con los clientes de Google para los eventos como el Black Friday.

En este artículo, se describe un sistema con los siguientes objetivos:

  • Administrar tres etapas diferentes para controlar un evento: planificación, preparación y ejecución.
  • Interactuar con las partes interesadas líderes, operativas y técnicas para mejorar el proceso y la colaboración.
  • Establecer diseños arquitectónicos que ayuden a controlar eventos como el Black Friday.
  • Promover las recomendaciones de la ingeniería de confiabilidad de sitios (SRE) de Google.

Introducción

Los sistemas comerciales del sector de ventas minoristas enfrentan un desafío técnico significativo: cómo gestionar solicitudes máximas a corto plazo que son 5 o más veces mayores que la carga promedio. En Estados Unidos, estos eventos ocurren en noviembre después del Día de Acción de Gracias, durante Black Friday y Cyber Monday. Otros países tienen eventos de escala máxima similares en diferentes momentos del año.

Un enfoque a este desafío es incorporar una estrategia de sistemas nativos de la nube. En comparación con las implementaciones tradicionales, esta estrategia puede ayudar a mejorar la planificación y ejecución en épocas de tráfico máximo, y ofrece nuevos medios que deben considerarse.

Aunque Black Friday es un evento comercial significativo en Estados Unidos, se exhiben características que ocurren en otros contextos; por ejemplo, las noches de elecciones o los feriados como Navidad y Noche Buena. En los eventos de tráfico máximo, generalmente se presentan las siguientes características:

  • Aumento en el tráfico de 5 a 20 veces, o más, con porcentajes de conversiones generalmente más altos y cargas mayores en los sistemas de backend.
  • Escalamiento rápido durante un período corto a medida que el evento se abre para el tráfico.
  • Disminución del tráfico a niveles normales. Esta diminución es generalmente más lenta que la escala hasta el máximo.

En los sistemas comerciales en los que el tráfico se inclina hacia las transacciones, el aumento de frontend puede no ser tan significativo. Por ejemplo, mientras el tráfico web de frontend puede aumentar de 2 a 4 veces, la carga en los sistemas de backend medida en pedidos/minuto puede aumentar 10 o más veces.

En la figura siguiente, se muestra un aumento característico en el tráfico de usuarios. Este se caracteriza por un aumento súbito y variable del tráfico máximo seguido de un retorno gradual a la normalidad.

Incremento repentino del tráfico durante el evento Black Friday

Te recomendamos seguir estas tres etapas cuando realices tu evento de Black Friday: planificación, preparación y ejecución. En el diagrama siguiente, puedes ver cómo cada etapa hace énfasis en diferentes funciones, habilidades y procesos.

3 etapas de la preparación para Black Friday

El personal administrativo y operativo lidera la organización mediante los aspectos tácticos de un evento de tráfico máximo. El personal puede preparar al equipo para que gestione un evento de tráfico máximo con éxito, mediante la revisión de las tres etapas y sus actividades. Si surgen problemas inesperados durante el evento, los preparativos ofrecen una evaluación más rápida y precisa, y una ruta para la resolución que reduce el impacto de los problemas.

Terminología

Black Friday
Cualquier tipo de evento de tráfico máximo para una aplicación.
QPS
Consultas por segundo. Una métrica común asociada al volumen de tráfico. QPS es un término de volumen técnico general, en comparación con pedido/minuto.
pedido/minuto
Indicador transaccional. Este término incluye otros indicadores como adiciones al carrito/segundo. Estos indicadores muestran el volumen transaccional detallado en términos más comerciales en comparación con QPS.
SLI
Indicador de nivel de servicio. Una métrica usada para determinar si un servicio se encuentra dentro de los límites aceptables. Por ejemplo, un SLI para el tiempo de carga de la página puede ser cargar una página web y todas las llamadas a la API subyacentes en el percentil 95.
SLO
Objetivo de nivel de servicio. Se define con un SLI y un objetivo designado. Un ejemplo de SLO puede ser: la latencia del SLI precedente debe ser menor que 400 ms.
ANS
Acuerdo de Nivel de Servicio. Las etapas y soluciones que se deben seguir cuando no se alcanza un SLO. Un ejemplo de ANS puede ser: suspender el desarrollo nuevo hasta que se alcance el SLO.

Etapa de planificación

El proverbio "La esperanza no es una estrategia" se cita regularmente como razón sólida para una planificación y una preparación rigurosas. La planificación y la coordinación multifuncionales sólidas en una organización y con proveedores externos aumentan las probabilidades de que sea un éxito. Las partes interesadas de ingeniería, arquitectura, operaciones y negocios deben acordar qué se mide, y deben saber qué impacto tendrá el evento de tráfico máximo en los sistemas de producción. Para la planificación y la asistencia de sistemas operativos, la toma de decisiones orientada a los datos conduce las elecciones y concesiones que estos equipos realizan.

En la siguiente tabla, se resumen los pasos principales de la etapa de planificación.

Paso de planificación Tareas
Recopila datos Conoce tus datos de medición.
Revisa eventos de tráfico máximo anteriores.
Prepara proyecciones de negocios.
Establece la administración del programa Configura los canales de comunicación.
Revisa el estado compartido.
Configura la supervisión y el sondeo.
Revisa la supervisión del sistema.
Crea planes de capacidad.
Crea listas de tareas.
Comparte el análisis de riesgos y clasifica las prioridades.
Planifica la arquitectura Revisa la arquitectura de diseño.
Revisa los patrones arquitectónicos del Black Friday.
Crea una estrategia de conmutación por error.

Recopila datos

El primer paso en la etapa de planificación es recopilar datos.

Conoce tus datos de medición

Cuando comienzas con datos de medición existentes (solicitudes/segundo, pedidos/minuto, adiciones al carrito/segundo), sientas las bases para entender y planificar un evento de tráfico máximo. Puedes comenzar este proceso respondiendo las siguientes preguntas:

  • ¿Qué datos de operaciones anteriores normales y de tráfico máximo hay disponibles?
  • ¿Los datos miden las métricas correctas de negocios y de sistema?
  • ¿Qué datos debes recopilar para comprender mejor cómo opera el sistema?

Tu objetivo es determinar qué datos están disponibles y qué valor proporcionaron en el pasado. Si identificas métricas o SLI que no se estén recopilando, prioriza esos datos para que, durante la etapa de preparación, puedas modificar el sistema de forma que los recopile.

Además de solo recopilar datos, es importante conocer qué información valiosa aportan las métricas. Mientras conoces cómo se relacionan las métricas con los indicadores de éxito comercial y satisfacción del usuario, aprendes a interpretar las métricas cuando la escala del sistema es notablemente mayor.

Revisa eventos de tráfico máximo anteriores

Sin importar el proceso, es importante aprender de eventos anteriores, especialmente si se destacan restricciones conocidas del sistema bajo estrés. En el mundo de la tecnología, el análisis post mortem es una técnica útil para capturar datos y comprender los incidentes que hayan ocurrido.

Prepara proyecciones de negocios

Si predices el impacto del Black Friday, tu negocio puede planificar cómo adquirir bienes y prepararse para la venta. Factores como la administración de inventario, la administración de la cadena de suministro y el empleo de personal dependen de proyecciones de negocio precisas. Preparar tu sistema para un pico de escala también depende de las predicciones. Cuanto más sepas sobre previsiones anteriores, más precisas serán las predicciones de ventas comerciales nuevas. Esas previsiones nuevas son entradas críticas para proyectar la demanda esperada en tu sistema.

Las siguientes métricas impulsoras de negocios principales son comunes en la mayoría de los sitios de comercio electrónico:

  • Cantidad de visitas
  • Cantidad de conversiones
  • Valor promedio del pedido

Si tomas estos impulsores de base, puedes convertir las métricas en un formato que el sistema pueda analizar. Se incluyen las siguientes métricas:

  • Consultas por segundo
  • Pedidos/minuto
  • Adiciones al carrito/segundo

Luego, puedes convertir estas métricas en SLI y SLO que midan el comportamiento del sistema y también indiquen su estado.

Establecimiento de la administración del programa

La coordinación es clave para el éxito del Black Friday. Los ingenieros, arquitectos, equipos operativos, líderes, otras partes interesadas internas y los proveedores externos deben alinear y aceptar las etapas de planificación, preparación y ejecución. Los objetivos compartidos requieren que las partes interesadas se comuniquen y colaboren con transparencia.

Una buena manera de comenzar es crear un equipo multifuncional y un comité de dirección cuyo trabajo sea agrupar a las partes interesadas. Se deben crear estos equipos pronto para que la administración del programa pueda definir el cronograma. La administración del programa también debe garantizar el presupuesto y los recursos para infraestructura adicional, asistencia de pruebas y entrenamiento.

Configura los canales de comunicación

La comunicación es fundamental para todas las etapas de la ejecución de un evento de tráfico máximo. Durante la planificación, crea lo siguiente:

  • Documento de planificación de eventos de tráfico máximo, que incluye lo siguiente:

    • Lista de suposiciones
    • Lista de incógnitas
    • Equipos, líderes de equipos, partes interesadas y partes responsables implicadas. Usa una matriz de asignación de responsabilidades (RACI) o algún formato similar para que se comunique la propiedad de forma clara
    • Un cronograma claro y sin ambigüedades que especifique de forma precisa las tareas críticas y los equipos responsables de ellas.
  • Reuniones claras y programadas regularmente, con notas para mantener a todos los equipos informados sobre el progreso. Especifica áreas de preocupación de forma anticipada y resuelve los problemas antes de que se conviertan en bloqueadores. Los eventos de tráfico máximo generalmente tienen horario fijo y son difíciles de ajustar si se atrasa el programa.

  • Documento de resumen ejecutivo. Resume la información más crítica para el evento de tráfico máximo en una sola página (o dos). Este documento es fácil de distribuir, ayuda a las personas a adquirir información sobre la planificación y resuelve preguntas simples. También promueve la participación de nuevas personas en la planificación de eventos de tráfico máximo.

  • Documentos de arquitectura básicos que permiten a los equipos operativos comprender rápidamente partes del sistema. Cuando hay tiempo para comprender todo el sistema, son útiles los documentos de arquitectura, con cientos de cajas de componentes y decenas de líneas de conexión. Durante los procesos operativos, sin embargo, un diagrama comprensible sobre cómo se conectan los componentes principales puede ayudar a identificar problemas de forma más rápida y a acelerar la resolución.

  • Documentos de asistencia de operaciones y procedimientos de escalamiento. Estos materiales indican claramente al equipo de operaciones cómo identificar, informar y abordar un problema, y evaluar la participación con otros equipos como los desarrolladores o la asistencia a proveedores. Asegúrate de tener procesos y plantillas comunes de administración de incidentes para acelerar las clases de incidentes.

Revisa el estado compartido

El estado compartido significa recopilar perspectivas diferentes para lograr el consenso entre los equipos. En vez de una perspectiva única, el acuerdo brinda una visión más amplia del sistema. El estado compartido muestra cómo las decisiones colectivas afectan el sistema más allá del alcance de la decisión de un individuo. Por ejemplo, un pequeño cambio a la configuración técnica puede tener un gran impacto en las métricas de negocios.

Cada revisión del estado compartido se realiza entre el equipo propietario y todos los equipos relacionados. La interacción con el equipo de Google Cloud en estas revisiones genera el contexto necesario para los equipos de Google involucrados en el Black Friday y permite que los equipos de Google proporcionen comentarios sobre las prácticas recomendadas dado que trabajan con muchos otros clientes.

Configura la supervisión y el sondeo

La supervisión te ayuda a tomar decisiones fundadas sobre cómo mantener la eficiencia operativa del sistema. La supervisión también ayuda a seguir el estado del sistema, alerta proactivamente sobre problemas futuros y proporciona información sobre las cuatro señales de oro para tus aplicaciones.

  • Latencia. Tiempo requerido para entregar una solicitud al sistema.
  • Tráfico. Demanda en el sistema, generalmente medida en solicitudes por segundo.
  • Errores. Tasa de solicitudes erróneas, como una tasa absoluta o como una proporción de todas las solicitudes.
  • Saturación. Métricas que indican el uso de recursos críticos del sistema. Estas métricas también pueden indicar de forma proactiva que los recursos, como el almacenamiento de la base de datos, se están agotando.

Comprender los valores críticos de estas cuatro señales es esencial para detectar problemas en eventos de tráfico máximo. En los pasos de supervisión específicos y accionables, se incluyen los siguientes:

  • Supervisa las métricas de negocios principales, como los ingresos o la cantidad de pedidos realizados. Estas métricas pueden indicar problemas en la coordinación general del sistema, incluso si todos los componentes individuales funcionan de forma correcta. Además, supervisa cualquier programa de campañas de marketing por correo electrónico y rastrea cuántos correos electrónicos se envían y cuándo, y en qué momento el tráfico llega al sitio. Un correo electrónico masivo de último momento puede sorprenderte y generar más tráfico del esperado, o dirigir el tráfico a una página que no esté bien almacenada en caché.

  • Supervisa las métricas que son sintomáticas de satisfacción del usuario. Selecciona una cantidad pequeña de paneles que den una descripción general de alto nivel sobre el estado del servicio, y luego analiza las ubicaciones o los subsistemas específicos.

  • Crea una defensa en profundidad, por ejemplo, combinando la supervisión de la caja negra (como los sondeos) y de la caja blanca (como las métricas de la aplicación exportadas); por ejemplo:

    • Configura sondeos para medir la latencia, la pérdida de paquetes y la capacidad de procesamiento en las conexiones de red que abarcan desde Google Cloud hasta redes locales; por ejemplo, VPN y conexiones directas.

    • Configura sondeos de la caja negra para medir la disponibilidad y la latencia de los servicios de terceros de los que dependes. Además, pide acceso a los paneles y alertas de terceros.

  • Con los aumentos repentinos de tráfico, los eventos de tráfico máximo de escalamiento pueden parecerse a un ataque de denegación de servicio distribuido (DSD) contra el sistema. Evalúa cómo ajustar las defensas contra un DSD para garantizar que el sistema de protección no esté bloqueando a clientes legítimos que intenten usar tu sistema comercial.

  • Los bots web extraen de los sitios contenido y precios, pero están más ocupados durante la temporada de eventos de tráfico máximo debido a la competencia agresiva. Determina el porcentaje (y el tipo) de tráfico de bots en comparación con el tráfico real, cómo cambia durante el evento de tráfico máximo y cómo proteger el sistema de tráfico no deseado.

Revisa la supervisión del sistema

Como se observa en la sección de terminología, los SLI se usan para medir los SLO. Puedes usar la supervisión para capturar SLI y otros valores críticos del sistema. Este enfoque te ayuda a determinar lo siguiente:

  • Qué métricas del sistema se capturan con la supervisión
  • La latencia en el informe de supervisión
  • Niveles de alerta de interés

Idealmente, quieres que la supervisión capture información sobre todas las métricas relevantes de aplicaciones y de infraestructura importantes para revisar el rendimiento y los SLO.

Puedes usar la supervisión en las siguientes áreas:

  • Métricas de infraestructura:

    • Estadísticas de la máquina virtual: instancias, CPU, memoria, utilización vs. recuentos.
    • Estadísticas basadas en el contenedor: utilización de clúster, capacidad de clúster, utilización del nivel de pods y recuentos.
    • Estadísticas de las Herramientas de redes: entrada/salida, ancho de banda entre los componentes, latencia vs. capacidad de procesamiento.
  • Métricas de la aplicación. Comportamiento específico de la aplicación como las QPS, las operaciones de escritura/segundo y los mensajes enviados/segundo.

  • Estadísticas de servicios administrados. Las QPS, la capacidad de procesamiento, la latencia, la utilización, entre otros, para los servicios administrados de Google como las API o los productos como BigQuery, App Engine y Cloud Bigtable.

  • Estadísticas de conectividad. Estadísticas relacionadas con la VPN o la interconexión sobre cómo conectarse a sistemas locales o externos a Google Cloud

  • SLI. Las métricas asociadas con el estado general del sistema. Estas métricas son generalmente más amplias que los componentes de infraestructura específicos y se pueden representar como tasas de QPS de la API, pedidos/minuto o adiciones al carrito/segundo.

  • Considera el tiempo de respuesta y el umbral de una alerta. Por ejemplo, las alertas de una caída del 10% en los pedidos puede ocurrir varios minutos después de que comenzara el problema, mientras que, si alertas sobre "1 segundo sin pedidos", puede indicar un problema de forma más rápida.

Después de seleccionar los SLO, obtén un amplio acuerdo de todas las partes interesadas para que haya un único conjunto de métricas principales que representen el estado general del sistema. Luego, reduce los datos necesarios para configurar las alertas y notificaciones del comportamiento anormal del sistema.

Crea planes de capacidad

La planificación de capacidad es una actividad fundamental para los sistemas comerciales minoristas. Los sistemas nativos de la nube, con su asignación de capacidad dinámica, brindan ventajas arquitectónicas y técnicas sobre los sistemas existentes. Los sistemas nativos de la nube generalmente se encuentran con carga promedio mediante el uso de miles de núcleos de computación con grandes picos de actividad de capacidad, posiblemente en decenas de miles de núcleos. En este caso, el proveedor de servicios en la nube y el equipo de infraestructura de nube comparten la responsabilidad de la planificación de capacidad, y el equipo de operaciones debe crear los planes de capacidad con intervalos de confianza. Estos intervalos ayudan a evitar incidentes inesperados, como la incapacidad de un escalamiento mayor con VM adicionales.

Estos sistemas de capacidad dinámica funcionan bien para picos de capacidad limitados y esporádicos. Sin embargo, te recomendamos que revises los planes de capacidad y evalúes la capacidad de aprovisionamiento previo en vez de confiar en el ajuste de escala automático y en el aprovisionamiento justo a tiempo. Piensa en cómo tu proveedor de servicios en la nube y tú pueden usar el escalamiento previo, las reservaciones y otras capacidades para permitir que crezca la disponibilidad del sistema. Puedes aprovisionar esta infraestructura poco antes del evento de tráfico máximo y desactivarla poco después para evitar costos innecesarios de la nube.

Para mejorar la experiencia de la planificación de capacidad, Google y sus clientes desarrollaron las siguientes recomendaciones:

  • Asigna las métricas a las estimaciones de uso máximo. Crea planes para evaluar si las estimaciones eran erróneas. Los planes reducen la incertidumbre y te ayudan a ajustar rápidamente cuando se superan las estimaciones.
  • Evalúa las necesidades de capacidad para el tráfico máximo + el intervalo de confianza.
  • Trabaja con el proveedor de servicios en la nube y el equipo de infraestructura para revisar y confirmar la capacidad.
  • Recuerda que la cuota y la capacidad son diferentes. La cuota es la opción para tener un recurso, mientras que la capacidad es cuánto se necesita de ese recurso.
  • Evalúa la cuota y la capacidad en cada recurso disponible: procesamiento, memoria, almacenamiento, red, consumo de API, entre otros. Durante la prueba de carga, esta evaluación te ayuda a descubrir problemas desconocidos de cuota y de capacidad.
  • Configura la cuota y la capacidad para controlar una falla completa de región.
  • Evalúa la cuota y la capacidad durante la etapa de planificación y ajústalas durante la etapa de preparación.

Crea listas de tareas

Los eventos como el Black Friday ocurren periódicamente: siempre están el Black Friday del año próximo, otra campaña promocional o el lanzamiento próximo de un producto a gran escala. Cada evento tiene información única, pero los elementos son reutilizables y expansibles. Con cada evento sucesivo, puedes mejorar el proceso mediante la creación, selección y mejora de las listas de tareas para reducir la carga administrativa. Las listas de tareas son como las verificaciones previas al vuelo de los pilotos de avión; ayudan a prevenir errores y generan una ejecución coherente.

Recomendamos lo siguiente para las listas de tareas:

Comparte el análisis de riesgos y clasifica las prioridades

Es importante compartir los análisis de riesgos con las partes interesadas y comunicar tus prioridades. En tu análisis, se deben identificar qué riesgos son propios del sistema, de tus equipos internos, del proveedor de servicios en la nube y de proveedores externos. También comparte los riesgos con tu proveedor de servicios en la nube y con tus proveedores. Algunos riesgos pueden ser conocidos y aceptables; otros pueden requerir que el proveedor de servicios en la nube o los proveedores contribuyan en la creación de un plan de mitigación.

Planificación de la arquitectura

Planificar tu arquitectura para Black Friday es un dominio de problema diferente con sus propias recomendaciones. Las restricciones del sistema máximo influyen tu análisis de riesgos y son críticas para probar la carga máxima de forma exitosa.

Revisa la arquitectura de diseño

Recomendamos que revises la arquitectura de diseño de alto nivel para que todas las partes entiendan la solución. Esta revisión informa a los equipos sobre las inquietudes de confiabilidad, como los puntos únicos de falla (SPOF) o el uso de componentes Alfa o Beta de Google. Aunque es posible que no puedas mitigar todos los problemas, ser consciente de que existen beneficia a todos los equipos.

El soporte de un sistema para la preparación de producción requiere dos niveles distintos de arquitectura, cada uno dirigido a un público específico:

  • La arquitectura del sistema ayuda al equipo de operaciones a aprender los componentes críticos del sistema. Un diagrama que muestre claramente cómo los componentes principales se interconectan puede ayudar a identificar y resolver los problemas de forma más rápida.

  • La arquitectura del componente explica puntos de E/S significativos, dependencias y flujos de trabajo principales del componente a arquitectos y desarrolladores. Estos componentes son importantes para los recorridos complejos de usuarios y ayudan a identificar dónde se origina un problema en los flujos de datos y componentes como el inventario, los precios, los datos principales de productos, los pedidos y las facturas. Los flujos de datos también ayudan a conducir los SLO y las decisiones relacionadas con el sondeo y la supervisión.

Revisa los diseños arquitectónicos de Black Friday

Los diseños arquitectónicos te ayudan a optimizar los sistemas nativos de la nube y a administrar algunos de los desafíos de los sistemas distribuidos en la nube. Las siguientes recomendaciones ayudan a mejorar la confiabilidad de estos sistemas durante los eventos de tráfico máximo:

  • Usa sistemas de caché, pero recuerda cómo se comportan durante las operaciones de escalamiento. Los sistemas de caché no reaccionan con las mismas tasas de aciertos de caché durante el escalamiento. Esta diferencia puede llevar a problemas en cascada en los que los errores de caché causan más carga durante el proceso de escalamiento y sobrecargan el sistema más rápido de lo esperado.

  • Usa una red de entrega de contenido (CDN) como Cloud CDN para aliviar los principales picos de tráfico y mejorar la confiabilidad y la disponibilidad. Los CDN pueden absorber grandes picos antes de que el tráfico alcance los servidores de origen.

  • Usa instancias de Cloud Interconnect junto con VPN basadas en Internet con configuración Activa-Activa. Activa-Activa hace referencia a las rutas de conectividad principal y secundaria que se utilizan para gestionar el tráfico en todo momento, en comparación con Activa-Pasiva, en la que la secundaria asume el control si falla la principal. Las interconexiones admiten un ancho de banda dedicado entre un proveedor de servicios en la nube y un centro de datos. Recomendamos el aprovisionamiento de varias interconexiones en diferentes áreas metropolitanas y con proveedores diferentes. Este enfoque aumenta el ANS y la confiabilidad, como se describe en Cómo establecer un 99.99% de disponibilidad para la interconexión dedicada. Se usan las VPN en casos de falla de interconexión o como aumento de capacidad a corto plazo.

Crea una estrategia de conmutación por error

Durante los eventos críticos como Black Friday, los equipos sin preparación se enfrentan a interrupciones y malas experiencias de clientes. Tener una estrategia de conmutación por error ayuda a mantener el tiempo de actividad del sistema mientras los equipos investigan la causa raíz de la falla. Todo puede fallar, y evaluar los riesgos asociados a las fallas y conocer los SLO para el sistema crea compensaciones entre la confiabilidad y el costo.

Los sistemas de la nube usan los siguientes diseños de conmutación por error:

  • Gestiona las fallas regionales. Desarrolla diseños para garantizar que los datos persistentes se sincronicen entre las regiones y resuelvan una falla regional. Gestionar los servidores de las aplicaciones sin estado es mucho más fácil que sincronizar los datos. Revisa y usa los servicios administrados para aumentar la confiabilidad y disminuir la cantidad de sobrecarga de administración. Los diseños de sincronización se vinculan a las capacidades de la plataforma de datos. A continuación, se incluyen algunos artículos para una investigación adicional:

  • Implementa el sistema en varias ubicaciones. Impleméntalo por lo menos en 2 regiones, y preferentemente en 3, para mitigar el riesgo de problemas específicos en una zona o en una región con el proveedor de servicios en la nube.

    • Usa varias zonas en cada región para una conmutación por error/resiliencia regional con el fin de continuar operando sin necesidad de una conmutación por error para toda la región. La implementación en varias regiones reduce la latencia para los clientes y permite resolver un problema de interrupción regional.

    • Usa el tipo de balanceador de cargas que sea más adecuado para tu situación. Google Cloud tiene diferentes tipos de balanceadores de cargas que proporcionan una variedad de capacidades. Para obtener más información, consulta la documentación de Cloud Load Balancing.

  • Garantiza que el sistema opere sin caché para satisfacer la demanda máxima. Prueba el sistema de forma anticipada por si falla el sistema de almacenamiento en caché o se producen tasas de aciertos de caché lentas. Una limpieza o falla del sistema de caché pueden desencadenar una situación de fallas en cascada que cause que otros componentes se sobrecarguen y comiencen a fallar.

  • Planifica para una falla de CDN. Estas fallas son similares a las fallas del sistema de caché. Trabaja con el proveedor de CDN para aprender a gestionar las fallas del sistema de CDN que pueden aumentar la carga de forma inesperada durante el Black Friday.

  • Automatiza todas las situaciones de conmutación por error para evitar pasos manuales, ya que consumen tiempo y son propensos a errores, principalmente durante el estrés de lidiar con una interrupción.

  • Crea resiliencia para cualquier dependencia de servicio externo. Crea diseños de resiliencia como un "disyuntor" para prevenir una falla en cascada si el servicio falla.

  • Limita la latencia para productos de terceros. En el código del cliente de tu sitio web, limita o elimina las llamadas a HTTP de bloqueo para servicios web de terceros. Los problemas de latencia o de disponibilidad con los terceros pueden provocar que tu sitio web no responda a los usuarios.

  • Protégete contra ataques de red. Ayuda a proteger a tu sitio contra ataques de DSD y bots web. Usa herramientas de seguridad web como Google Cloud Armor y la plataforma de seguridad de CDN.

Entregables de la etapa de planificación

Las siguientes entregas de la etapa de planificación se usan durante las etapas de preparación y de ejecución:

  • Análisis de riesgos. Identifica la probabilidad y el impacto de varios riesgos con respecto al proyecto, incluidos los factores operativos, técnicos, comerciales y temporales.
  • Plan de cambio arquitectónico. Incluye dónde se modificará el sistema para permitir una escala mayor que durante las operaciones normales.
  • Plan de pruebas. Evalúa el sistema en niveles de tráfico superiores a los esperados y situaciones de prueba de fallas comunes.
  • Plan de comunicaciones. Mantiene consistente el estado compartido con todas las partes interesadas. Este plan también incluye procedimientos de escalamiento para comunicaciones y casos en que el consenso o la respuesta sean importantes.
  • Acuerdo de SLO/SLI. Muestra consenso en la supervisión de las métricas y los SLI que se recopilarán. Además, incluye el acuerdo sobre los SLO que demuestran la disponibilidad del sistema desde la perspectiva del cliente. Este acuerdo incluye planes sobre cómo implementar las métricas no recopiladas actualmente y un panel de supervisión para una fácil revisión del cumplimiento del SLO. El acuerdo describe cómo los ANS de los proveedores externos afectan tus métricas del SLO.
  • Listado de listas de tareas. Asegura la revisión y la ejecución coherentes de los procedimientos comunes.
  • Lista de guías operativas. Enumera las guías que abordan situaciones de incidentes que pueden ocurrir durante el Black Friday. Las guías optimizan un retorno más rápido al estado operativo.

Etapa de preparación

El objetivo de la etapa de preparación es probar la capacidad de escalamiento del sistema para lidiar con el tráfico máximo de usuarios y documentar los resultados. La finalización de la etapa de preparación tiene como resultado el perfeccionamiento de la arquitectura para controlar el tráfico máximo de forma más eficiente y aumentar la confiabilidad del sistema. En esta etapa, también se generan procedimientos de operaciones y asistencia que ayudan a optimizar los procesos para gestionar el evento de tráfico máximo y cualquier problema que pueda surgir. Considera esta etapa como práctica para el evento de tráfico máximo desde una perspectiva de operaciones y sistema.

En la siguiente tabla, se resumen los pasos principales de la etapa de planificación.

Paso de preparación Tareas
Ayuda para garantizar la confiabilidad Configura las pruebas de rendimiento y de carga.
Evalúa y prueba las situaciones.
Modifica la arquitectura para obtener escalamiento y confiabilidad Ingresa una capa intermediaria de mensajes y cola.
Implementa el almacenamiento en caché para mejorar el rendimiento.
Implementa la reducción de carga.
Implementa el patrón del disyuntor.
Configura la supervisión y el registro Configura la supervisión.
Usa un panel para distribuir la supervisión.
Usa los comentarios para revisar las operaciones y la asistencia Crea listas de tareas y guías.
Realiza un entrenamiento sobre procedimientos de elevación y asistencia.
Constituye el equipo de operaciones para tener éxito.
Coordina solicitudes de capacidad Revisa y comparte con Google Cloud tus necesidades de capacidad de recursos esperadas.
Suspende cambios Asigna tiempo antes del evento para implementar infraestructura y software nuevos.
Durante las actividades promocionales que respaldan el evento, evita hacer cambios.
Coordina la corrección de errores y los plazos con el equipo de desarrollo.

Ayuda para garantizar la confiabilidad

Los ingenieros especializados en confiabilidad de sitios (SRE) de Google se enfocan en la confiabilidad y la velocidad de los servicios de Google. Los SRE son responsables del estado de la plataforma y ayudan a garantizar la mayor confiabilidad posible de los servicios de Google. Un equipo de SRE de Google publicó dos libros que capturan varias recomendaciones y consejos basados en la experiencia sobre cómo compilar, iniciar y operar sistemas a gran escala. Aunque parte de la información es aplicable, dos aspectos clave son particularmente relevantes para tener éxito en el evento Black Friday: pruebas de carga y de falla.

Configura las pruebas de rendimiento y de carga

La prueba de carga es el proceso de implementación de una versión de prueba del sistema y de creación de solicitudes para simular un gran uso del sistema. La prueba de carga normalmente se enfoca en la prueba de comportamiento sustentable percibido por el usuario en algún percentil por debajo del máximo absoluto. La prueba para el máximo requiere alcanzar ese percentil superior con un buen rendimiento consistente.

Cuando pruebes la carga y el rendimiento, considera las siguientes recomendaciones:

  • Prueba de la carga y del rendimiento con un 100% o más de tráfico máximo. Recalibra los percentiles y asegúrate de definir el máximo en más de 100%. La recalibración deja lugar para una pequeña cantidad de mal comportamiento del sistema, mientras que el tráfico máximo recibe un rendimiento adecuado.

    ¿Cuál es el nivel por encima del tráfico máximo que requiere pruebas? Esa determinación es producto de los intervalos de confianza en el evento de tráfico máximo. Una menor confianza requiere de una carga más alta para garantizar una mayor posibilidad de éxito en el evento de tráfico máximo. Los intervalos de confianza que son más reducidos y precisos después del hecho requieren de pruebas para un porcentaje menor por encima del máximo.

  • Prueba la velocidad del tráfico normal al tráfico máximo. Según el evento de tráfico máximo, los cambios en el tráfico pueden ocurrir repentinamente, posiblemente en segundos, así como sucede con la apertura de una tienda en Black Friday. Prueba la capacidad para escalar rápidamente del tráfico normal al máximo. Algunas partes del sistema pueden precisar tiempo para reaccionar a los indicadores de carga.

  • Prueba las situaciones de conmutación por error zonales/regionales, de reimplementación y de limpieza de caché con carga.

  • Prueba los recorridos del cliente con carga. Realiza una prueba completa con el sistema para garantizar que la experiencia del cliente sea válida durante períodos de tráfico máximo. La prueba de componentes individuales o rutas de ejecución técnica mejora la confiabilidad del sistema, pero no mide la experiencia del cliente.

  • Considera la reducción de carga para evitar fallas en cascada. Implementa la reducción de carga para sacrificar experiencias menos importantes a fin de evitar fallas en los recorridos del cliente más críticos. Un ejemplo puede ser inhabilitar la navegación de catálogos o buscar reseñas de los usuarios, con el fin de garantizar que la experiencia de confirmación de la compra conserve su SLO.

  • Evalúa y comparte los resultados de la prueba ampliamente. Usa un proceso post mortem libre de culpas para incentivar una evaluación abierta y honesta, además de comentarios constructivos, con el fin de abordar los desafíos. En equipo, identifica puntos de acceso de la base de datos, cuotas erróneas, dependencias inesperadas con carga y otras situaciones difíciles de depurar.

  • Prueba diferentes combinaciones de carga: Prueba dispositivos móviles en comparación con computadoras de escritorio, la distribución geográfica de orígenes, los tipos de transacciones, entre otros, ya que pueden provocar estrés en diferentes partes del sistema.

Evalúa y prueba las situaciones

Para aumentar la confianza en el éxito del evento de tráfico máximo, es fundamental evaluar y probar situaciones que puedan suceder durante el evento. DiRT de Google, Chaos Monkey de Netflix y muchos otros procesos y herramientas están diseñados para probar si un sistema se puede adaptar a situaciones de desastre.

Durante la etapa de preparación, probar las situaciones de falla de mayor impacto puede aumentar la posibilidad de éxito. Así que, incluso si la situación ocurre durante el período de tráfico máximo, hay un proceso o una solución técnica para abordar el problema. Sigue las recomendaciones a continuación:

  • Prueba las situaciones de falla más probables. Usa una ponderación del factor de probabilidad/riesgo para determinar los problemas de mayor impacto que pueden ocurrir durante un evento de tráfico máximo. Diseña y simula el modo de falla con carga para ver cómo reaccionará el sistema. Considera las situaciones de fallas intencionales antes de fallas caóticas.

  • Considera usar el patrón de disyuntor. Identifica lugares donde puedas implementar el patrón de disyuntor en la arquitectura para que esta siga operando incluso si algunas funcionalidades y componentes quedan fuera de servicio. Este enfoque es particularmente importante con dependencias de terceros fuera del control directo del sistema. Inhabilitar las dependencias de terceros puede ayudar a preservar la mayor parte de la experiencia del usuario con una pérdida pequeña de funcionalidad.

  • Prueba las respuestas operativas. Es más importante que respondan a las fallas los equipos operativos que los sistemas. Garantizar que sepan cómo lidiar con eventos inesperados se puede aplicar a mucho más que solo las pruebas de fallas intencionales que se ejecutaron.

  • Simula lo más parecido posible a la prueba real. No proporciones información interna a los equipos de operaciones y asistencia. Prueba la interacción con la asistencia interna y externa para validar los tiempos de respuesta, la colaboración y ver cómo el equipo de operaciones reacciona durante un problema.

  • Ejecuta un proceso post mortem libre de culpas para documentar la situación y su respuesta, además de áreas de mejora que garanticen una recuperación exitosa ante un problema futuro.

Modificaciones a la arquitectura para escala y confiabilidad

La prueba de carga y de falla, junto con las revisiones de arquitectura, incentivan los cambios arquitectónicos de alcance limitado que pueden mejorar la escala y la confiabilidad del sistema. No obstante, ingresar cambios genera riesgo, así que limita los cambios a un rango de tiempo conservador.

A continuación, se detallan algunos ejemplos de cambios que se deben considerar:

  • Ingresa una capa intermediaria de mensajes y cola para controlar el tráfico y los sistemas de carga sensible; por ejemplo, los sistemas de escala limitada como el inventario o el procesamiento de pedidos. Una cola puede ayudar a reducir picos en el sistema de backend y evitar algunos tipos de comportamiento de sobrecarga.
  • Implementa el almacenamiento en caché para mejorar el rendimiento. Hay tres categorías básicas de caché:

    • Frontend: Si ingresas a una red de entrega de contenido como Cloud CDN, quitas la carga de tu sistema mediante la distribución de recursos cercanos a los clientes.
    • Nivel de la aplicación: Haz que el consumidor de un servicio de backend almacene en caché los datos de modificación lenta en Memorystore, como información del producto en el nivel del consumidor.
    • Nivel de la API: Usa una API para aprovechar Memorystore a fin de almacenar datos en caché en la API.

    No crees involuntariamente un problema de falla en cascada por confiar demasiado en la caché. El almacenamiento en caché para alcanzar la escala puede ser desastroso si la caché no está disponible y el sistema subyacente no puede administrar el tráfico.

  • Implementa la reducción de carga para evitar fallas generales del sistema. En este enfoque, se limitan intencionalmente los recorridos de algunos usuarios a fin de preservar la disponibilidad de un sistema sometido a mucho estrés para los recorridos de usuarios más importantes.

  • Implementa el diseño del disyuntor. Este enfoque administra fácilmente las fallas de componentes y controla las fallas en cascada. La implementación de este diseño puede ayudar a evitar que los componentes del emisor fallen cuando ciertos componentes están sobrecargados.

Idealmente, muchos de estos cambios arquitectónicos se implementaron durante el desarrollo de las características. Aunque hay riesgo correspondiente y recursos suficientes, los cambios arquitectónicos pueden ayudar a mejorar la disponibilidad del sistema.

Configuración de la supervisión y del registro

Para ver cómo se comporta el sistema, usa la supervisión y el registro como tus herramientas principales de introspección. Si aplicas la profundidad y el nivel de detalle correctos de la información, garantizas la cantidad correcta de computación y almacenamiento para la supervisión y el registro del rendimiento.

Configura la supervisión

En la supervisión, debes identificar las métricas correctas de los eventos anteriores, revisar las métricas de buenos candidatos para eventos actuales y futuros, y también implementar sistemas que habiliten la recopilación, la agregación y el informe de métricas. Considera los elementos siguientes como parte de la configuración de la supervisión:

  • Brinda una cobertura adecuada del sistema mediante la captura de nuevas métricas o SLI identificados durante la etapa de planificación.
  • Audita la configuración de la supervisión para garantizar que los recursos estén supervisados adecuadamente. Un error común es tener un proceso de creación de recursos que no inscriba correctamente el recurso en la supervisión.

  • Usa las métricas del sistema de supervisión para informar a los sistemas de automatización como los escaladores automáticos o los sistemas autorreparables.

  • Usa la supervisión como un componente crítico de las guías operativas.

Usa un panel para distribuir la supervisión

Para preservar un estado compartido entre las partes interesadas, un panel de supervisión puede mantener a todas las partes enfocadas en los SLO en vez de en métricas más precisas. Un panel ofrece las siguientes ventajas:

  • Panel único. Un sistema único con paneles compartidos para las métricas mejora la capacidad de respuesta operativa y disminuye la posibilidad de errores de interpretación.
  • Nivel de detalle adecuado del informe. La agregación puede hacer que las tendencias sean más visibles, pero también puede ofuscar los problemas de recursos individuales.
  • Alertas adecuadas. Proporciona alertas para notificar a los equipos correctos de formas estándar. Por ejemplo, configura las alertas de supervisión como las notificaciones de correo electrónico, SMS o localizador basadas en las guías.

Uso de los comentarios para revisar las operaciones y la asistencia

Se presentaron los elementos documentales conocidos en la etapa de planificación. Para la etapa de preparación, debes actualizar los documentos con comentarios de los cambios arquitectónicos, la prueba de carga y la de falla.

Crea listas de tareas y guías

Sigue las siguientes recomendaciones para crear listas de tareas valiosas:

  • Permite que el propietario de la lista de tareas verifique que se ejecute adecuadamente. Impulsa al propietario a crear cambios que cumplan con los objetivos de la lista de tareas.
  • Planifica resolver o mitigar problemas basados en los riesgos aceptables. Obtén un acuerdo multifuncional sobre los planes de mitigación si no se puede lograr el elemento de la lista de tareas. Asegúrate de que todos los equipos comprendan el impacto de la mitigación.

Implementa guías para problemas conocidos y comunes descubiertos durante la prueba de fallas.

Realiza un entrenamiento sobre procedimientos de elevación y asistencia

Asegúrate de que todos los miembros del equipo de operaciones sepan cuáles son sus responsabilidades y las de otros equipos:

  • Asegúrate de que los miembros del equipo de guardia conozcan los requisitos del tiempo de respuesta y cómo pueden usar la documentación y las guías existentes para agilizar la resolución de problemas.
  • Implementa un ejercicio de simulación de administración de incidentes. Crea una sala que simule la sala virtual de operaciones del Black Friday, como se abordó antes en este documento. Prueba varios incidentes y cómo responderá el equipo. Para garantizar una coordinación adecuada durante los incidentes, incluye la elevación de eventos a Google como parte del proceso. Sin embargo, no crees un ticket P1 falso con Google sin antes aclararlo con CE o la asistencia. Se permiten los tickets P4 de prueba/falsos identificados claramente.

    • Lleva a cabo los ejercicios de la rueda de la desgracia. Estos ejercicios evalúan la preparación del equipo de operaciones, la solidez de los procedimientos y de las guías, y una coordinación adecuada con otros equipos.
    • Crea diferentes situaciones como la pérdida de caché de CDN, una ejecución en un SKU popular con un mal precio (bueno para tus clientes) o una falla de la región, y cómo el equipo de operaciones debe proceder ante estos eventos.

Ejecuta el ejercicio de simulación varias veces para disminuir los tiempos de respuesta y mejorar la coordinación de simulaciones sucesivas. Usa los post mortem para capturar los resultados de cada ejercicio y mejorar incrementalmente el ejercicio siguiente.

Coordina la asistencia a los proveedores

Confirma cómo contactar y proporcionar detalles a otros miembros del equipo o a la asistencia de los proveedores. Los proveedores implementan procedimientos de asistencia de maneras diferentes, por lo que es importante conocer la mejor forma de interactuar con las ofertas de su asistencia. Revisa los ANS de los proveedores respecto a la respuesta de asistencia y a las métricas de disponibilidad y latencia.

Participa con la asistencia de Google Cloud

Google Cloud proporciona información sobre cómo optimizar la participación con la asistencia de Google Cloud. La documentación pública está disponible para todos los clientes. Los clientes que participan directamente con el equipo de ingeniería de atención al cliente de Google Cloud o que están inscritos en la asistencia Platino pueden trabajar directamente con su representante de Google para revisar y comprender la cobertura de asistencia. Para obtener más información, consulta la Asistencia de Google Cloud en la sección respectiva a la etapa de ejecución de este documento.

Constituye el equipo de operaciones para que sea exitoso

Los eventos de tráfico máximo implican mucho estrés, intensidad y emociones. Para evitar desgastar al equipo de operaciones, establece un proceso de rotación. Mantener al equipo de operaciones bien descansado implica menos errores y brinda una asistencia de reserva adicional en caso de un incidente grave. Asegúrate de que se den las siguientes condiciones:

  • El equipo de operaciones asume cargas de trabajo adecuadas durante el evento de tráfico máximo.
  • El tiempo de inactividad está programado.
  • Todos están durmiendo bien por la noche.
  • El equipo de operaciones ha definido una copia de seguridad o una ruta de elevación y sabe a quién contactar si se necesita ayuda.

La mayoría de los equipos de operaciones tienen historias de pasar noches enteras para resolver un problema. Si bien celebramos su compromiso, es mejor rotar el personal que pretender esfuerzos sobrehumanos. Puedes reducir las tasas de errores y tensión mediante el entrenamiento de los miembros del equipo para tener varios especialistas disponibles.

Coordina solicitudes de capacidad

Durante la etapa de planificación, compartiste y coordinaste la planificación de capacidad con Google Cloud y otros proveedores. A continuación, verás algunas estrategias adicionales de planificación de capacidad que deben considerarse:

  • Revisa y comparte con Google Cloud las necesidades de capacidad esperadas de la manera más específica posible. Comparte las CPU, el núcleo, el disco, las QPS de la API, entre otros. Asegúrate de que las cuotas para la organización y los proyectos individuales estén adecuadamente asignadas. Realiza ajustes según sea necesario.
  • El nivel de la cuota debe ser considerablemente mayor que el uso esperado, en caso de que haya más tráfico del esperado.
  • La cuota no es igual a la capacidad y puede tener un impacto diferente en los sistemas. Las pruebas de carga a gran escala pueden ayudar a identificar cualquier cuota en Google Cloud, como límites de llamadas a la API o cuotas con otros sistemas de Google, como OAuth2.
  • Reúnete regularmente con el equipo de Google para revisar las solicitudes de capacidad actuales y garantizar que se cumplan esas solicitudes según sea necesario.

Suspensión de cambios

Es posible que Black Friday sea uno de los eventos más importantes del año para tu negocio. No solo presionará de forma significativa tu infraestructura web, sino que también podrá conllevar ingresos récord para tu negocio. La principal causa de fallas es el cambio (esperado o inesperado). Además, los cambios arquitectónicos pueden afectar la capacidad de escalamiento de tu infraestructura, por lo que recomendamos que suspendas los cambios antes y durante el evento de tráfico máximo.

Cuando suspendas los cambios, sigue estas recomendaciones:

  • Planifica con bastante anticipación previo al evento para implementar infraestructura y software nuevos. Los criterios de ingreso para la suspensión de cambios deben incluir pruebas exitosas de fallas y de carga máxima.
  • No interrumpas la actividad promocional comercial; por ejemplo, las campañas de marketing y las ventas previas a Black Friday. Evita hacer modificaciones durante estos momentos.
  • Alinéate con tu equipo de desarrollo para acordar cuándo se pueden implementar las últimas correcciones de errores menores. No es necesario bloquear las correcciones de errores a partir de las modificaciones de infraestructura o de arquitectura, pero no es aconsejable que hagas más cambios cerca del evento de tráfico máximo.
  • Asegúrate de que los servicios de terceros cumplan con la suspensión de cambios. Tienes que saber cuándo comienzan y finalizan la suspensión de cambios, y considera actualizar sus ANS contractuales para hacerlo vinculante.
  • Pregúntale a tu proveedor de servicios en la nube sobre su proceso de administración de cambios y, si hubiera, qué cambios ejecutarán en tus días de tráfico máximo.

Entregas de la etapa de preparación

La etapa de preparación incluye la revisión de los documentos de la etapa de planificación y nuevos elementos desarrollados durante esta etapa, por ejemplo:

  • Analiza, revisa y distribuye las entregas de la etapa de planificación que se modificaron en el proceso de la etapa de preparación. Las pruebas de carga y de fallas frecuentemente desafiarán algunas suposiciones y exigirán revisiones a los programas, riesgos, capacidad y planes operativos.
  • Distribuye los resultados de las pruebas de carga y de fallas al grupo de estado compartido de las partes interesadas. Asegúrate de que todos conozcan los éxitos y las áreas en las que se realizaron las mejoras o se identificaron nuevos riesgos.
  • Valida que la supervisión del panel único compartido sea operativa y esté accesible para todas las partes. El acceso transparente a la información posibilita una resolución de decisión más rápida.
  • Verifica que el equipo de operaciones esté plenamente participando y responsabilizándose de la etapa de ejecución.
  • Revisa que los planes de empleo de personal sean adecuados y razonables, que las personas descansadas estén tomando buenas decisiones y que haya procedimientos de transferencia para la rotación de personal.
  • Verifica que los planes de capacidad estén bien documentados y que las cuotas se validen por Google Cloud y se implementen en los sistemas de Google.
  • Completa una evaluación de preparación de la asistencia de proveedores para cada proveedor. Conoce cómo registrar casos de ayuda y cómo elevarlos.

Etapa de ejecución

Con las etapas de planificación y preparación concluidas, el proceso para tu Black Friday ya no depende de la suerte. Si todo marcha conforme al plan, el evento de tráfico máximo es un día como cualquier otro gracias a la asistencia extraordinaria de operaciones. El equipo de operaciones está bien informado y preparado, y no hay incidentes inesperados. Si ocurre algún incidente, puede identificarse y resolverse con rapidez.

En la siguiente tabla, se resumen los pasos principales de la etapa de ejecución.

Paso de ejecución Tareas
Realiza un escalamiento manual hasta la capacidad máxima Para aumentar la escala, primero debes tener un plan sobre cómo reducirla gradualmente después del Black Friday.
Realiza una ejecución para lograr una recuperación rápida Configura una sala virtual de operaciones.
Aprovecha la experiencia en la administración de incidentes.
Ejecuta guías.
Trabaja con la asistencia de Google Cloud.
Mejora el proceso de entrega de datos Realiza el análisis de la causa raíz.
Analiza las predicciones en comparación con los valores reales.
Agrega el análisis post mortem y retrospectivo.
Reconoce el éxito.

Realiza un escalamiento manual hasta la capacidad máxima

Los sistemas de ajuste de escala automático son excelentes para los picos inesperados, pero en la mayoría de los casos, no los recomendamos como el proceso de escalamiento principal para un aumento de 5 a 10 veces en el tráfico. En general, los sistemas de ajuste de escala automático solo se disparan ante incrementos pequeños, frecuentemente una VM de capacidad adicional por ciclo de evaluación. Si tu sistema debe escalar rápidamente decenas o cientos de VM de capacidad adicional, el escalamiento manual del sistema en el rango correcto genera una mejor experiencia del usuario.

Usa el escalamiento manual para aumentar lentamente la capacidad del sistema, de modo que se prepare el sistema, se calienten las cachés, y los eventos más lentos, como los inicios de máquinas virtuales, puedan ocurrir antes de que comience el evento de tráfico máximo. Este proceso también es una buena verificación de seguridad de que la capacidad está disponible para el sistema.

Si bien el escalamiento al tráfico máximo es el objetivo principal, también necesitas tener un plan para reducir gradualmente la escala después del Black Friday. Si las estrategias originales de escalamiento para el tráfico normal están presentes, pero el tráfico todavía no regresó a la normalidad, reducir la escala demasiado rápido puede causar una interrupción.

Ejecución para una recuperación rápida

El objetivo principal del equipo de operaciones es mantener el sistema confiable y operativo. Los ingenieros tienden a buscar la causa raíz de un problema mientras todavía está ocurriendo para poder recopilar datos sobre el problema. Si bien el análisis de la causa raíz es valioso, debes enfocarte en la recuperación. Encuentra oportunidades de recopilar datos y almacenarlos para su análisis mientras pones más energía en la recuperación del sistema, como la adición de capacidad, la eliminación de un componente con mal rendimiento o el reinicio de los sistemas. Siempre puedes analizar el porqué de un problema sin conexión después de que se haya mitigado el incidente.

Configura una sala virtual de operaciones

Los miembros del equipo de operaciones son los líderes durante la ejecución, pero no son los únicos participantes. Los mecanismos de colaboración entre equipos ayudan al equipo de operaciones a buscar asistencia dentro de la empresa y de parte de los proveedores.

Una sala virtual de operaciones infunde un espíritu de trabajo en equipo a todas las partes durante el evento de tráfico máximo. Las personas pueden compartir ideas rápidamente sin la demora de los sistemas de chat asíncronos o de las comunicaciones por correo electrónico. Las salas virtuales de guerra permiten a las personas informarse y participar fácilmente.

También recomendamos la creación de espacios de subequipos específicos para el evento de tráfico máximo. Estos subespacios permiten que, en la sala principal de guerra, se enfoquen en la rápida evaluación y delegación si ocurren varios incidentes.

Aprovecha la experiencia en la administración de incidentes

Para garantizar que las personas correctas estén participando de los incidentes, usa las pruebas de fallas, los experimentos de simulación y las ejecuciones de prueba en el proceso de administración de incidentes. Si el equipo de operaciones se familiariza con el proceso de administración de incidentes, su tasa de resolución y respuesta general mejorará.

Ejecuta guías

Los incidentes en curso, las alertas del sistema y los problemas informados requieren de guías que ayuden a los equipos a evaluar situaciones rápidamente y también a identificar si existen soluciones. Para los problemas imprevistos, las guías incluyen datos que ayudan a los equipos a identificar y resolver problemas rápidamente. No obstante, agregar notas a la guía y recopilar comentarios constructivos no es la prioridad máxima. En cambio, observa la información y programa un análisis post mortem para revisar la ejecución de la guía.

Trabaja con la asistencia de Google Cloud

Cuando contactes a la asistencia de Google Cloud, tienes que ser tan específico como sea posible y no supongas conocimientos que no se indiquen explícitamente. Este enfoque ayuda a garantizar que la asistencia vea el problema desde la perspectiva del cliente y pueda limitar mejor las investigaciones. Enfócate en los cuatro detalles críticos siguientes:

  • Horario. Indica el problema con términos claros y no relativos (nunca uses "hoy mismo" o "ayer") y sé específico con la zona horaria (haz referencia a UTC cuando sea posible). Con frecuencia, los ingenieros de Google analizan registros o datos diferentes que no están en la zona horaria local del cliente. También es posible que los ingenieros no estén en la zona horaria del cliente y no conozcan el horario en cuestión.

  • Producto. Identifica el producto y las acciones que estés realizando. Decir "no funciona" dificulta la determinación de lo que ve el cliente en comparación con lo que Google puede ver.

  • Ubicación. Identifica la región y la zona. Esta información puede ayudar cuando estén ocurriendo eventos específicos de la ubicación, como un lanzamiento de software o circunstancias que puedan indicar una correlación entre el problema del cliente y otro evento.

  • Identificadores específicos. Identifica el ID del proyecto, el ID de facturación, la VM específica y otros identificadores relevantes. Los clientes tienen muchos proyectos y recursos diferentes, generalmente con esquemas de nombres codificados según el cliente que son desconocidos para Google. Si Google analiza el proyecto, la cuenta de facturación o el recurso correctos, podrán agilizar la resolución.

Para iniciar un caso con la asistencia, proporciona todos los datos posibles y asegúrate de responder a las solicitudes de información de los ingenieros. Para acelerar la resolución, proporciona capturas de pantalla, resultados de tcpdump, fragmentos del archivo de registro y cualquier otra información solicitada.

Google aborda la solución de problemas de la siguiente forma:

  1. Recopila y comparte observaciones del sistema.
  2. Crea una hipótesis que explique las observaciones.
  3. Identifica las pruebas que puedan probar o refutar la hipótesis.
  4. Ejecuta las pruebas y acuerda en el significado del resultado.
  5. Continúa con la próxima hipótesis.
  6. Repite hasta que se solucione el problema.

Si sigues estos pasos y compartes información sobre el progreso, puedes agilizar notablemente la resolución del caso.

Mejora del proceso de entrega de datos

Dado que el primer paso de un ciclo nuevo es la recopilación de datos, el último paso durante la etapa de ejecución es la entrega de datos. Asegúrate de conservar las métricas y los registros, junto con otras entregas creadas durante el proceso. Al hacerlo, construyes una base sólida para iniciar el próximo ciclo y comenzar la etapa de planificación de nuevo.

Realiza el análisis de la causa raíz

El análisis de la causa raíz (RCA) se enfoca en la identificación de los errores de nivel inferior en un sistema, de modo que, si se quita un error, el sistema funciona normalmente. No recomendamos realizar el RCA de inmediato durante una interrupción, excepto para el componente de recopilación de datos. A medida que se recupere el sistema, intenta recopilar y conservar los datos generados durante el evento y los generados inmediatamente después. Cuando se complete la recuperación del sistema, realiza el RCA pronto para evitar la degradación de los datos o la reducción en esfuerzo/énfasis debido al tiempo.

El RCA implica hacer lo siguiente:

  • Describe el problema encontrado mediante el uso de la técnica de los cinco porqués.
  • Detalla un cronograma para la atribución de datos a momentos precisos durante la falla del sistema.
  • Distingue los factores secundarios de los principales para la falla del sistema. Intenta identificar los factores que son la raíz del problema. La iteración de los factores ayuda a identificar los componentes de nivel inferior implicados en la falla.
  • Observa las siguientes oportunidades de detección, alerta y mitigación automática:

    • ¿Cuánto demoró la detección y el diagnóstico del problema?
    • ¿Estaba disponible toda la telemetría?
    • ¿Hubo advertencias tempranas?
    • ¿Se activaron las alarmas? ¿En cuánto tiempo? ¿Contenían información suficiente para que el equipo de operaciones las comprenda y actúen de forma inmediata?
    • ¿Hubo demasiadas alarmas de dependencia? ¿La correlación y supresión son necesarias?
    • ¿Se podrían conectar estas alarmas a las acciones automáticas de mitigación?

Cada incidente debe tener su propia investigación. Cuando se superponen los incidentes, debes coordinar con la asistencia para determinar si hay una relación causal. Cuando se conozca la causa raíz, desarrolla una lista accionable de actividades para ayudar a prevenir incidentes futuros. Identifica los esfuerzos de recursos, tiempo y costo para mitigar y prevenir que vuelva a ocurrir el incidente. Si el incidente sacó un sistema del SLO, programa una prevención de recurrencia según corresponda.

Analiza las predicciones en comparación con los valores reales

Uno de los primeros pasos del ciclo es recopilar datos de eventos anteriores y comenzar a usarlos como base para proyectar la demanda futura. Mediante la identificación de diferencias, y sus causas, puedes ayudar a quienes planifiquen eventos próximos de tráfico máximo. Comprender cómo las métricas de negocio afectan los SLO ayudará a identificar la manera de aumentar la confiabilidad del sistema.

Revisa también los planes de capacidad. Las áreas en las que la capacidad estaba debajo de los valores esperados pueden haber provocado que un incidente gane capacidad adicional.

Agrega el análisis post mortem y retrospectivo

Te recomendamos realizar un proceso post mortem y retrospectivo. En este proceso, todos los equipos comparten detalles sobre los eventos que ocurrieron y sobre cómo se comportaron los sistemas de Google y del cliente durante el evento de tráfico máximo. Todos los equipos revisan esas experiencias y las incorporan a la planificación futura.

Durante el proceso post mortem y retrospectivo, recopila la información siguiente:

  • Análisis del proceso y qué pasos de la etapa de planificación fueron eficaces.
  • Información valiosa de diferentes perspectivas sobre qué funcionó bien durante las etapas de preparación y de ejecución, junto con comentarios sobre las mejoras a ambas etapas.
  • Oportunidades para publicar prácticas recomendadas y soluciones que pueden ayudar a otros clientes a tener éxito con Google Cloud
  • Perspectivas de ingeniería, operaciones, administración de proyectos, negocio y liderazgo. Cuando corresponda, contacta a los grupos de clientes para recopilar sus experiencias.
  • Información por escrito sobre lo discutido en las reuniones. La información valiosa que surge de las reuniones a veces no se incluye inicialmente en el relato escrito.

Reconoce el éxito

Reconoce a los miembros del equipo multifuncional que ayudaron a administrar un Black Friday exitoso. Celebra el éxito con reconocimiento individual y grupal, y recompensa a quienes trabajaron enérgicamente.

Cuando los equipos reflexionan y aprecian el éxito, comienzan a recuperarse de un proceso largo y estresante. La satisfacción laboral es un factor clave para el éxito grupal a largo plazo. Disfruta de un momento único para descansar, recuperarte y brindar por el éxito.

Entregas de la etapa de ejecución

Las entregas de la etapa de ejecución incluyen una conclusión exitosa del evento de Black Friday, en gran medida, y el fin de la planificación, de la preparación y de la ejecución. Las entregas principales de esta etapa son la recopilación y el análisis de datos, que incluyen las siguientes acciones:

  • Revisiones de proyecciones y datos reales sobre las métricas, los SLO y los planes de capacidad.
  • Análisis de la causa raíz de incidentes ocurridos durante la etapa de ejecución.
  • Análisis post mortem y retrospectivo, que identifica áreas que funcionaron bien y otras que deberían mejorarse (con elementos de acción específicos).

Pasos siguientes

Ningún artículo de esta magnitud está completo. Para reducir la ansiedad antes y durante el Black Friday, trabaja en tu empresa y con el equipo de Google Cloud para identificar preguntas y comentarios no abordados en este artículo. También te puede interesar explorar los temas siguientes:

  • Explora las Prácticas de SRE adicionales y crea una cultura de asistencia de producción escalable.
  • Revisa una presentación de YouTube Next 2018 sobre este contenido junto con la perspectiva de un cliente de Google.
  • Lee sobre la ingeniería de confiabilidad de clientes, el modelo de interacción de Google en asociación con clientes para admitir sistemas más confiables.
  • Obtén más información sobre Cloud Load Balancing, usado en varios diseños de arquitectura.
  • Comparte las historias con tus colegas y los nuevos miembros del equipo. Ayúdalos a aprender de tus éxitos (y fracasos) para que el equipo pueda hacer un buen trabajo la próxima vez. Aporta tu conocimiento a la comunidad de Google Cloud.
  • Prueba otras funciones de Google Cloud. Consulta nuestros instructivos.