發(fā)布于:2021-01-14 10:07:50
0
137
0
如果流應用程序開始在實時處理數(shù)據(jù)方面落后,那么根本原因可能很難在復雜的應用程序和基礎架構堆棧中手動找到。Unravel數(shù)據(jù)系統(tǒng)聯(lián)合創(chuàng)始人/ CTO Shivnath Babu和杜克大學計算機科學兼職教授Shivnath Babu在本文中了解更多信息。
大多數(shù)個性化的實時流應用程序可能會在Kafka,Spark,Kudu,F(xiàn)link或HBase上運行,以管理現(xiàn)代云交付服務對大量大數(shù)據(jù)的需求。要全天候提供這些信息,需要大量易于訪問的數(shù)據(jù),這些數(shù)據(jù)通常來自連接的傳感器,提供諸如客戶銷售,行駛里程,GPS,濕度,溫度和空氣質量等數(shù)據(jù)。許多企業(yè)都在努力做到這一點正確,數(shù)據(jù)管道效率低下,破壞了應用驅動的服務即時滿足消費者所依賴的基礎。
這種錯誤的基礎導致應用程序在處理方面滯后,從而破壞了整個業(yè)務功能,因為應用程序依賴于應用程序內部和外部提供服務。
如果流應用程序開始在實時處理數(shù)據(jù)方面落后,那么根本原因可能很難在復雜的應用程序和基礎架構堆棧中手動找到??紤]到交付復雜的企業(yè)分析過程時需要依靠云,因此基于機器學習和AI的方法是一種保證流應用程序具有更好的性能,可預測性和可靠性的方法。此處的進步將統(tǒng)計學習應用于流應用程序可用的全棧監(jiān)視數(shù)據(jù),并在優(yōu)化棧時提供了更多細節(jié)和粒度。
該監(jiān)視數(shù)據(jù)包括來自應用程序(來自Kafka,Spark Streaming和Kudu等系統(tǒng))以及來自內部部署和云基礎架構的度量標準和日志。
根本原因可能是應用程序問題(例如,Spark Streaming中的數(shù)據(jù)分區(qū)不良)或系統(tǒng)問題(例如,Kafka的配置欠佳),或者是基礎架構問題(例如,多租戶資源爭用)。當前的實踐依賴于使用流行工具的手動流程,而較新的機器學習和基于AI的解決方案會自動識別應用程序瓶頸,運行緩慢和故障的根本原因,并調用自動修復。
另一個好處是,與如此普遍的組織猜測相比,實施此類流程可進行更有效的容量規(guī)劃,從而降低成本并提高可靠性。
典型用例–網(wǎng)絡安全
這對于企業(yè)和大型組織的福祉至關重要-并且是大數(shù)據(jù)最有效和最具影響力的用例之一,即欺詐檢測和安全情報。然而,許多人認為它是最具挑戰(zhàn)性的數(shù)據(jù)使用,說明了管理實時流數(shù)據(jù)的復雜性。
為了分析流交通數(shù)據(jù),生成統(tǒng)計特征并訓練機器學習模型以幫助檢測大型網(wǎng)絡(如僵尸網(wǎng)絡中的惡意主機)上的威脅,大數(shù)據(jù)系統(tǒng)需要復雜且消耗資源的監(jiān)視方法。分析師可能會將多種檢測方法同時應用于相同的大量傳入數(shù)據(jù),以進行預處理,選擇性采樣和特征生成,從而增加了復雜性和性能挑戰(zhàn)。應用程序通??缍鄠€系統(tǒng)(例如,與Spark進行交互進行計算,與YARN進行資源分配和調度,與HDFS或S3進行數(shù)據(jù)訪問,與Kafka或Flink進行流傳輸),并且可能包含獨立的,用戶定義的程序,因此重復進行多種應用程序中常見的數(shù)據(jù)預處理和特征生成效率低下,這些會在執(zhí)行過程中造成瓶頸,占用底層系統(tǒng),導致資源利用不足,增加故障率(例如,由于內存不足錯誤),并可能降低及時發(fā)現(xiàn)威脅的機會。
學習新技術
更新的技術可為網(wǎng)絡安全分析提供可靠的工作負載管理,并且更好地了解如何應對本地和云中的現(xiàn)代數(shù)據(jù)應用程序所面臨的運營挑戰(zhàn),從而可以改變DevOps。
更好的分析工作負載管理包括:
識別共享共同特征和要求的應用程序,并根據(jù)相關數(shù)據(jù)托管(例如,端口使用熵,IP區(qū)域或地理位置,安全性中的時間或流量持續(xù)時間的組合)將它們分組
分離由不同用戶提交的具有不同要求(例如,磁盤I / O繁重的預處理任務與計算繁重的特征選擇)的應用程序(例如,SOC級別1與級別3的分析師)
為應用程序分配適當?shù)膱?zhí)行池/隊列,從而增加共享機會和計算相似性
通過機器學習算法從日志和傳感器中進行高效,連續(xù)的度量收集,可以對應用程序執(zhí)行進行仔細檢查,確定潛在故障的原因,并生成建議以提高性能和資源使用率。這確實依賴于以下算法:改善性能/資源利用;使用應用程序(或類似應用程序)成功/失敗運行的歷史示例為失敗的應用程序提供自動修復;并嘗試使用數(shù)量有限的替代配置,以使應用程序快速進入運行狀態(tài),然后使應用程序進入資源高效且運行良好的狀態(tài)。
假設用戶想應用機器學習算法來生成見解和建議。這些技術非常普遍,使用它們可以歸結為了解業(yè)務目標是什么,DevOps目標是什么,然后將正確的算法映射到挑戰(zhàn)中。
作為一個易于理解的問題,在卡夫卡世界中進行異常檢測。跨代理或跨分區(qū)的負載不平衡是很常見的。通常,只有一個經(jīng)紀人承擔相對于其他經(jīng)紀人十分之一的負載,而通常相反,一個經(jīng)紀人成為熱點。這可以在許多不同級別的分區(qū)上發(fā)生。這個問題可以使用最簡單的離群值檢測算法快速找到或檢測到。但是,要考慮幾個不同的算法維度。
有很好的算法可以分析一次序列。有些對于多維分析非常有用。Z分數(shù)使分布適合數(shù)據(jù),并且任何與分布不匹配的點都是異常值。即使是像這樣的簡單算法,也可以大大幫助快速通知操作員某些事情需要立即注意。
有時,問題可能會涉及一個維度,但用戶通??赡芟MR別在輸入數(shù)據(jù)以及CPU或磁盤利用率方面都異常的代理。有些算法可用于多維和早期檢測。
DBScan算法使用基于密度的聚類,將點分組為聚類,以便可以識別出不滿足聚類部分的事物。最近,由于離群值適用于任何類型的數(shù)據(jù),因此引起了人們的興趣。
人們通過引入更多有趣和復雜的模型(如決策樹)來擴展這些算法。其次,通過深度學習,有一些自動編碼器可以根據(jù)原始數(shù)據(jù)重新創(chuàng)建數(shù)據(jù)并識別出哪些點不匹配。
考慮用例并應用邏輯以簡化DevOps的生活是關鍵。首先要考慮環(huán)境中的挑戰(zhàn),了解解決這些業(yè)務問題的簡單方法,并應用智能解決方案通過機器學習/ AI從用戶那里奪走輪替作品。大規(guī)模交付依賴于效率,只有在大數(shù)據(jù),支持云的世界中,效率才能來自增強人類問題解決機的自動化。