獵聘網資深運維工程師分享項目發布經驗

[來自IT168]

以下整理總結來自獵聘網資深運維研發工程師毛小永於6月4日下午在創客168沙龍的分享——獵聘青龍發佈系統。

程序猿們昏天黑地、大戰代碼300回合後做出的項目遲遲無法上線的痛有誰懂?上線失敗的眼淚去哪兒流?上線後的頻頻出錯的項目從哪兒改?開發狗、攻城獅們和程序猿們項目上線的鴨梨怎樣才能輕鬆吃掉?Follow me!一起來看獵聘網如何零壓力玩轉項目上線,服務如何絲滑流暢不卡頓~

老司機介紹

獵聘網資深運維工程師分享項目發佈經驗

獵聘網資深運維研發工程師毛小永

毛小永,獵聘網資深運維研發工程師,擁有多年運維研發經驗,曾負責青龍發佈系統、CMDB、變色龍指令系統等的設計和開發工作,推動全業務規範化,運維平臺自動化、標準化、規範化建設。

青龍的前世今生

獵聘網初期發佈項目時,只能把項目war包拖到線上去,每次上線時找一個專門負責發佈的運維人員進行發佈,效率極低。後來獵聘網專門做了一個用於發佈的系統——青龍發佈系統,每一個開發人員和QA人員在自己權限範圍內可隨時發佈權限範圍內的項目,大大提高了項目發佈效率。並且該發佈系統採取集群化部署,高可用、高效、簡單易用,發佈的效率、可靠性和質量相較之前有了質的飛躍,到了大家的一致認可。

獵聘網資深運維工程師分享項目發佈經驗

上圖是發佈系統的主界面。該系統有三大模塊,第一模塊是預發佈區。預發佈區可認為是沙漏區域,所有項目在上線過程中不會直接發佈到線上,需要先經過測試人員的測試,然後經過沙漏區的安全測試後,才會正式發佈到線上。第二個模塊是生產區,是一個包含Java、Node.js、python等項目和安卓、iOS平臺的APP的發佈。第三個模塊是監控區。雖然青龍只是一個發佈系統,但仍會監控上線之後的項目,保證當上線的項目出現問題後,運維人員第一時間及時恢復。總而言之,青龍發佈系統是一個一體化的,包括了測試、上線和監控等多方位的操作的系統,簡單易用。

作為一個發佈系統,首要一點是項目在上線過程中不能影響用戶的使用。如果項目在上線過程中,經常返回404或者500說明該發佈系統很失敗。第二點,該系統包含對多平臺支持。其實青龍發佈系統只是獵聘網平臺的一個系統,多平臺的支持可以促進整個技術體系,運維體系、架構系統等統一規劃、統一設計,方便在公司的層面構建整體化、標準化的平臺。第三點是青龍發佈系統支持集群多任務發佈,快且穩定,且有自我守護的升級模式。除此之外,青龍發佈系統還會對實時日誌進行分析和智能預測。

青龍身承六大法力提供技術保障

第一大特性:上線過程零宕機,即項目在發佈過程中對用戶零影響。發佈系統支持上線前進行灰度測試且操作隨時可中斷。

獵聘網資深運維工程師分享項目發佈經驗

上圖是整個網絡及服務器的部署情況。最外層是nginx網絡層,nginx把流量直接引導到線上三個區域中,經過三個區域網絡層後,服務端根據得到的請求,把數據引導到後端系統。這些區域的特點是邏輯層面相互隔離,即當流量進入區域A時,所有的請求都在A區域內完成,這就是對線上用戶零影響、零宕機的原因。實際上的零宕機是不可能實現的,但可以用另一種方式實現零宕機的效果。原理很簡單,當給區域A部署項目時,把區域A的nginx節點打掉,這樣線上所有的用戶請求都會被打到區域A2和A3中。這樣區域A已經不提供服務了,那A區域內的機器可隨便處置。當把A區域內的項目處置完畢之後,再把流量打回來,這樣在用戶層面是沒有任何影響的。

第二大特性:多平臺支持。Java、Node.js、python等項目、iOS和安卓的APP等都可納入到發佈體系中,但這只是一小步,青龍發佈系統真正的目的是把所有的項目以及需要的環境能過統一規劃,統一管理。

第三大特性:集群多任務。集群多任務的特點是可靠、高效率,可批量發佈,所以項目上線更快,效率更高。

第四大特性:守護升級。當項目上線時用戶只會訪問A結點,而運維人員會訪問青龍發佈系統的B結點,這樣在發佈系統中,對於用戶發佈的所有東西,系統都自動認為其是一個項目。下圖是實現守護升級模式的概念圖:

獵聘網資深運維工程師分享項目發佈經驗

當青龍發佈系統需要升級時,會首先訪問生產區,把待上線的項目部署到青龍預發佈區中。升級生產區時,生產區此時專供研發和QA人員使用,他們通過訪問預發佈區的發佈系統,把項目和代碼部署到生產區。

第五大特性:日誌處理。在發佈過程中,經常採用批量發佈模式,由於發佈項目眾多,不可能挨個排查項目問題。青龍發佈系統的解決辦法是把發佈過程中的日誌採集到系統中,系統的預估後判斷上線項目是否有問題,把結果直接反饋給用戶。日誌系統需要不斷改進,只有把新的類型的信息不斷加入到系統中,該系統判斷才會更加準確。下圖是系統簡單的發佈截圖,當發佈失敗的時候,日誌系統中會有一個詳細的項目發佈失敗的信息。如果項目發佈失敗,最快恢復的方式就是回滾。如果項目發佈成功,那也不代表項目結束,還要考慮發佈效果、特殊文件是否可以成功上傳、上線後的監控等問題。

獵聘網資深運維工程師分享項目發佈經驗

第六大特性:一體化監控。獵聘平臺除了採用第三方的監控,還使用系統本身的監控,同時也會關注服務的監控,用來監控服務內部和外部的流量監控。項目發佈後,服務機成功啟動,流量也恢復了,但還要監控服務器是否把流量內部消化了,系統是不是正常運行等情況。如果把流量切掉,再打回來,項目和服務也是正常的,那發佈任務就成功了,但如果中間有一個環節出問題發佈就失敗了。

寫在最後:

青龍—獵聘發佈系統集發佈、升級、監控於一身,上線過程零宕機、多平臺支持各類項目、可集群多任務發佈項目、自我守護升級模式、日誌自動分析處理和一體化監控六大特性讓青龍發佈系統簡單易用,可靠性極高。這麼好用的發佈系統,還不趕快來試試?


分享到:


相關文章: