超碰人人人人人,亚洲AV午夜福利精品一区二区,亚洲欧美综合区丁香五月1区,日韩欧美亚洲系列

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

[點晴永久免費OA][轉(zhuǎn)帖]微信月活破10億,安全性靠誰來支撐?

freeflydom
2023年7月29日 9:38 本文熱度 1380
微信作為月活過10億的國民級應(yīng)用,其安全能力備受關(guān)注。值得注意的是,沒有足夠的特征數(shù)據(jù),安全策略將是"無根之木,無源之水"。微信安全數(shù)據(jù)倉庫作為安全業(yè)務(wù)的特征數(shù)據(jù)存儲中心,每天服務(wù)了萬億級的特征數(shù)據(jù)讀寫請求,為整個微信安全策略提供了可靠的數(shù)據(jù)支撐,是微信安全的一塊基石。事實上,微信安全數(shù)據(jù)倉庫不僅僅是一個存儲中心,更是一個特征管理和數(shù)據(jù)質(zhì)量管理的中心。

01、業(yè)務(wù)背景

1.1 安全策略開發(fā)流程

安全業(yè)務(wù)的核心邏輯在安全策略中實現(xiàn)。整個的策略開發(fā)流程包括特征數(shù)據(jù)的收集、安全策略的編寫實現(xiàn)和策略的反饋評估。其中特征數(shù)據(jù)的收集是必不可少的環(huán)節(jié),數(shù)據(jù)的質(zhì)量將直接影響安全策略的效果。

特征數(shù)據(jù)收集主要包括:數(shù)據(jù)接入、特征的計算、特征的存儲。

在數(shù)據(jù)倉庫還未建立時,業(yè)務(wù)同事通過消費離線存儲 mmdata 和 tdw 接入數(shù)據(jù),通過 Flink 流式計算或者自定義模塊對數(shù)據(jù)進行加工,計算出需要的特征,最終存儲到自行維護的 KV。然后在安全策略平臺上編寫安全策略,讀取 KV 中的數(shù)據(jù),,實現(xiàn)需要的安全邏輯。

傳統(tǒng)特征數(shù)據(jù)收集流程

1.2 為什么需要數(shù)據(jù)倉庫

前面提到在還未建立數(shù)據(jù)倉庫時,業(yè)務(wù)同事都按照自己的方式去存儲計算出的特征,大多通過自行申請部署 KV 來存儲,如 A 同事把部署一套 KV 集群,存儲特征到 KV 表中,B 同事把特征存儲到同 KV 集群的不同表中,C 同事又額外申請了另外一套 KV 集群存儲。如下圖中的架構(gòu):

傳統(tǒng)安全后臺: 各業(yè)務(wù)特征分散存儲

這種特征的分散存儲,導(dǎo)致業(yè)務(wù)同事只了解自己熟悉的特征,難以交流和共享,特征缺乏統(tǒng)一的管理,數(shù)據(jù)質(zhì)量難以保證。不同的存儲方式,也導(dǎo)致特征訪問接口的混亂,業(yè)務(wù)系統(tǒng)的可靠性也難以保證。

針對上述的問題,我們希望把所有業(yè)務(wù)的特征,按統(tǒng)一的規(guī)范,建立統(tǒng)一的存儲,方便特征的共享、管理和維護、并建立數(shù)據(jù)質(zhì)量保障體系, 為策略提供可靠的數(shù)據(jù)。所以我們需要開發(fā)數(shù)據(jù)倉庫。

問題和目標(biāo)

1.3 安全業(yè)務(wù)后臺架構(gòu)

當(dāng)前我們已經(jīng)把所有的安全策略統(tǒng)一到安全策略平臺進行開發(fā)和管理,特征數(shù)據(jù)的接入和計算統(tǒng)一到了 Flink 實時計算平臺和特征平臺。

數(shù)據(jù)倉庫作為承上啟下的部分,對上為在安全策略平臺上的安全策略提供了數(shù)據(jù)讀寫,對下為實時計算平臺和特征平臺計算輸出的特征提供了存儲,是整個業(yè)務(wù)體系中不可或缺的部分。

安全業(yè)務(wù)后臺架構(gòu)

02、數(shù)據(jù)倉庫架構(gòu)演進

2.1 存儲選型

安全業(yè)務(wù)特征數(shù)據(jù)主要有2種類型:

離線特征:用來滿足離線計算數(shù)據(jù)導(dǎo)入線上實時使用的需求,通常特征離線計算,定期的批量后臺上線,提供在線讀,但不支持實時寫入。 實時特征:用來滿足實時的在線讀寫需求。

騰訊有多種非常成熟穩(wěn)定的自研 KV:實時讀寫 KV(簡稱實時 KV)、離線寫實時讀 KV(簡稱離線 KV)、其他 KV 等等。這些 KV 已經(jīng)在多個業(yè)務(wù)被驗證,有非常好的性能和可靠性、有團隊做長期的維護。其中,部分 KV 比較適配數(shù)據(jù)倉庫的底層存儲的需求。其主要特點如下:

存儲KV特點是否選用
離線寫實時讀 KV非常適用大量 key 的定時批量更新,在線只讀,具有版本管理功能,支持版本歷史版本回退,具有非常優(yōu)秀的讀性能。
實時讀寫 KV強一致性的 key-value 服務(wù),存在類 MySQL 的表概念,提供了 select insert update delete 接口,在單表操作保證 ACID,支持過期淘汰 TTL。
其他 KV提供強一致性的 key-value 讀寫服務(wù),類似 STL 中的容器,不支持 TTL, 不提供新集群,不建議使用。
離線 KV :適合離線特征要求的場景。擁有非常好的讀性能,并且提供了版本管理功能,在處理有問題數(shù)據(jù)時可以非常方便地回退版本,采用這種 KV 存儲時,value 一般是 protobuf 對象,新增特征時可以在 pb 中增加字段。 實時 KV :適合實時特征的場景。在線實時讀寫性能優(yōu)秀,而且支持?jǐn)?shù)據(jù)過期淘汰,該 KV 提供了類 MySQL 表的概念,KV 表定義類似于一個 MySQL 表,而每一個安全業(yè)務(wù)特征剛好可以用表的一個字段表示。

2.2 架構(gòu)設(shè)計和演進

2.2.1 統(tǒng)一存儲統(tǒng)一接口

數(shù)據(jù)倉庫第一個版本,針對特征存儲分散訪問接口混亂問題,首先部署了公共的實時 KV/離線 KV 集群,并實現(xiàn)了一個接入層。新增特征和歷史特征放到公共的 KV 存儲集群,并且在接入層屏蔽了底層 KV 的細(xì)節(jié),提供了統(tǒng)一的讀寫特征的接口。

數(shù)據(jù)倉庫架構(gòu)1.0

接入層支持任意多個 KV 集群,支持多個表,為屏蔽 KV 的細(xì)節(jié),接入層為每個特征分配唯一的標(biāo)識<sceneid, columnid>,讀寫特征數(shù)據(jù)使用唯一標(biāo)識進行,不需要關(guān)注 KV 類型和 KV 表 ID,方便業(yè)務(wù)的接入使用。

統(tǒng)一接口

接入層還實現(xiàn)配置管理、參數(shù)校驗、模塊校驗、權(quán)限校驗、流水上報、PV 統(tǒng)計等功能:

功能說明
配置管理數(shù)據(jù)倉庫未開發(fā)時,業(yè)務(wù)上線特征需要在 KV 中新增字段,需要重新發(fā)布 KV 配置,整個流程非常的低效,為此數(shù)據(jù)倉庫為接入的 KV 預(yù)先申請一定數(shù)量的字段,在配置文件中為特征分配<scenid, columnid>,并映射到具體的 KV 集群和表字段,每次特征上線只需要發(fā)布配置即可,配置管理提供了配置的解析,加載,熱更新等功能。
參數(shù)校驗檢查輸入的讀寫參數(shù)是否正確,如訪問不存的集群,不存在表,參數(shù)提供的類型和特征實際類型不匹配:如參數(shù)是 int,實際特征是 string 類型。
模塊校驗檢查請求來源模塊是否有讀寫具體某個特征的權(quán)限。
權(quán)限校驗檢查請求來源人是否有讀寫某個特征的權(quán)限。
流水上報上報數(shù)據(jù)倉庫讀和寫的流水,方便問題排查和運營。
PV 統(tǒng)計統(tǒng)計特征讀 PV,包括接口維度、模塊維度等等,用于后續(xù)運營。

2.2.2 讀寫分離和多 IDC 同步

  • 讀寫分離

數(shù)據(jù)倉庫的讀請求量遠遠多于實時寫入量,為了提高性能,減少讀寫之間的相互影響,接入層做了讀寫分離,將讀和寫接口拆分到兩個模塊。

  • 數(shù)據(jù)多 IDC 同步

數(shù)據(jù)倉庫和業(yè)務(wù)都采用的是多 IDC 部署。為了不降低查詢性能,不希望業(yè)務(wù)跨 IDC 訪問存儲,所以底層的 KV 也是多 IDC 部署。

這里就帶來一個問題,特征數(shù)據(jù)如何在多 IDC 的 KV 之間進行同步?例如業(yè)務(wù)在上海寫入一個特征,希望在深圳也能讀到這個特征。這里按特征類型進行分類處理:

離線特征數(shù)據(jù)同步:離線特征數(shù)據(jù)上線流程是通過離線計算在文件系統(tǒng)中生成一個文件,然后將文件導(dǎo)入到離線 KV, 而離線 KV 支持多個 IDC 共享同一份數(shù)據(jù),數(shù)據(jù)文件只需要生成一份,所有 IDC 的離線 KV 拉取同一個文件,新數(shù)據(jù)最終能同步到所有 IDC 上。 實時特征數(shù)據(jù)同步:實時特征的同步采用微信自研的分布式隊列組件,該組件提供了高可靠、高可用、高吞吐、低延時的數(shù)據(jù)消息隊列服務(wù)。數(shù)據(jù)倉庫寫接入模塊在寫入數(shù)據(jù)時,同時將數(shù)據(jù)寫一份到分布式隊列,使用隊列做跨 IDC 的數(shù)據(jù)同步,在其他 IDC 啟動進程消費隊列中的數(shù)據(jù),寫入到本 IDC 的實時 KV,實現(xiàn)實時特征數(shù)據(jù)的同步。

數(shù)據(jù)倉庫架構(gòu)2.0

2.2.3 異步寫和替代分布式隊列

  • 異步寫入

前一個版本中實時特征是同步寫入,影響業(yè)務(wù)的性能,業(yè)務(wù)希望是異步寫入。

  • 替代分布式隊列

前一個版本中分布式隊列采用的是公共的集群,眾多業(yè)務(wù)使用,出現(xiàn)過數(shù)據(jù)倉庫受干擾影響特征數(shù)據(jù)同步。

為此在數(shù)據(jù)倉庫中新增一個異步消息隊列模塊寫 MQ,用于異步寫入。和分布式隊列相比 MQ 更輕量,而且 MQ 我們可以自行維護, 更可控。所以新架構(gòu)中通過 MQ 實現(xiàn)實時特征的多 IDC 數(shù)據(jù)的同步,替代了分布式隊列,保證數(shù)據(jù)同步不受其他業(yè)務(wù)影響。

數(shù)據(jù)倉庫架構(gòu)3.0

2.2.4 運營系統(tǒng)

前面3個版本解決了特征存儲分散、讀寫接口不統(tǒng)一、數(shù)據(jù)同步、讀寫性能問題,但是特征的上線依然采用的是配置發(fā)布上線的方式,效率依然低效。

更重要的是特征缺乏統(tǒng)一的管理,共享困難,難以滿足業(yè)務(wù)的需求,業(yè)務(wù)常常也有各種疑問:

為此數(shù)據(jù)倉庫新增運營系統(tǒng)模塊,實現(xiàn)了特征申請、特征上線、特征管理&分析、特征值查詢/修改、特征數(shù)據(jù)質(zhì)量管理等功能。

數(shù)據(jù)倉庫架構(gòu)4.0

  • 特征申請

用戶不再需要手動的修改配置文件來新增特征,可直接通過 WEB 頁面申請,填寫必要的特征信息,通過通用審批系統(tǒng)進行審批。

  • 特征上線

用戶不再需要手動的發(fā)布配置上線特征,無論是新增的實時特征還是離線特征,審批通過后將自動化的上線,提升體驗和效率。

  • 特征管理

特征管理支持對特征 meta 信息進行查詢和修改,包括特征所屬的業(yè)務(wù)分類(索引)、特征類型、特征負(fù)責(zé)人、給特征打 tag 等等,業(yè)務(wù)可以方便的查詢需要特征信息,避免重復(fù)的計算,方便各業(yè)務(wù)共享特征。

  • 特征分析

追蹤特征的原始數(shù)據(jù)來源、計算過程、數(shù)據(jù)流路徑、最終的存儲信息等等, 可以追蹤特征完整生產(chǎn)流程。

  • 特征值查詢&修改

運營系統(tǒng)支持在 WEB 頁面查詢特征值和修改特征值。

  • 特征數(shù)據(jù)質(zhì)量管理

保障數(shù)據(jù)質(zhì)量,下一章節(jié)詳細(xì)講述。

03、數(shù)據(jù)質(zhì)量保障

數(shù)據(jù)倉庫主要通過兩個方面來保障數(shù)據(jù)質(zhì)量:特征的標(biāo)準(zhǔn)化和數(shù)據(jù)空跑系統(tǒng)。 接下來我們進行詳細(xì)介紹分析。

3.1 特征標(biāo)準(zhǔn)化

特征的標(biāo)準(zhǔn)化是保證數(shù)據(jù)倉庫數(shù)據(jù)質(zhì)量的手段之一,標(biāo)準(zhǔn)化是指對數(shù)據(jù)倉庫中的特征進行規(guī)范化處理,使得特征能夠達到一致性、可重復(fù)性等標(biāo)準(zhǔn),從而提高數(shù)據(jù)的可靠性和準(zhǔn)確性。

對于新增實時/離線特征,數(shù)據(jù)倉庫制定了的特征規(guī)范文檔,并按規(guī)范文檔的要求,特征申請/管理頁面必須正確的補充完整特征信息,如特征類型、業(yè)務(wù)分類等等,后臺對每個特征都會進行校驗,不符合規(guī)范的特征無法錄入。

另外數(shù)據(jù)倉庫還提供了接入編程指導(dǎo)文檔,并給出完整的 C++編程實例,致力于提供標(biāo)準(zhǔn)化的編程最佳實踐。

3.2 數(shù)據(jù)空跑系統(tǒng)

離線特征數(shù)據(jù)來自于業(yè)務(wù)離線計算在分布式文件系統(tǒng)中生成數(shù)據(jù)文件,然后將文件上線。歷史上曾因為生成的數(shù)據(jù)文件存在錯誤,存在錯誤的文件數(shù)據(jù)被上線到離線 KV,導(dǎo)致策略出現(xiàn)故障。

為了保障離線特征數(shù)據(jù)的質(zhì)量,數(shù)據(jù)倉庫設(shè)計了一套空跑系統(tǒng),在上線前對數(shù)據(jù)文件進行檢查,避免存在問題的數(shù)據(jù)上線到現(xiàn)網(wǎng)。

數(shù)據(jù)空跑架構(gòu)

數(shù)據(jù)空跑架構(gòu)如上圖,離線特征數(shù)據(jù)的上線也納入到了運營系統(tǒng)的管理中,整個的空跑流程如下:

業(yè)務(wù)發(fā)起數(shù)據(jù)上線,運營系統(tǒng)將數(shù)據(jù)上線到備用的離線 KV 表,也就是用于空跑的 KV 表。 打開空跑開關(guān),按一定的比率采樣現(xiàn)網(wǎng)的讀請求,旁路到新增的讀 MQ 模塊,該模塊讀空跑表的數(shù)據(jù),和當(dāng)前現(xiàn)網(wǎng)做對比, 分析差異率。這里采用的動態(tài)采樣, 如果表的 PV 高則采樣率低,PV 低則采樣率高或者100%采樣,避免請求量小的表無法進行空跑,而請求量大的表空跑流量太高又消耗太多資源。 計算和分析差異率。如果差異率超過了閾值,就自動的攔截數(shù)據(jù)上線,如果閾值檢查通過,就繼續(xù)后續(xù)的檢查流程,最終自動上線數(shù)據(jù)文件到現(xiàn)網(wǎng)離線 KV。

差異率示例如下圖,詳細(xì)展示了具體的差異細(xì)節(jié):

空跑結(jié)果差異率和差異詳情

完整的數(shù)據(jù)上線流程如下圖,空跑差異檢測通過后,需要檢查數(shù)據(jù)文件完整性,防止文件被修改或者覆蓋,最后數(shù)據(jù)再上線到現(xiàn)網(wǎng)數(shù)據(jù)倉庫系統(tǒng),通知業(yè)務(wù)數(shù)據(jù)上線成功。如果中間任何一個步驟出錯將告警給業(yè)務(wù)負(fù)責(zé)人,提醒人工介入處理。

離線特征數(shù)據(jù)上線完整流程

04、總結(jié)

整體來說,我們把數(shù)據(jù)倉庫分散的特征數(shù)據(jù)全部集中統(tǒng)一管理,提供統(tǒng)一的訪問接口,標(biāo)準(zhǔn)化每一個特征,建立了統(tǒng)一的規(guī)范。并且在此基礎(chǔ)上保障了數(shù)據(jù)的質(zhì)量,夯實了整個安全業(yè)務(wù)的基礎(chǔ),助力一站式的數(shù)據(jù)-策略開發(fā),極大地提升了安全對抗的效率,實現(xiàn)了數(shù)據(jù)價值的最大化。




該文章在 2023/7/29 9:38:17 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved