Práctica de simulacro de caos en el almacén de datos en tiempo real

1. Introducción a los antecedentes

En la actualidad, el nivel de prioridad de los indicadores de entrega en tiempo real proporcionados por el almacén de datos en tiempo real se está volviendo cada vez más importante: ya no es una visualización de informes separada y otras funciones, especialmente los datos relevantes proporcionados al motor de reglas descendente. lo que tiene un impacto directo en la entrega de publicidad de la operación de entrega, y los datos se retrasan, o la anormalidad puede causar pérdidas de activos directas o indirectas.

Desde la perspectiva del panorama de enlaces de la plataforma de gestión de entregas, el almacén de datos en tiempo real es una parte indispensable, que puede procesar rápidamente datos masivos y analizar rápidamente información efectiva, y también admite el control manual de la plataforma de gestión de entregas. Un accidente de nodo en tiempo real puede provocar que todo el enlace de entrega no funcione normalmente. Además, el motor de reglas de entrega es una operación automatizada y el servicio debe funcionar las 24 horas del día. Por lo tanto, se deben realizar advertencias y monitoreo de calidad de datos oportunos y efectivos. deben configurarse para identificar rápidamente fluctuaciones anormales o incumplimientos Los datos comerciales y, por lo tanto, los planes para introducir ingeniería del caos, con la esperanza de que al inyectar fallas activamente, los riesgos se puedan percibir con la mayor anticipación posible, se puedan descubrir problemas potenciales y Se pueden llevar a cabo prevención y refuerzo específicos para evitar consecuencias graves cuando ocurren fallas y mejorar la capacidad general anti-riesgo del almacén de datos en tiempo real.

2. Alcance del ejercicio

Para reflejar la situación del simulacro de caos con más detalle, el caos del almacén de datos en tiempo real se divide en dos partes de acuerdo con los diferentes contenidos del simulacro: el lado técnico y el lado comercial .

Caos en el aspecto técnico : inyecte excepciones comunes basadas en middleware, bases de datos, JVM, recursos básicos, redes, servicios, etc., y realice simulacros de caos basados ​​en escenarios de aplicaciones centrales resueltos en negocios reales para probar la vulnerabilidad y las capacidades de respuesta a emergencias de el sistema, mejorando así el equipo. La estabilidad garantiza la capacidad de procesamiento.

Caos en el lado comercial : para empresas con actividades intensivas de comercio electrónico, diversas tasas de llegada, tasas de exposición y un GMV más a nivel macro, la cantidad de nuevos usuarios, la cantidad de llamadas de usuarios, etc., pueden reflejar la salud del negocio. En la práctica, en la vida, para describir un estado estable, necesitamos un conjunto de indicadores para formar un modelo, en lugar de un solo indicador. Independientemente de si se utiliza ingeniería del caos, es crucial identificar el estado de salud de dichos indicadores, por lo que se debe establecer un conjunto completo de mecanismos de recopilación de datos, monitoreo y alerta temprana en torno a ellos. Cuando los indicadores comerciales fluctúan mucho, podemos sentir rápidamente , localizar, reparar y detener hemorragias.

En el pasado, los proyectos de caos del almacén de datos estaban todos en el lado técnico. Esta vez, bajo la premisa de que se ha construido el enlace de entrega y se han completado los enlaces primario y de respaldo, esperamos que a través de múltiples rondas de caos del lado comercial, podemos mejorar las capacidades de detección de cambios de datos del sistema general.

3. Plan de ejercicios

Si desea hacer bien su trabajo, primero debe afilar sus herramientas. Antes de ejecutar un simulacro de caos, debe preparar el trabajo preparatorio, formular SOP de simulacro razonables, planes, planes y analizar el entorno de simulacro, guiones, datos y herramientas. , escenarios, radio de explosión, etc. Realizar una evaluación de posibilidades, y cuando se confirme la viabilidad, concertar una cita con las partes relacionadas antes de realizar operaciones prácticas.

Este artículo comparte principalmente con usted el proceso de exploración del caos del almacén de datos en tiempo real desde el lado comercial:

1.Escribir PNT de simulacro

SOP es un procedimiento operativo estándar, que consiste en refinar, cuantificar y optimizar los pasos operativos y los requisitos de un determinado evento para formar un proceso operativo estándar. En cuanto al caos en el lado comercial, especialmente los simulacros relacionados con los datos del almacén en tiempo real, esto es Es la primera vez que lo hacemos y no hemos encontrado ninguna referencia de guía de perforación relevante en la industria. Estamos en la etapa exploratoria. Con el fin de facilitar el buen progreso del proyecto y hacer que las operaciones de perforación posteriores sean más estandarizadas y eficientes, después de que todos comunicado y discutido en la etapa inicial del simulacro. La plantilla de simulacro de SOP compilada en la etapa inicial del proyecto es la siguiente:

2. Investigación sobre planes de perforación.

Primero recopile el rango de indicadores centrales del enlace de entrega del almacén de datos en tiempo real, sobre esta base, extraiga los datos históricos durante un período de tiempo para su análisis, encuentre el umbral de fluctuación saludable correspondiente a cada indicador y luego configure el monitoreo de reglas DQC correspondiente. Para fluctuaciones Para indicadores anormales que no están dentro del umbral de salud, se emitirán alarmas oportunas en cuestión de minutos (se espera que sean 15 minutos) y se proporcionará una investigación y respuesta rápidas. Con este fin, en la etapa inicial del ejercicio, realizamos una serie de investigaciones y exploraciones del programa, de la siguiente manera:

"En las soluciones que se proporcionan a continuación, los datos del indicador se analizan basándose en el número de activaciones del dispositivo, a modo de ejemplo".

  • Opción 1: según la dimensión del día, recopile el número de activaciones de dispositivos en cada hora del mismo día en el período reciente, como proporción del mercado del día , y calcule los valores mínimo y máximo como el umbral de fluctuación saludable de este indicador;

  • Opción 2: De acuerdo con la dimensión del día, recopile los datos de fluctuación de puntos horarios adyacentes en el mismo día dentro de un período de tiempo para encontrar patrones, como los datos de fluctuación de 9 am a 10 am todos los días, y luego realice estadísticas de datos a través de una serie de métodos de distribución matemática, para esperar encontrar un rango de fluctuación relativamente estable;

  • Opción 3: Según la dimensión del día, recopile los datos de fluctuación del índice en días adyacentes durante un período de tiempo para encontrar patrones, como los datos de fluctuación desde las 9 a. m. de ayer hasta las 9 a. m. de anteayer, y luego realice estadísticas de datos a través de un serie de métodos de distribución matemática , por lo que esperamos encontrar un rango de fluctuación relativamente estable;

  • Opción 4: Según las tres opciones anteriores, las fluctuaciones de los indicadores entre semana y fines de semana pueden ser diferentes, por lo que, con base en las estadísticas de la dimensión diaria, también investigamos la distribución de fluctuaciones interanuales de la dimensión semanal, como todos los lunes. mañana a las 9 Haga clic en los datos de fluctuación hasta las 10 am y luego realice estadísticas de datos a través de una serie de métodos de distribución matemática, con la esperanza de encontrar un rango de fluctuación relativamente estable;

  • Opción 5: De la misma manera, también investigamos la distribución de fluctuaciones de semana a mes en la dimensión semanal, como los datos de fluctuación desde las 9 a. m. de este lunes hasta las 9 a. m. del lunes pasado, y luego realizamos estadísticas de datos a través de una serie de operaciones matemáticas. métodos de distribución, con la esperanza de

  • Opción 6: Según los enlaces principal y de respaldo, cuando la fuente es la misma, los indicadores calculados por el almacén de datos en tiempo real y los datos de resultados del sumidero de los dos enlaces en el mismo período de tiempo deben ser consistentes o tienen pequeñas fluctuaciones, por ejemplo, para un retraso de 10 minutos entre los enlaces principal y de respaldo, la fluctuación no excede el 10% y la diferencia promedio alcanza una consistencia de más del 90%.

Se han probado los planes del 1 al 5. Los datos del escenario de cada plan se analizan a través de los datos estadísticos de valor máximo, valor mínimo, valor promedio, distribución percentil, varianza, desviación estándar, etc. Es difícil encontrar una fluctuación bastante estable. También es imposible definir el rango de umbral específico del indicador. Durante el proceso de perforación real, si el umbral de alarma de fluctuación es demasiado grande, cuando los datos comerciales fluctúan anormalmente en la producción real, las alarmas no se pueden detectar a tiempo; si la configuración Si es demasiado pequeño, provocará alarmas frecuentes, lo que es perjudicial para la salud. Puede haber dudas sobre su precisión y eficacia. Además, existen docenas de indicadores básicos para la entrega en tiempo real. Cada indicador corresponde a un umbral de salud diferente. El costo de La recopilación y el análisis son muy altos y, desde la perspectiva del efecto del ejercicio, tampoco son tan obvios.

Con base en la evaluación general, el ejercicio adoptó principalmente el Plan 6: se recopilaron un total de 29 indicadores básicos de entrega en tiempo real. En un período de tiempo (15 minutos), la diferencia de fluctuación entre los indicadores del enlace principal y de respaldo no superó los 10 %.

3.Método de perforación

En el ejercicio de enfrentamiento rojo-azul, el equipo se divide en dos grupos: rojo (defensa) y azul (ofensiva).

Los probadores forman el Ejército Azul: responsables de formular el plan de simulacro del caos, realizar la inyección de fallas en el sistema objetivo y registrar el proceso de simulacro en detalle;

El almacén de datos en tiempo real se desarrolla como un ejército rojo: responsable de la detección de fallas, la respuesta de emergencia y la resolución de problemas, al mismo tiempo que verifica la tolerancia a fallas del sistema, las capacidades de monitoreo, las capacidades de respuesta del personal, las capacidades de recuperación y otras capacidades de confiabilidad en diferentes escenarios de fallas.

4. Proceso de ejercicio

El proceso general del ejercicio se divide aproximadamente en tres etapas: etapa de preparación, etapa ofensiva y defensiva y etapa de revisión.

1.Etapa de preparación

  • Una vez preparado y revisado el plan, confirme el plan de enlace;

  • El Ejército Azul preparó los datos de prueba y guiones correspondientes con anticipación de acuerdo con el plan de ataque formulado de antemano; ‍

  • El Ejército Rojo se asegura de que el entorno esté disponible con antelación y lleva a cabo medidas de vigilancia, defensa y respuesta de emergencia antes del simulacro basándose en el plan de ataque planificado previamente según lo previsto.

2. Etapa de ataque y defensa

  • El equipo azul simula el comportamiento de ataque real de acuerdo con el plan de ataque planificado previamente, ataca el enlace de perforación (enlace de espera) en el momento acordado, realiza inyección de fallas y registra los pasos de operación correspondientes para facilitar los informes posteriores;

  • Después del ataque del Ejército Azul, el equipo rojo prestó atención en tiempo real al funcionamiento del sistema de monitoreo a través de Feishu/alertas por correo electrónico y otros métodos de notificación. Si había alertas anormales, necesitaban solucionar y localizar el problema lo antes posible. y luego evaluar el plan de reparación;

  • Durante el enfrentamiento ofensivo y defensivo, el Ejército Azul puede ajustar y mejorar las estrategias de ataque basadas en las medidas defensivas del Ejército Rojo, haciendo todo lo posible para romper las defensas del sistema y lograr los objetivos establecidos, al mismo tiempo, el Ejército Rojo también puede analizar técnicas de ataque y modelos de comportamiento del Ejército Azul para mejorar continuamente las medidas defensivas para fortalecer la defensa.

3. Etapa de revisión y mejora

  • Después del simulacro de caos, resuma y evalúe, analice el desempeño del equipo rojo y del equipo azul, y evalúe la seguridad y las capacidades antiataques del sistema;

  • Resumir la experiencia y las lecciones, resumir las medidas de defensa exitosas y los métodos de ataque fallidos para mejorar la estrategia de seguridad del sistema; ‍

  • Con base en los resultados de la evaluación y la experiencia resumida, formulamos planes de mejora para reparar lagunas y debilidades en el sistema y mejorar la capacidad del sistema para resistir riesgos.

5. Combate ofensivo y defensivo real.

Hay un total de 29 casos de fluctuación del índice en este ejercicio y las operaciones generales del ejercicio son similares.

Tomemos como ejemplo el caso 17 "La luz ultravioleta de recolección de productos retirados del mercado fluctúa anormalmente cada hora en un determinado canal". El proceso de operación de perforación específico es el siguiente.

1. Preparación de datos

  • A través de la base de datos en segundo plano, extraiga el enlace principal (de respaldo) de producción y, en un canal determinado (por ejemplo media_id= '2') a una hora determinada (por ejemplo hour= 10), recupere el valor estadístico general N correspondiente a la colección de productos. ultravioleta.
--渠道小时整点维度下,商品收藏uv汇总数据
select
  `指标名称`,
  `日期`,
  '2' as `指标ID`,
  `小时段`,
  sum(`指标值`)
from table_a
where
  date = date_format(now(), '%Y%m%d')
  and `指标名称` in ( '商品收藏uv' )
  and `小时段` = 10
  AND `指标id` = '2'
GROUP BY
  `指标名称`,
  `日期`,
  `小时段`
order by
  指标名称;
  • Extraiga el enlace de respaldo y, en un canal determinado (como media_id= '2'), a una hora determinada (como hour= 10), un dato detallado específico, registre el valor correspondiente de la colección de productos uv como n, El cambio de n a n+ se inyecta posteriormente 0,1 N en el enlace de respaldo, lo que da como resultado una diferencia de fluctuación del 10 % entre los enlaces activo y de respaldo.
-- 明细数据
select
  t.指标名称,t.账户id,t.计划ID,t.设备类型,t.指标值
from
  (
    select
      `账户id`,
      `计划id`,
      `指标名称`,
      `指标值`,
      `设备类型` ,
      row_number() over (partition by 指标名称 order by 指标值 desc ) as rn
    from  table_a
    where
      date = date_format(now(), '%Y%m%d')
      and `指标名称` in ('商品收藏uv')
      and `设备类型` = '召回'
      and `小时段` = 10
      AND `指标id` = '2'
  ) t
where
  t.rn = 1
ORDER BY 指标名称;
  • Después de ordenar, se obtienen los datos que deben inyectarse, consulte la parte amarilla.

2. ODS de inyección de fallas

  • Importe los datos que deben inyectarse en odps.

Antes de importar, debe crear una nueva tabla de prueba du_qa_dw_dev.hundun_case en el espacio de trabajo de datos para importar datos de perforación.

-- drop table if  EXISTS du_qa_dw_dev.hundun_case;
CREATE TABLE IF NOT EXISTS hundun_case
(
    message  STRING COMMENT '消息内容'
)
COMMENT '混沌演练'
;
  • Llene la tabla du_qa_dw_dev.hundun_case con números.

  • Verifique que la importación de datos haya sido exitosa.

3.sincronización odps con kafka

Ejecute el script de sincronización de flink para sincronizar los datos de la tabla odsp du_qa_dw_dev.hundun_case con el tema de Kafka correspondiente.

secuencia de comandos de tarea flink:

--SQL
--********************************************************************--
--odps同步到kakfa脚本,用于实时数仓混沌演练异常注入使用
--********************************************************************--
-- 基本函数
CREATE FUNCTION JsonParseField AS 'com.alibaba.blink.udx.log.JsonParseField';
CREATE FUNCTION jsonStringUdf AS 'com.alibaba.blink.udx.udf.JsonStringUdfV2';
---同步账号表
CREATE TABLE `source` (
message                        VARCHAR  
) WITH (
   'connector' = 'du-odps',
  'endPoint' = '***',
  'project' = '***',
  'tableName' = 'hundun_case_01',
  'accessId' = '*******',
  'accessKey' = '*******'

);

CREATE TABLE `kafka_sink` (
  `messageKey`  VARBINARY,
  `message`  VARBINARY,
  PRIMARY KEY (`messageKey`) NOT ENFORCED
) WITH (
  'connector' = 'du-kafka',
  'topic' = '********',
   'properties.bootstrap.servers' = '*******',
  'properties.compression.type' = 'gzip',
  'properties.batch.size' = '40960',
  'properties.linger.ms' = '1000',
  'key.format' = 'raw',
  'value.format' = 'raw',
  'value.fields-include' = 'EXCEPT_KEY'
);

INSERT INTO kafka_sink
SELECT
cast(MD5(message) as VARBINARY),
cast(message as VARBINARY)
FROM source
;

4.datos de consulta de la plataforma kafka

Después de ejecutar la tarea de sincronización de flink, puede consultar en segundo plano si los datos correspondientes se han sincronizado correctamente.

5. Notificación de inyección de excepción

Una vez completada la inyección de excepción, se puede notificar al Ejército Rojo a través de la notificación del grupo Feishu. Si se recibe una alarma, se debe informar al grupo lo antes posible.

Ejército Azul: El Ejército Azul ha completado la preparación de datos. Asegúrese de que el entorno sea correcto y que la configuración de las reglas se haya completado antes del ejercicio. Además, el plan de tiempo del ejercicio debe notificarse a las partes relacionadas posteriores de manera oportuna;

Blues: Inyección completada.

6. Notificación de activación de alarma

  • Antes de los ejercicios del Ejército Rojo, pueden configurar las reglas de defensa por adelantado a través de la plataforma de monitoreo.
  • Después de la inyección anormal, si cumple con las expectativas y se encuentran fluctuaciones anormales en los indicadores dentro de los 15 minutos, el Ejército Rojo debe sincronizarse con el grupo de ejercicios a tiempo.

Monitoreo constante activo y en espera de doble enlace de riesgo medio**

Nombre del servicio: **** Entorno: ****** Hora de alarma: ****** Condición de activación: **La comparación de enlace dual fluctúa anormalmente y dura 10 minutos Detalles de la alarma: Indicador: prd_collect_uv la comparación maestra disminuye: [-10%] Principal: 1066 Copia de seguridad: 956

Dominio empresarial: almacén de datos en tiempo real

Responsable de la aplicación: ***

  • Si no cumple con las expectativas y no se encuentran fluctuaciones anormales en los indicadores dentro de 15 minutos, el Ejército Rojo debe localizar y dar seguimiento rápidamente al problema y, después de la reparación, comunicarse con simulacros posteriores para verificar los resultados de la reparación.

Ejército Rojo: no se recibió ninguna alarma en 15 minutos, posicionamiento en curso

Ejército Rojo: Se ha descubierto el motivo. Debido al ataque, los datos de alarma no se enviaron a tiempo. Se está reparando.

Ejército Rojo: Reparado, por favor, vuelva a atacar al Ejército Rojo.

7. Registro del proceso de perforación

Recopile, resuma y registre cada operación durante el ejercicio, incluidos los momentos, ejecutores, operaciones, etc., de la siguiente manera:

6. Resumen del ejercicio

7. Perspectivas futuras

Ejercicios de caos en el lado comercial del almacén de datos en tiempo real, de 0 a 1, después de una serie de exploración y práctica, a través del método de comparación del enlace principal y de respaldo, los indicadores de fluctuación anormal se pueden identificar y detectar rápidamente durante el ejercicio. resultados, Se han logrado buenos resultados, pero también existen ciertas limitaciones, como por ejemplo:

  • Durante el simulacro, los datos anormales inyectados manualmente pueden afectar el uso de los enlaces de respaldo si no se pueden borrar rápidamente.

  • Para las fluctuaciones de los indicadores en tiempo real sin enlaces de respaldo, es necesario formular un plan factible más refinado para encontrar un rango de fluctuación de indicadores saludable.

Estos requieren que el equipo explore y resuelva más a fondo. Al mismo tiempo, durante el proceso del ejercicio, continuaremos acumulando, enriqueciendo casos de ejercicios y mejorando la biblioteca de ejercicios. Los planes de seguimiento incluyen la introducción de herramientas (plataformas), el establecimiento de asistencia para el ejercicio. Mecanismos y ejercicios programados periódicamente.Haga que los simulacros de caos sean más automatizados, estandarizados y normalizados, y mejore la estabilidad general de los datos del almacén de datos en tiempo real. *Texto/Yuan Xiao

Este artículo es original de Dewu Technology. Para obtener más artículos interesantes, consulte: Sitio web oficial de Dewu Technology

La reimpresión sin el permiso de Dewu Technology está estrictamente prohibida; de lo contrario, se perseguirá la responsabilidad legal de acuerdo con la ley.

Multado con 200 yuanes y más de 1 millón de yuanes confiscados You Yuxi: La importancia de los documentos chinos de alta calidad El servidor de migración de núcleo duro de Musk Solon para JDK 21, ¡los hilos virtuales son increíbles! ! ! El control de congestión de TCP salva Internet Flutter para OpenHarmony está aquí El período LTS del kernel de Linux se restaurará de 6 años a 2 años Go 1.22 solucionará el error de la variable del bucle for Svelte construyó una "nueva rueda" - runas Google celebra su 25 aniversario
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/5783135/blog/10112796
Recomendado
Clasificación