亚洲日本免费-啊轻点灬太粗太长了三男一女-麻豆av电影在线观看-日韩一级片毛片|www.grbbt.com

混沌:軟件工程新趨勢?

找份工作,工作內容就是不斷破壞東西,然后讓它們更好地運轉?聽起來像是每個好奇心重的六歲小孩的夢想,但又確實是 DevOps 向 DevSecOps 轉型過程中的一種新興軟件工程趨勢。其宗旨就是通過測試系統極限,來提升任何情況下的安全及性能。

這種趨勢就是混沌工程。其前提是,即使在一切正常的時候,現代分布式網絡的本質仍舊意味著,系統中存在固有的混沌元素,可導致不可預知的結果。

混沌工程是主動型漏洞管理的一種形式,在受控環境中測試網絡在最極端情況下的表現。其理論基礎是:當你做好了應對最壞情況的準備,就能輕松應付常規性能問題。

在受控環境中放任混沌肆虐,可使工程師運用收集來的數據設計出更健壯、更富彈性的系統。而且,聽起來就很有趣。

Netflix 為什么選擇混沌

混沌工程這一概念成型于 2010 年,作為此前 Netflix 所遭嚴重宕機事件的應對之策。Netflix 在宕機事件后即從單一供應商內部部署網絡,轉型至基于云的全球分布模式。那次宕機事件源于該公司主數據庫之一崩潰,造成公司掉線三天,數百萬客戶無服務可用。

在一小時宕機時間即可導致企業平均 10 萬美元以上損失的時代,就算掉線五分鐘也是不可接受的。宕機不僅影響企業聲譽和收益,還會令企業網絡更易遭受攻擊和數據泄露。

為準備轉向去中心化全球網絡,Netflix 團隊創建了 Chaos Monkey (混世猴子)工具。該工具用于在非預期時間和位置上制造隨機系統性故障,以確定系統能否抗住極端情況。其中邏輯在于,如果網絡連這種極端情況都能對付,那肯定就能處理不那么極端的情況。

自 Netflix 將混沌作為一種軟件工程 DevOps 工具,并把他們的 “猴子” 放到了開源社區,將近七年的時間里,混沌工程已經成為 IBM、谷歌和亞馬遜等公司的標準測試過程。

混沌實戰:混沌工程的原則

混沌工程可簡單比作以網絡為對象的接種防疫。人體接種失活疫苗后,身體會自然產生抗體,抵御此后可能的感染。網絡安全發展至今,有些方法開始利用機器學習預測、調適和對抗內部及外部威脅。混沌工程可與這些先進網絡安全方法緊密協作。

混沌工程原理

混沌工程的目標之一,是通過直接解決特定謬論,糾正不熟悉分布式網絡的那些人的偏見。

這些謬論是:

  • 網絡可靠且安全
  • 零延遲
  • 帶寬是無限的
  • 拓撲是不變的
  • 管理員只有一個
  • 傳輸開銷為零
  • 網絡是同質的

混沌工程實驗旨在解決全球網絡分布中范圍和結果的不確定性,發現可能影響性能和安全的系統性漏洞。絕大多數混沌工程實驗遵循以下四步:

1. 定義指征正常系統性能的可衡量結果 “穩定狀態”。

2. 假設該穩定狀態將在控制和挑戰兩種環境中延續。

3. 引入模擬現實世界問題的變量,比如服務器崩潰、惡意軟件注入、網絡掉線和硬件故障等。

4. 通過對比控制組和挑戰組中網絡行為的差異,試圖推翻原本穩定狀態將延續的假設。

實驗在受控設置下進行,以便了解分布式網絡行為的更多特征,尋求在發生系統性故障之前就修正問題。良好混沌實驗的核心,是可產生非預期變量的一系列創意。在試圖證偽先前假設的過程中,一次改變一個重要變量,打破陳規。

有很多種方式可以創建新的潛在破壞性變量。很多人都會用 VPN 加密互聯網連接,但未必考慮過使用其地理位置功能隱藏自身 IP 地址。該軟件就通過以中間計算機連接互聯網,來冒充其他國家的用戶,以此實現隱藏自身 IP 地址的目的。關鍵點就在于嘗試打破穩定狀態。造成服務器崩潰。關閉虛擬機。給網絡制造的復雜情況越多,你對系統安全與性能的信心越足,而且人工智能的發展也可以生成相當復雜的各種場景。

為確保混沌工程在理想狀況下執行,產生出可靠數據,以下原則是必須遵循的。

1. 圍繞基于可測輸出而非系統特征的穩定狀態行為,形成一種假設。這將證明系統可抵御不可預測的壓力因素,而不僅僅是確認其如何運作。

2. 變動現實世界事件,包含源自硬件故障、軟件漏洞及其他未必造成故障的事件,比如瞬時流量峰值或操作增加。

3. 在生產中實驗,以便囊括真實流量。這可確保測試的真實性與相關性,讓結果比僅僅依靠流量及壓力模擬來得更具現實意義。

4. 運用自動化技術,安排和執行持續實驗。自動化測試已編入混沌工程標準流程,目的是節省人工實現所耗費的時間和開銷。

5. 最小化沖擊范圍,提升控制與減少網絡中斷。

企業運用混沌工程的優勢

混沌條件下實現測試比單純實驗室分析提供的好處更多。技術人員能獲得有關系統性漏洞的更深洞見,可減少有害事件及后果,縮短上市時間。業務人員能主動緩解盈利損失,減少停工時間,啟動更有意義的 IT 和工程培訓項目。

最重要的是,開發人員、工程師和業務人員可以支持更可靠的服務開發與交付,通過確保持續的服務可用性而增加客戶滿意度。

想要保護聯網系統,在整體性能與網絡安全緩解計劃中融入混沌工程標準值得一試。

結語

網絡越復雜,分布范圍越廣,軟件開發人員和工程師就越想擁有適應各種情況的有效測試協議。

引入混沌工程,可以在不中斷關鍵系統功能的情況下,更好地應對非預期事件。這將提升幾乎所有挑戰性環境中的整體性能并增強系統安全性。

上一篇:黑客利用固件漏洞的八種方式

下一篇:北塔軟件參加IDEA企業應用創新大會,為企業數字化轉型出謀劃策