編者按:本文源自阿裡雲雲效團隊出品的《阿裡巴巴DevOps實踐指南》,掃描上方二維碼或前往:https://developer.aliyun.com/topic/devops,下載下傳完整版電子書,了解阿裡十年DevOps實踐經驗。
随着企業的數字化演進,資訊系統在業務中的地位越來越高。最早的資訊系統主要是為了支撐業務發展,提升業務運作效率,後來逐漸發展成為業務,提供商業價值和成本優勢。随着國家數字化政策的推進,資訊系統的地位愈發提高,逐漸引領業務發展,提供競争優勢。

面臨的挑戰
随着業務越來越強依賴資訊系統,資訊系統的穩定和安全問題逐漸凸顯,主要表現為以下三大痛點:
系統故障問題頻發
由于越來越多的使用者通過資訊系統擷取服務,一旦系統出現故障,造成的影響和損失都是巨大的。每隔一段時間,市面上都會出現一些大規模性故障,對業務帶來嚴重影響。僅僅 2020 一年,就發生過這些故障:
- 2 月 23 日,微盟資料庫被惡意删除,停止服務 7 天,市值蒸發超 10 億元。
- 5 月 13 日,特斯拉服務系統當機,市值一夜間蒸發 2800 億。
- 6 月 3 日蘋果 iCloud 雲存儲伺服器故障,使用者無法登入。
- 8 月 27 日,思科員工删除虛拟機,導緻思科損失 1600 萬。
- 12 月 25 日,谷歌服務全球性當機。
頻發的故障不僅會導緻經濟損失,影響使用者的使用和體驗,同時也會傷害企業的公信力,特别是在一些對于安全性要求較高的行業。
誘因複雜,控制難度大
随着業務規模的擴大,支撐業務的系統變得越來越複雜。這個複雜一方面展現在系統邏輯上,另一方面表現在研發團隊的擴大帶來的人員上的複雜性,例如研發運維人員變更變配、裝置故障、誤操作、惡意破壞、程式 Bug 等。這些都導緻故障控制的難度越來越大,甚至出現屢控不住,越控越多的情況。
管理者缺乏安全感
據 Gartner Group 的調查,在資訊系統經曆重大故障後,至少有 40%的公司沒有繼續營運,而剩下的企業中,有 1/3 在兩年内破産。系統的安全、穩定已經成為企業安全的重要命門之一。各種故障、以及衆多潛在的系統威脅,也讓企業管理者極度缺乏安全感。
解決方案實踐
系統故障的誘因複雜,這導緻單點的控制很難解決問題,需要一個系統化的解決方案。第一屆天貓雙十一,開發和運維人員需要整夜保障,随時解決出現的問題。即便這樣,也會出一些意想不到的故障。2020 年,雙十一的使用者數量和銷售規模和第一屆雙十一已經不可同日而語,系統也更加的複雜,但雙十一大促的系統保障過程卻越來越流暢,保障的人數也在持續降低。這背後是一個系統化的解決方案。
組織的頂層設計
組織設計是從組織層面設定專門的組織機構來負責系統的穩定和安全,包括最高層的安全生産委員會和各個研發部門的穩定性負責人。安全生産委員會的職能包括負責全局穩定性決策、安全生産規則制定、整體應急協同、安全文化培養、全局管控系統的規劃與管理。當故障發生時,由相關人員負責故障應急與統籌。各研發部門穩定性負責人負責各系統的風險治理和穩定性保障,在研發、運維的過程中避免系統故障的出現。
事前的風險預防
防患于未然是安全的最高能力。事前風險預防包括事前分析系統的各個組成要素以及組成要素可能面臨的威脅和存在的脆弱性,并将分析結果作為安全治理的輸入。對于威脅,需要制定相應的措施避免或減少威脅的發生。對于脆弱性,需要針對性的進行鞏固。比如對于經常會導緻系統故障的系統變配操作,通過統一的變更平台集中管理各種變配申請,進而實作對變配操作的集中管控。其次,通過最小權限原則,限制操作人的操作權限,包括操作時間的限制、操作對象的限制和操作範圍的限制。另外,每一次的變配操作,系統可以根據操作人、操作對象、操作類型等要素,計算操作過程中存在的風險。一旦發現過程中存在确定風險,則會直接阻斷目前操作。如果是高風險,則會發起交叉确認流程。如果是低風險,則會直接放行。這種方式,既實作了對風險的實時管控,防止由于人為失誤導緻的故障,同時又平衡了研發效率與安全生産間的關系。
事中的實時監控
快速發現是避免損失擴大的重要手段。在系統運作的過程中,通過業務名額監控、應用程式監控、雲資源監控相結合的方式,能夠及時地發現系統存在的問題。一旦發現故障,按照事先制定的預案,系統會通知相關人員進行處理。其次,基于大資料和人工智能的算法,平台會實時預測相關名額的變化趨勢,将故障預警的時間再次提前。
事後的快速恢複
盡管事前事中制定了詳盡的方案,但是還是很難避免故障的發生。一旦故障發生,如何快速地進行故障恢複就是首先需要做的事情。按照故障的不同類型,可以使用的故障恢複手段有限流、攔截、熔斷、快恢、降級、擴容、切流、重新開機等。不同的恢複方式都需要有相應的系統支援和日常的演練測試。
故障恢複後,安全生産委員會還需要組織相關人員排查和分析故障原因,制定整改方案,确定故障責任人,推進和落實整改方案,防止相同故障的再次發生。
業務系統安全工程
從以上的實踐過程可以看出,企業很難依靠單一手段解決系統故障,而需要通過系統化的手段,從頂層的組織設計、事前的風險分析和政策制定、事中的持續監測和預警、日常的演練和事後的應急響應等多方面進行控制。
在傳統行業中,為了保證生産經營活動能夠正常運作,國家制定了一系列的措施使生産過程在符合規定的物質條件和工作秩序下進行,進而有效消除或控制危險和有害因素,減少人身傷亡和财産損失,保障人員安全與健康、裝置和設施免受損壞、環境免遭破壞。在建築、石油化工、交通運輸、航空航天等行業,安全生産已相對成熟和完備,但在網際網路領域還是空白。以下圖采礦業安全生産流程為例,我們可以看出安全生産的管理要求已經落實到了作業的各個過程和環節。
參考傳統行業中的安全生産解決方案,同時結合阿裡巴巴内部的最佳實踐,我們提出了業務系統安全工程解決方案,該方案是指導業務系統防範故障的安全指南,其目标是通過預防、監測預警、應急響應等手段,減少業務系統故障,保障業務系統穩定、可用和可靠,防範由于業務系統故障導緻的資産損失和使用者影響。
業務系統安全工程架構
由于業務系統以及故障原因的複雜性,單純的從一個或多個點出發很難解決問題。業務系統安全工程以控制論和系統論為指導,以風險控制方法為工具,形成了自己的實施架構 IPDRI,即識别(identify)、預防(protect)、監測(detect)、恢複(recover)和改進(improvement)五個環節。從事前、事中、事後進行風險的控制,形成閉環的回報網絡。
其中,識别包括資産分析、威脅識别、脆弱性識别等。預防是為了避免風險的發生而采取的一定的預防措施。監測是監測系統和保護措施是否在正常的運作。恢複是在故障出現時快速的采取措施恢複系統的運作。改進是查找故障原因,制定改進方案避免相同故障的再次發生。
業務系統安全工程标準
在此背景下,阿裡雲聯合國家信通院牽頭起草了《基于雲計算的數字化業務安全工程标準》,該标準是國内首部聚焦于保護系統持續正常運作的行業标準。标準的核心目标是保護業務系統能夠持續正常運作,防範由于業務系統故障導緻的資産損失和使用者影響,保證系統的可用性、穩定性和可靠性。
标準規定了企業實作業務系統持續正常運作需要具備的各項能力,包括組織設計能力、風險分析與識别能力、政策與管控能力、監測與預警能力以及應急響應能力。
其中:
- 組織設計能力規定企業應設立頂層安全生産委員會,下轄公司安全生産部門,用技術手段提升風險控制能力,保障業務穩定;打造安全生産文化,確定人人重視、有持續性的提升;明确行為準則,用機制保護人,減少犯錯,降低損失,以此快速推進穩定性治理,大幅收斂公司全局性故障和重大影響故障。
- 風險分析與識别子產品幫助企業通過對系統的脆弱性、業務安全生産需求、系統已發生故障的分析,尋找影響資訊系統安全生産的潛在風險。
- 政策與管控子產品是針對已經分析發現的風險制定安全生産管控政策,通過降低、預防威脅的發生,提前鞏固、消除脆弱性等手段預防風險的發生。
- 監測與預警子產品是通過業務狀态監控、雲資源狀态監控、大資料風險分析與預警以及預警管理等能力,快速發現風險。
- 應急響應子產品規定了企業縮短故障時間、快速恢複故障應該具備的響應和快恢能力,包括容災演練、切流、限流、降級、重新開機、攔截、擴容等能力。
總結
系統的安全受内部和外部雙重影響,在防止企業系統受外部影響上,資訊安全目前相關的理論研究和産品建設已經較為完善。目前系統故障的更多原因是由于企業内部問題導緻的,資訊系統安全工程作為降低系統故障的體系化解決方案,未來的相關理論研究、産品服務也将得到快速發展。
【關于雲效】
雲效,雲原生時代一站式BizDevOps平台,支援公共雲、專有雲和混合雲多種部署形态,通過雲原生新技術和研發新模式,助力創新創業和數字化轉型企業快速實作研發靈活群組織靈活,打造“雙敏”組織,實作 10 倍效能提升。
立即體驗