環境為王-論貼吧環境解決方案

來源:本站原創 專業IT吐槽 超過496 views圍觀 0條評論

摘要

本文列舉了當前貼吧線下環境在使用過程中遇到的幾個典型問題場景,針對這些問題,從如何維護環境穩定性以及如何提供更好的環境更新體驗兩個維度,給出了對應的解決方案。

通過環境穩定性解決方案,降低了人力的投入,保證了環境的最新,減少了人為因素引入問題,通過技術的手段,保證整個過程自動化、可視化。

通過更新方案,給予用戶更好地更新體驗,提升更新效率和速度,降低了執行機與基準環境之間的耦合性。

關鍵字

基準環境  自動化  監控  穩定性  更新

名詞解釋

基準環境:在虛擬機上搭建的一個單機的貼吧全功能環境。該環境包含了貼吧的所有模塊,所有模塊相關的地址配置(ip、url)均指向本機,是測試開發環境構建的母本。

執行機:指rd、qa、fe的開發或者測試機。

1.引子

貼吧當前有50多套線下環境,環境的快速構建以及環境功能的完備性成為提高效率的一個重要因素。為了達到環境快速構建和可復制的目的,通過借鑒svn的思想,采用環境模板的思路,搭建了一臺具備貼吧全功能的使用環境,即“基準環境”,其作為其他執行機的環境構建母本,具有單點更新的特點,極大地降低了環境維護以及構建的成本。

但隨著模塊的逐步增加,環境構建復雜度的增大,在使用中逐步出現了以下問題:

1.模塊部署基準環境滯后:模塊版本迭代很快,新上線模塊不能及時更新,影響了開發和測試的效率。

2.基準環境服務異常,缺乏監控:只有當核心服務出現問題時,才能知曉基準環境問題,處于一種很被動的情況。

3.基準環境和執行機耦合度高:基準環境作為所有執行環境的母本,之前設計的構建模式,存在只要基準環境出現異常,就會直接影響所有執行環境的問題。

4.基準環境管理維護缺乏流程規范約束,使用缺乏控制,容易人為引入問題,將問題帶入執行機。

為了解決以上問題,本文將從基準環境穩定性以及環境更新兩個維度來進行闡述。

2.方案闡述


上圖將解決方案劃分為兩個維度,第一個維度是針對基準環境穩定性的問題,主要解決基準環境上線模塊、監控以及服務驗證、環境隔離等問題。第二個維度主要解決基準環境和執行機耦合的問題,并闡述提升環境構建效率的方案。

2.1     基準環境穩定性方案


為了解決模塊部署基準環境滯后、基準環境服務異常,缺乏監控以及基準環境管理缺乏約束的問題,采用上圖中提到的三個方面。

2.1.1 構建自動化、管理平臺化

1)構建自動化、確認平臺化:

自動監控SCMPF的程序變化,主動抓取程序,按照部署路徑規范,自動部署最新的模塊。在項目上線后,自動更新基準環境,保證環境版本最新。
程序構建信息的不透明、功能確認環節不可控,加大了環境問題追查的難度。為解決此問題,使用部署信息web管理平臺,使得部署信息可視化;通過確認平臺,達到及時掌握項目部署效果的目的,能夠透明的掌握整個流程。
2) 配置項監控:

由于上線模塊會涉及程序以及配置,要達到自動化部署基準環境的目標,需要將線下配置入庫svn。為了避免遺漏情況,采取腳本定時進行線下和線上的配置項定時比較,郵件通報比較結果,進行介入跟進。
3) 線上DB操作監控:

腳本定時監控線上存儲過程或者表結構的更新,自動dump至基準環境,保證線上和線下DB一致性目的。

2.1.2 監控全面化

1)基礎監控:
使用noah,定時采集系統io、內存、idle等數據,出現異常報警,及時掌握基準環境系統狀況,及時跟進。
2)模塊監控:
使用腳本,采用語義監控以及端口監控,定時獲取系統服務狀況,當出現失敗采取報警,便于及時安排模塊負責人進行跟進處理。
3)服務監控:
結合核心自動化case,根據case執行結果,及時掌握核心服務正確性,確保功能正確性。

2.1.3 操作隔離化

環境的使用缺乏隔離,直接可能引入模塊搭建混亂、肆意修改配置、文件目錄肆意創建、刪除等人為問題。為避免以上問題,采用操作隔離化,具體內容如下:
1) 權限管理:
※ 用戶權限管理:使用公共賬號,類似線上qa賬號,提供可讀權限,開放部分目錄的寫權限。
※ 目錄權限管理:限制目錄的權限,針對不同的目錄類型,設置不同的rwx權限,避免人為因素隨意創建目錄文件,刪除文件、目錄等操作。
※ 訪問授權管理:收斂授權范圍,僅對動態備機進行訪問授權,不再開放其他執行機對基準環境的授權。
2) 文件變動監控:
通過shell腳本定時監控和統計文件變動情況,便于出現問題后追查問題。

2.2 環境更新方案

原有方案中基準環境作為所有執行環境更新的源端,所有的更新請求都直接由基準環境響應,使得基準環境與執行機存在嚴重的耦合性,一旦基準環境出現問題,執行環境功能正確性會受到嚴重影響。
為了規避耦合性,使得執行機每次都能獲得一個穩定可用的環境版本;同時降低基準環境處理更新請求的負載,因此引入了動態備機與靜態備機的概念。動態備機維護著一個穩定的環境版本,靜態備機的存在則主要從加快更新響應的溫度考慮。
更新流程也變為如下過程:

方案特點:
1) 執行機與基準環境更新解耦:
假設基準環境出現問題,不再會直接影響到所有執行機的操作。同時降低基準環境的更新請求負載,保證服務運行穩定。
2) 環境版本管理:
動態備機始終維護著一個穩定的基準環境發布版本,一方面保證上游(基準環境)的問題不會帶入執行機,保證核心服務正確性;另一方面,假設基準環境宕機,動態備機的存在也能夠起到容錯的需求。
3) 更新分流:
通過更新腳本的分流,能夠將不同類型(rd、qa)執行機的更新請求分流至不同備機上,降低同一臺機器更新請求量,提高更新請求響應速度,提升更新速度。
4) 多種更新模式選擇:
更新命令envup,提供各種可選參數,從全局同步、細粒度按目錄文件同步,到按照子系統同步,以及高速不帶數據等同步方式,給用戶多種選擇的余地,同時提供更新加鎖功能,能夠細粒度根據用戶配置,不更新配置中的文件或目錄。

3 方案收益

收益主要集中于以下幾個方面:
1) 保證了環境及時更新:
自動檢測SCMPF,只要有程序發布,則能夠立即部署至基準環境,快速構建環境,保持基準環境程序版本最新。
2) 減少人力投入:
經過半個月左右統計,基準環境自動化上線項目74個,更新模塊累計223個,按照1人時/項目計算,則節省74人時,平均每日節省近5人時。
3) 部署以及確認過程透明化:
所有信息都能夠通過web平臺查詢,及時知曉上線模塊,負責人,功能確認狀態等信息,改變了以前無據可循,問題排查困難的情況。
4) 主動知曉系統狀況:
通過基礎監控、服務監控以及模塊監控,改變來原有被動知曉系統問題的狀態,環境問題及時報警,問題能夠得到及時跟進。
5) 降低基準環境與執行機耦合度:
降低基準環境不穩定所可能帶來的風險,同時通過動態備機一定程度上起到容錯的作用。
6) 更新構建方式及效率的提升:
※ 更新方式多樣化,通過不同命令參數的組合,適應不同的執行機更新場景;
※ 易用性的提升,更新方式靈活配置和選擇,降低了qa、rd、fe環境構建的成本,使用意愿大幅提升。從方案實施至今,據統計,更新操作累計已達1000次;
※ 構建速度提升,通過更新方案的優化,采用按子系統、不帶數據、時間戳對比等方式,將全功能環境的構建時間從原來3小時左右,縮減至30分鐘以內,極大提升效率。

by zhangqianqian

李蕭明吐槽 想起以前24小時干活的同事……

文章出自:CCIE那點事 http://www.qdxgqk.live/ 版權所有。本站文章除注明出處外,皆為作者原創文章,可自由引用,但請注明來源。 禁止全文轉載。
本文鏈接:http://www.qdxgqk.live/?p=917轉載請注明轉自CCIE那點事
如果喜歡:點此訂閱本站
  • 相關文章
  • 為您推薦
  • 各種觀點
?
暫時還木有人評論,坐等沙發!
發表評論

您必須 [ 登錄 ] 才能發表留言!

?
?
萌宠夺宝游戏