偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

實(shí)時(shí)數(shù)倉(cāng)混沌演練實(shí)踐

大數(shù)據(jù) 數(shù)據(jù)倉(cāng)庫(kù)
基于中間件、數(shù)據(jù)庫(kù)、JVM、基礎(chǔ)資源、網(wǎng)絡(luò)、服務(wù)等注入常見的異常,根據(jù)實(shí)際業(yè)務(wù)中梳理的應(yīng)用核心場(chǎng)景進(jìn)行混沌演練,檢驗(yàn)系統(tǒng)的脆弱性和應(yīng)急響應(yīng)能力,從而提升團(tuán)隊(duì)的穩(wěn)定性保障處理能力。

一、背景介紹

目前實(shí)時(shí)數(shù)倉(cāng)提供的投放實(shí)時(shí)指標(biāo)優(yōu)先級(jí)別越來越重要,不再是單獨(dú)的報(bào)表展示等功能,特別是提供給下游規(guī)則引擎的相關(guān)數(shù)據(jù),直接對(duì)投放運(yùn)營(yíng)的廣告投放產(chǎn)生直接影響,數(shù)據(jù)延遲或者異常均可能產(chǎn)生直接或者間接的資產(chǎn)損失。

圖片圖片

從投放管理平臺(tái)的鏈路全景圖來看,實(shí)時(shí)數(shù)倉(cāng)是不可或缺的一環(huán),可以快速處理海量數(shù)據(jù),并迅速分析出有效信息,同時(shí)支持投放管理平臺(tái)的手動(dòng)控盤。實(shí)時(shí)節(jié)點(diǎn)事故,將可能導(dǎo)致整個(gè)投放鏈路無法正常運(yùn)行,另外,投放規(guī)則引擎是自動(dòng)化操作,服務(wù)需要24小時(shí)運(yùn)行,所以需要配置及時(shí)有效的數(shù)據(jù)質(zhì)量監(jiān)控預(yù)警,能快速識(shí)別到波動(dòng)異?;蛘卟环蠘I(yè)務(wù)的數(shù)據(jù),從而計(jì)劃引入混沌工程,希望可以通過主動(dòng)注入故障的方式、盡可能提前感知風(fēng)險(xiǎn)、發(fā)現(xiàn)潛在問題,并針對(duì)性地進(jìn)行防范、加固,避免故障發(fā)生時(shí)所帶來的嚴(yán)重后果,提高實(shí)時(shí)數(shù)倉(cāng)整體抗風(fēng)險(xiǎn)能力。

二、演練范圍

為了能更細(xì)致反應(yīng)出混沌演練情況,根據(jù)演練的內(nèi)容不同,將實(shí)時(shí)數(shù)倉(cāng)混沌分為兩部分:技術(shù)側(cè)和業(yè)務(wù)側(cè)。

技術(shù)側(cè)混沌:基于中間件、數(shù)據(jù)庫(kù)、JVM、基礎(chǔ)資源、網(wǎng)絡(luò)、服務(wù)等注入常見的異常,根據(jù)實(shí)際業(yè)務(wù)中梳理的應(yīng)用核心場(chǎng)景進(jìn)行混沌演練,檢驗(yàn)系統(tǒng)的脆弱性和應(yīng)急響應(yīng)能力,從而提升團(tuán)隊(duì)的穩(wěn)定性保障處理能力。

圖片圖片

業(yè)務(wù)側(cè)混沌:對(duì)于電商活動(dòng)密集型的公司來說,各種到達(dá)率、曝光率,以及更加宏觀的 GMV、用戶拉新數(shù)、用戶召喚數(shù)等,都能表現(xiàn)出業(yè)務(wù)的健康程度,在實(shí)際生活中,為了描述一種穩(wěn)定狀態(tài),我們需要一組指標(biāo)構(gòu)成一種模型,而不是單一指標(biāo)。無論是否采用混沌工程,識(shí)別出這類指標(biāo)的健康狀態(tài)都是至關(guān)重要的,所以要圍繞它們建立一整套完善的數(shù)據(jù)采集、監(jiān)控、預(yù)警機(jī)制,當(dāng)業(yè)務(wù)指標(biāo)發(fā)生波動(dòng)較大時(shí),我們能搞快速感知、定位、修復(fù)止血。

圖片圖片

過往數(shù)倉(cāng)混沌工程均是技術(shù)側(cè),此次在投放鏈路已搭建完成主備鏈路的前提下,期望通可以通過多輪業(yè)務(wù)側(cè)混沌,提高系統(tǒng)整體的數(shù)據(jù)異動(dòng)感知能力。

三、演練計(jì)劃

工欲善其事,必先利其器,在執(zhí)行混沌演練前,需要準(zhǔn)備好前置工作,制定合理的演練SOP、方案、計(jì)劃,對(duì)演練環(huán)境、腳本、數(shù)據(jù)、工具,場(chǎng)景及爆炸半徑等進(jìn)行可能性評(píng)估,在確認(rèn)可行性ok的情況下,約好關(guān)聯(lián)方時(shí)間,再進(jìn)行實(shí)踐操作。

圖片圖片

本篇主要和大家分享基于業(yè)務(wù)側(cè)的實(shí)時(shí)數(shù)倉(cāng)混沌演練過程:

1.編寫演練SOP

SOP是一種標(biāo)準(zhǔn)的作業(yè)程序,就是將某一事件的操作步驟和要求,進(jìn)行細(xì)化、量化及優(yōu)化,形成一種標(biāo)準(zhǔn)的操作過程,關(guān)于業(yè)務(wù)側(cè)混沌,尤其是實(shí)時(shí)數(shù)倉(cāng)數(shù)據(jù)相關(guān)的演練,我們也是第一次做,目前在業(yè)界也沒有找到相關(guān)的演練指導(dǎo)參考,處于探索階段,為了方便項(xiàng)目進(jìn)度的順利進(jìn)行及后續(xù)演練操作更加規(guī)范、高效,在演練前期大家經(jīng)過溝通、討論后,項(xiàng)目前期梳理的SOP演練模板,如下:

圖片圖片

2.演練方案調(diào)研

先收集實(shí)時(shí)數(shù)倉(cāng)投放鏈路核心指標(biāo)范圍,在此基礎(chǔ)上,拉取一段時(shí)間內(nèi)的歷史數(shù)據(jù)進(jìn)行分析,找到每個(gè)指標(biāo)對(duì)應(yīng)的健康波動(dòng)閥值,從而在配置相應(yīng)的DQC規(guī)則監(jiān)控,對(duì)于波動(dòng)不在健康閥值的異常指標(biāo),在分鐘級(jí)別(預(yù)期15min)內(nèi)及時(shí)告警,并快速排查響應(yīng)。為此,在演練前期,我們經(jīng)歷過一系列的方案調(diào)研、探索,如下:

「下文提供的方案,指標(biāo)數(shù)據(jù)都是以設(shè)備激活數(shù)為例進(jìn)行分析」

方案一: 按照天維度,收集最近一段時(shí)間,同一天每個(gè)整點(diǎn)設(shè)備激活數(shù),占當(dāng)天大盤占比,統(tǒng)計(jì)出最小值、最大值,作為該指標(biāo)的健康波動(dòng)閥值;

圖片圖片

  • 方案二: 按照天維度,收集一段時(shí)間內(nèi),同一天相鄰整點(diǎn)指標(biāo)波動(dòng)數(shù)據(jù)找規(guī)律,比如每天上午9點(diǎn)到10點(diǎn)的波動(dòng)數(shù)據(jù),然后分別通過一系列的數(shù)學(xué)分布方法進(jìn)行數(shù)據(jù)統(tǒng)計(jì),從而希望找一個(gè)相對(duì)穩(wěn)定的波動(dòng)區(qū)間;

圖片圖片

  • 方案三: 按照天維度,收集一段時(shí)間內(nèi),相鄰天整點(diǎn)指標(biāo)波動(dòng)數(shù)據(jù)找規(guī)律,比如昨天上午9點(diǎn)到前天上午9點(diǎn)的波動(dòng)數(shù)據(jù),然后分別通過一系列的數(shù)學(xué)分布方法進(jìn)行數(shù)據(jù)統(tǒng)計(jì),從而希望找一個(gè)相對(duì)穩(wěn)定的波動(dòng)區(qū)間;

圖片圖片

  • 方案四:在前面三種方案的基礎(chǔ)上,指標(biāo)在工作日和周末的波動(dòng)可能不一樣,所以我們?cè)谌站S度統(tǒng)計(jì)的基礎(chǔ)上,我們也調(diào)研了周維度同比波動(dòng)分布情況,比如每周一上午9點(diǎn)到上午10點(diǎn)的波動(dòng)數(shù)據(jù),然后分別通過一系列的數(shù)學(xué)分布方法進(jìn)行數(shù)據(jù)統(tǒng)計(jì),從而希望找一個(gè)相對(duì)穩(wěn)定的波動(dòng)區(qū)間;

圖片圖片

  • 方案五:同理,我們也調(diào)研了周維度環(huán)比波動(dòng)分布情況,比如本周一上午9點(diǎn)到上周一上午9點(diǎn)的波動(dòng)數(shù)據(jù),然后分別通過一系列的數(shù)學(xué)分布方法進(jìn)行數(shù)據(jù)統(tǒng)計(jì),從而希望找一個(gè)相對(duì)穩(wěn)定的波動(dòng)區(qū)間;

圖片圖片

  • 方案六:基于主備鏈路,在source源相同的情況下,經(jīng)過實(shí)時(shí)數(shù)倉(cāng)計(jì)算出的指標(biāo),在同一段時(shí)間兩條鏈路sink出來的結(jié)果數(shù)據(jù),正常應(yīng)該是保持一致,或者波動(dòng)較小,比如10分鐘延遲的主備鏈路,波動(dòng)不超過10%,平均差異做到一致性做到90%以上。

方案1到5,都嘗試過一遍,每個(gè)方案場(chǎng)景數(shù)據(jù)通過最大值、最小值、平均值、各百分位分布、方差、標(biāo)準(zhǔn)差等統(tǒng)計(jì)出來的數(shù)據(jù)分析,很難找到一個(gè)相當(dāng)穩(wěn)定的波動(dòng)規(guī)律,也無法框定指標(biāo)具體的閥值區(qū)間,實(shí)際演練過程,如果設(shè)置的波動(dòng)告警閥值過大,真實(shí)生產(chǎn)上業(yè)務(wù)數(shù)據(jù)波動(dòng)異常時(shí),無法及時(shí)告警發(fā)現(xiàn);設(shè)置過小,將導(dǎo)致告警頻繁,對(duì)其準(zhǔn)確性、有效性可能存在質(zhì)疑,而且,實(shí)時(shí)投放的核心指標(biāo)有幾十個(gè),每個(gè)指標(biāo)對(duì)應(yīng)的健康閥值都不一樣,要收集、分析成本非常高,從演練的效果上看,也不是很明顯。

整體評(píng)估下來,演練主要采用的是方案六:涉及到的實(shí)時(shí)投放核心指標(biāo)數(shù)共收集29個(gè),一段時(shí)間內(nèi)(15min),主備鏈路指標(biāo)波動(dòng)差異不超過10%。

3.演練方式

紅藍(lán)對(duì)抗演練,將團(tuán)隊(duì)分為紅(防)藍(lán)(攻)兩組。

測(cè)試人員組成藍(lán)軍:負(fù)責(zé)制定混沌演練方案,執(zhí)行目標(biāo)系統(tǒng)故障注入,詳細(xì)記錄演練過程;

實(shí)時(shí)數(shù)倉(cāng)開發(fā)為紅軍:負(fù)責(zé)發(fā)現(xiàn)故障、應(yīng)急響應(yīng)、排除故障,同時(shí)驗(yàn)證系統(tǒng)在不同故障場(chǎng)景下的容錯(cuò)能力、監(jiān)控能力、人員響應(yīng)能力、恢復(fù)能力等可靠性能力。

圖片圖片

四、演練流程

整體演練過程,大致分為三個(gè)階段:準(zhǔn)備階段、攻防階段及復(fù)盤階段。

圖片圖片

1.準(zhǔn)備階段

  • 方案準(zhǔn)備完評(píng)審?fù)ㄟ^后,確認(rèn)好鏈路計(jì)劃;
  • 藍(lán)軍按計(jì)劃根據(jù)事先制定的攻擊方案,提前準(zhǔn)備好相應(yīng)的測(cè)試數(shù)據(jù)、腳本;
  • 紅軍按計(jì)劃根據(jù)事先制定的攻擊方案,在演練前,提前確保環(huán)境可用,并進(jìn)行監(jiān)控防御、應(yīng)急響應(yīng)措施。

2.攻防階段

  • 藍(lán)隊(duì)根據(jù)事先制定的攻擊方案,模擬真實(shí)的攻擊行為,按照約定的時(shí)間在演練鏈路(備用鏈路)進(jìn)行攻擊,進(jìn)行故障注入,同時(shí)記錄好相應(yīng)的操作步驟,方便后續(xù)報(bào)告梳理;
  • 紅隊(duì)在藍(lán)軍攻擊后,通過飛書/郵件告警等通知方式實(shí)時(shí)關(guān)注監(jiān)控系統(tǒng)運(yùn)行情況,如有異常告警,需第一時(shí)間進(jìn)行問題排查定位,在評(píng)估修復(fù)方案;
  • 在攻防對(duì)抗的過程中,藍(lán)軍可根據(jù)紅軍的防御措施進(jìn)行調(diào)整和改進(jìn)攻擊策略,盡力突破系統(tǒng)的防御并達(dá)到既定目標(biāo),同時(shí)紅軍也可分析藍(lán)軍的攻擊手法和行為模型,不斷改進(jìn)防御措施來加強(qiáng)防御。

3.復(fù)盤和改進(jìn)階段

  • 在混沌演練結(jié)束后,進(jìn)行總結(jié)和評(píng)估,分析紅隊(duì)和藍(lán)隊(duì)的表現(xiàn),評(píng)估系統(tǒng)的安全性和抗攻擊能力;
  • 總結(jié)經(jīng)驗(yàn)教訓(xùn),總結(jié)成功的防御措施和失敗的攻擊手法,以便于改進(jìn)系統(tǒng)的安全策略;
  • 根據(jù)評(píng)估結(jié)果和總結(jié)經(jīng)驗(yàn),制定改進(jìn)計(jì)劃,修補(bǔ)系統(tǒng)中的漏洞和薄弱點(diǎn),提升系統(tǒng)的抗風(fēng)險(xiǎn)能力。

五、攻防實(shí)戰(zhàn)

本次演練共計(jì)有29個(gè)指標(biāo)波動(dòng)case,整體演練操作大同小異。

圖片圖片

以其中case17 “召回商品收藏uv在某個(gè)渠道下整點(diǎn)波動(dòng)異?!睘槔唧w的演練操作流程如下。

1.數(shù)據(jù)準(zhǔn)備

  • 通過后臺(tái)數(shù)據(jù)庫(kù),拉出生產(chǎn)主(備)鏈路,某個(gè)渠道(如`media_id` = '2')下某個(gè)整點(diǎn)(如`hour` = 10)下,召回商品收藏uv對(duì)應(yīng)的整體統(tǒng)計(jì)值N。
--渠道小時(shí)整點(diǎn)維度下,商品收藏uv匯總數(shù)據(jù)
select
  `指標(biāo)名稱`,
  `日期`,
  '2' as `指標(biāo)ID`,
  `小時(shí)段`,
  sum(`指標(biāo)值`)
from table_a
where
  date = date_format(now(), '%Y%m%d')
  and `指標(biāo)名稱` in ( '商品收藏uv' )
  and `小時(shí)段` = 10
  AND `指標(biāo)id` = '2'
GROUP BY
  `指標(biāo)名稱`,
  `日期`,
  `小時(shí)段`
order by
  指標(biāo)名稱;
  • 拉出備用鏈路,某個(gè)渠道(如`media_id` = '2')下某個(gè)整點(diǎn)(如`hour` = 10)下,具體的一條明細(xì)數(shù)據(jù),記錄商品收藏uv對(duì)應(yīng)的值為n,把n改為n+0.1N,后續(xù)注入進(jìn)備用鏈路,從而使得主備波動(dòng)差異在10%。
-- 明細(xì)數(shù)據(jù)
select
  t.指標(biāo)名稱,t.賬戶id,t.計(jì)劃ID,t.設(shè)備類型,t.指標(biāo)值
from
  (
    select
      `賬戶id`,
      `計(jì)劃id`,
      `指標(biāo)名稱`,
      `指標(biāo)值`,
      `設(shè)備類型` ,
      row_number() over (partition by 指標(biāo)名稱 order by 指標(biāo)值 desc ) as rn
    from  table_a
    where
      date = date_format(now(), '%Y%m%d')
      and `指標(biāo)名稱` in ('商品收藏uv')
      and `設(shè)備類型` = '召回'
      and `小時(shí)段` = 10
      AND `指標(biāo)id` = '2'
  ) t
where
  t.rn = 1
ORDER BY 指標(biāo)名稱;
整理后得到需要注入的數(shù)據(jù)數(shù)據(jù),見標(biāo)黃部分。

圖片圖片

2.故障注入odps

  • 將需要注入的數(shù)據(jù)導(dǎo)入odps。

導(dǎo)入前,需要在datawork空間中新建測(cè)試表du_qa_dw_dev.hundun_case,用于導(dǎo)入演練數(shù)據(jù)

-- drop table if  EXISTS du_qa_dw_dev.hundun_case;
CREATE TABLE IF NOT EXISTS hundun_case
(
    message  STRING COMMENT '消息內(nèi)容'
)
COMMENT '混沌演練'
;
  • 往du_qa_dw_dev.hundun_case表里灌數(shù)。

圖片圖片

圖片圖片

  • 驗(yàn)證數(shù)據(jù)導(dǎo)入是否成功。

圖片圖片

3.odps同步到kafka

執(zhí)行flink同步腳本,將odsp du_qa_dw_dev.hundun_case表表數(shù)據(jù)同步到對(duì)應(yīng)的kafka topic中。

flink任務(wù)腳本:

--SQL
--********************************************************************--
--odps同步到kakfa腳本,用于實(shí)時(shí)數(shù)倉(cāng)混沌演練異常注入使用
--********************************************************************--
-- 基本函數(shù)
CREATE FUNCTION JsonParseField AS 'com.alibaba.blink.udx.log.JsonParseField';
CREATE FUNCTION jsonStringUdf AS 'com.alibaba.blink.udx.udf.JsonStringUdfV2';
---同步賬號(hào)表
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.kafka平臺(tái)查詢數(shù)據(jù)

執(zhí)行完flink同步任務(wù)后,可通過后臺(tái)查詢,對(duì)應(yīng)的數(shù)據(jù)是否同步成功。

圖片圖片

5.異常注入通知

在異常注入完成后,可以通過飛書群通知,告知紅軍,如收到告警,需第一時(shí)間群告知。

藍(lán)軍:藍(lán)軍已完成數(shù)據(jù)準(zhǔn)備,請(qǐng)紅軍在演練前確保環(huán)境OK且已完成規(guī)則配置,另外務(wù)必將演練時(shí)間計(jì)劃及時(shí)同步通知到下游關(guān)聯(lián)方;

藍(lán)軍:已完成注入。

6.告警觸發(fā)通知

  • 紅軍在演練前,可通過監(jiān)控平臺(tái)提前配置好防御規(guī)則。

圖片圖片

  • 在異常注入后,如符合預(yù)期,在15min內(nèi)發(fā)現(xiàn)指標(biāo)波動(dòng)異常,紅軍需及時(shí)同步到演練群中。

中危**雙鏈路主備一致監(jiān)控

服務(wù)名:**** 環(huán)境:****** 告警時(shí)間:****** 觸發(fā)條件:**雙鏈路比對(duì)波動(dòng)異常,持續(xù)10分鐘 告警詳情:指標(biāo):prd_collect_uv主對(duì)比備下降:[-10%] 主:1066 備:956

業(yè)務(wù)域:實(shí)時(shí)數(shù)倉(cāng)

應(yīng)用負(fù)責(zé)人:***

  • 如不符合預(yù)期,未在15min內(nèi)發(fā)現(xiàn)指標(biāo)波動(dòng)異常,紅軍需及時(shí)定位、跟進(jìn)問題,并在修復(fù)后,溝通后續(xù)演練驗(yàn)證修復(fù)結(jié)果。

紅軍:15min內(nèi)未收到告警,定位中

紅軍:原因已找到,由于***造成,導(dǎo)致告警數(shù)據(jù)沒有及時(shí)發(fā)出,正在修復(fù)處理

紅軍:已修復(fù),請(qǐng)紅軍重新發(fā)起攻擊

7.演練過程記錄

收集、匯總記錄演練過程中的每個(gè)操作,含時(shí)間點(diǎn)、執(zhí)行人、操作等,如下:

圖片圖片

六、演練總結(jié)

圖片

七、未來展望

實(shí)時(shí)數(shù)倉(cāng)業(yè)務(wù)側(cè)的混沌演練,從0到1,在經(jīng)過一系列的探索實(shí)踐后,通過主備鏈路比對(duì)方式,演練期間對(duì)于異常波動(dòng)的指標(biāo),可以快速識(shí)別感知,從演練結(jié)果上,取得了不錯(cuò)的成效,但也存在一定的局限性,如:

  • 演練期間,通過人工注入的異常數(shù)據(jù),如無法快速清除,可能影響到備用鏈路使用。
  • 對(duì)于沒有備鏈路的實(shí)時(shí)指標(biāo)波動(dòng),需要制定更精細(xì)化的可行方案,找尋指標(biāo)健康波動(dòng)范圍。

這些都需要團(tuán)隊(duì)進(jìn)一步去探索、解決,同時(shí)在演練的過程中,我們將不斷積累、豐富演練case、完善演練庫(kù),后續(xù)計(jì)劃通過引入工具(平臺(tái))、建立演練協(xié)助機(jī)制、定期定時(shí)演練等手段,使混沌演練更加自動(dòng)化、規(guī)范化、常態(tài)化,提高實(shí)時(shí)數(shù)倉(cāng)整體數(shù)據(jù)穩(wěn)定。

圖片


責(zé)任編輯:武曉燕 來源: 得物技術(shù)
相關(guān)推薦

2023-10-13 07:25:50

2022-06-27 09:09:34

快手Flink數(shù)倉(cāng)建設(shè)

2023-07-27 07:44:07

云音樂數(shù)倉(cāng)平臺(tái)

2025-05-20 10:03:59

數(shù)據(jù)倉(cāng)庫(kù)Flink SQLPaimon

2022-09-28 07:08:25

技術(shù)實(shí)時(shí)數(shù)倉(cāng)

2021-07-22 18:29:58

AI

2021-08-31 10:18:34

Flink 數(shù)倉(cāng)一體快手

2022-08-01 15:58:48

數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)數(shù)據(jù)

2018-10-19 14:16:09

Flink數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)系統(tǒng)

2023-05-06 07:19:48

數(shù)倉(cāng)架構(gòu)技術(shù)架構(gòu)

2021-07-16 10:55:45

數(shù)倉(cāng)一體Flink SQL

2021-07-13 07:04:19

Flink數(shù)倉(cāng)數(shù)據(jù)

2022-12-15 17:50:14

2024-09-03 14:59:00

2021-01-18 05:20:52

數(shù)倉(cāng)hive架構(gòu)

2021-12-10 12:08:25

高可用數(shù)倉(cāng)Hologres

2022-07-07 10:19:05

數(shù)據(jù)畫像

2024-07-25 08:12:11

2023-05-25 08:24:46

Kafka大數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)