產品迭代的最後一千米

本文做者:AIOps智能運維安全

當咱們談發佈變動時咱們談些什麼?服務器

 

軟件產品的生命力在於不斷的功能迭代。一個新功能從需求產生到完整地呈現給終端用戶,中間通過了調研、立項、需求分析、設計、開發、測試等一系列步驟,而發佈變動則是整個流程的最後一步。具體來講,發佈變動是指將產品功能的修改內容發佈到一組服務器上的過程。併發

 

變動過程能夠簡單到由一個研發人員手工將代碼上傳到一臺服務器上,也能夠複雜到上萬臺機器的數據傳輸和命令執行。若是咱們深刻地考查整個變動過程,能夠發現不管變動過程自己如何變化,其中有些組成部分是不可或缺的,這裏將其總結爲變動三要素,即變動源、變動策略、變動目標。運維

 

變動源:描述變動涉及的具體內容,能夠是程序、數據或者命令;測試

 

變動策略:描述變動過程如何執行,包括但不限於順序、併發度、失敗容忍度等;spa

 

變動目標:描述落地變動內容的一個或者多個目標機器,也多是虛擬機或容器。設計

 

 

變動面臨的問題對象

 

其實咱們對變動的需求並不複雜,做爲迭代的最後一千米,咱們只關注兩點:開發

 

操做過程足夠快捷(效率)部署

 

變動結果符合預期(安全)

 

可是,在具備必定規模企業的生產環境中,用戶每每要面對比單臺機器手工上線更加複雜的情況,在這些情況下上述兩點要求一般難以知足:

 

大批量機器的操做步驟繁瑣,較依賴人的經驗,變動操做效率低下;

 

因爲缺乏可靠的檢查機制,變動效果沒法保證,甚至引起線上較大異常。

 

咱們在百度各核心產品的大規模變動實踐中積累了豐富的經驗,發現經過自動化部署能夠有效提高變動效率,在變動過程當中嚴格執行分級發佈流程能夠確保檢查機制獲得執行,而且可以有效限制異常影響範圍,加速異常恢復。在二者基礎之上,融入AIOps智能變動策略,能夠進一步下降管理成本,提高檢查效果。下面將從三個方面詳細介紹咱們的解決方案。

 

咱們的解決方案

 

1自動化部署

 

自動化部署包含變動策略和批量機器執行能力兩部分。具體來講,用戶經過UI/API配置整個變動過程的執行策略,例如先執行A地域機器的變動,再執行B地域機器的變動;執行失敗的機器超過10臺就自動停止等。而後由專門的執行系統解析策略,並自動執行批量機器的變動,如開源的Ansible、SaltStack和百度內部的CCS系統。整個執行過程自動進行,用戶只須要查看執行進度便可。另外一方面,執行系統也提供了干預能力,用戶能夠手動暫停乃至撤銷一個部署任務的執行。圖2給出了自動化部署的示意圖。

 

2分級發佈

 

分級發佈是指將變動過程以實例組爲單位劃分紅多個階段,每一個階段引入自動化的檢查用例,只有檢查經過才能執行下個階段的變動。分級發佈不能徹底避免變動異常,可是能夠有效限制異常影響範圍。經過把變動版本管理和歷史審計與分級發佈結合,能夠有效加強對變動過程的管控,下降異常影響,加快異常恢復速度。整個分級發佈規範的構成能夠參考圖3。

 

3智能變動策略

 

採用自動化部署和分級發佈以後,用戶已經能夠得到較好的變動效率,而且可以在至關程度上提高變動安全性,可是使用更高標準來審視,其中仍存在改進的空間:變動模板須要人工配置,使用門檻較高,複用性低;變動效果檢查強依賴人的經驗,可能出現異常沒被及時檢查出來的問題。

 

得益於在AIOps上的充分實踐,咱們發現經過將智能策略引入到變動流程中,能夠進一步提高變動效率和安全。具體的落地點在如下兩個方面:

 

智能模板生成:分析變動對象屬性特色並自動填充

 

智能變動檢查:關聯異常檢測,及早發現並輸出干預命令

 

其具體的實現思路爲:

 

智能模板生成:使用運維知識庫充分收集變動目標對象的屬性,而後基於這些對象屬性特色自動生成變動模板,例如變動對象的最小可用度能夠用於生成變動失敗容忍度;

 

智能變動檢查:咱們已經有成熟的智能監控方案,能夠全方位監控目標服務的狀態並及時彙報異常。經過訂閱變動目標的服務監控,能夠實現變動過程當中的實時檢查,從而及時發現變動引發的異常,進而自動執行干預命令。

 

如何應用上述解決方案?

 

上面介紹了變動面臨的主要問題以及咱們對應的解決方案,爲了可以讓更多的外部用戶也能體驗到百度高效安全的變動能力,咱們將在百度雲上提供百度智能變動產品。屆時購買了百度雲服務的用戶,便可使用該產品完成業務功能的平常迭代。百度智能變動產品目前在緊鑼密鼓地推動中,預計很快就會與你們見面。

 

總結

 

發佈變動做爲產品迭代的最後一千米,其執行效率和執行結果將直接影響功能迭代的效果。當把目光投向實際的生產環境,咱們發現,在不少企業中變動的執行效果並不能獲得保障。針對這種情況,咱們結合百度內部的實踐經驗和總結抽象,提出了包含自動化部署、分級發佈和智能變動策略的完整解決方案。這套解決方案將以百度智能變動產品的形態在百度雲上落地,期待與您分享!

 

原文連接地址:https://developer.baidu.com/topic/show/290054

相關文章
相關標籤/搜索