海量服務器跨平臺系統(tǒng)補丁自動化部署方案_第1頁
海量服務器跨平臺系統(tǒng)補丁自動化部署方案_第2頁
海量服務器跨平臺系統(tǒng)補丁自動化部署方案_第3頁
海量服務器跨平臺系統(tǒng)補丁自動化部署方案_第4頁
海量服務器跨平臺系統(tǒng)補丁自動化部署方案_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 海量服務器跨平臺系統(tǒng)補丁自動化部署方案eBay成立至今已經有20年了,在中國互聯網里面有20年的公司并不多,我在eBay有11年。最開始eBay是全windows服務器做前端,靜態(tài)內容是IIS。eBay上曾經賣過最貴的一個產品是1.68億美金的游艇。2016年eBay的業(yè)務成交量是850億美金。我們內部的要求的ATB是99.947%,我們會做每周一次的數據庫的升級和遷移,這些凡是對用戶有影響的我們都算進去,不管是我們的原因還是外部的原因。我們作為電子商務平臺,我們做的跟支付有關系,如果Paypal不能來收錢了,它的影響對我來講是我的用戶到我的平臺上買東西不能產生交易,平臺掛了算我的,我的AT

2、B受影響。對用戶來講是這樣,對我們來講看起來就有點不公平,你的下游產品發(fā)生了問題,你不能成交,這個ATB的影響要我們來背,平時不可見的因素非常多,導致我們平時要非常小心。但是我們又是做互聯網的,比如說1.68億的成交金額,你不想你的服務器因為漏洞被人黑了,這筆錢轉到其他人的賬戶上,或者說有一天你的公司被黑客攻擊了,由于你的系統(tǒng)沒打補丁,你受到了什么影響,可能對大多數人來講,包括我們自己也是一樣,對自己的安全保護我們還是比較在意的。這是一些內部情況的介紹。外部形勢從去年以來就比較嚴酷,包括去年出現的勒索病毒,整個安全形勢是非常嚴峻的,反映到我們每個工程師來講,我們的壓力就很大了,每次有漏洞出來都

3、得補,eBay對于用戶的承諾是什么呢?我們要求我們的補丁周期,從發(fā)布到完全部署完要45天做完。eBay的業(yè)務是24小時不能停,經過20年的發(fā)展,我們有windows和linux,系統(tǒng)是幾十萬臺,應用數量是數千個,全球加起來前端應用服務器運維人員只有12個。12個人要維護windows加上Linux系統(tǒng),我們的windows系統(tǒng)是2萬臺,Linux是十萬臺,然后分屬到幾千個應用程序集群里面,我們的PD不需要關心系統(tǒng)級別的漏洞,它跑的OS上面有漏洞,這個補丁我們來打。同時我們還要管理其它的事情,打補丁只是我們日常工作中的一部分。問題分析那時候是2萬臺windows系統(tǒng),當時領導告訴我,下個星期開始

4、補丁你來打,我當時就開始考慮該怎么辦,業(yè)務還要不停的運行,機器還在不斷增加,但是人手卻不會增加。我們后來經歷了大概幾個歷程。簡單來說是三個歷程:支持單一OS,腳本化運行,重復勞動多支持單一OS,將流程自動化,降低重復勞動支持多種OS,可視化操作,平臺化管理可能在很多情況下,跟很多互聯網企業(yè)很類似,可能一開始只有windows系統(tǒng),當時OS是單一的,用了windows活動目錄,沒錢買它更好的服務,windows有一個免費產品叫WSUS,來提供在企業(yè)環(huán)境下的對微軟產品的不定管理。但是使用WSUS和活動目錄來進行對接作為實施方案,其實會有些局限,不能完全滿足互聯網電子商務的需要。它可以選擇策略,但策

5、略只有三種:要么是只下載,另外是下載了定時安裝,還有一個是下載了自動安裝。如果下載了自動安裝,它需要重啟,這就會出現一個問題,兩萬臺機器在那時候下了補丁自己裝,裝了之后重啟了,那時候監(jiān)控中心的人就慌了,因為沒有人發(fā)一個工單。在我們那里任何機器重啟都要發(fā)工單,但是發(fā)現全站2萬臺機器全部重啟了,卻沒有人發(fā)工單。這時候我們就要開始把所有的跟運維相關的人叫起來,問他是為什么,我們說在打補丁,他們說下次不要這樣干,因為你這樣干了,首先我不知道我們什么時候打的,另外重啟是不可控的,有些服務是不能隨便重啟的,它有特定的維護時間。所以怎么辦呢?我們選擇用一個腳本讓那臺機器把每個月的腳本下下來,然后我們再把它測

6、好。首先,我們要做的第一個是兼容性測試,很多時候我們不希望說打一個補丁之后windows掛了,藍屏重裝,雖然當時我們有一些黑科技,重裝一臺windows也只有15分鐘,但是這個量太大,恢復起來很難,所以我們就把機器所有的補丁下載下來,選擇用腳本。我每次都選一個機器列表,然后發(fā)個工單讓SEC的人把它重啟。在那時候機器的變化還是會有的,你不斷會有新機器加入到線上,不斷有舊機器下來,你不管做什么,因為光有這個腳本,有機器列表,腳本是死的,機器列表是變的,每個月還得把那個機器列表維護一遍,這也是挺麻煩的一件事情。后面我會講到怎么解決這個問題,我們先把這個問題放在這里,引發(fā)一下大家的思考。我們從單一OS

7、的腳本運行,變成了自動化流程運行,再然后,我們實現的補丁的自動化灰度發(fā)布。到最后我們希望變成一個可視化的、平臺化的操作,我讓做Hadoop運維的同學負責Hadoop的事情,并且我開放一個接口讓其他運維組的同事可以把你的邏輯放進來。你需要測試我?guī)湍銣y試,但是你的業(yè)務邏輯在你那邊,我把這個業(yè)務邏輯放給你來維護。打補丁有幾個問題,第一,你怎么知道漏洞在哪里,第二,你怎么發(fā)現這個漏洞,這個漏洞對于應用有什么影響。當我有一個漏洞被發(fā)現的時候,我怎么從應用的角度來看影響是什么。然后補丁怎么部署,我們才能實現跨平臺,還有一個問題是打補丁怎么才能保證安全。大多數同學可能是通過看官方公告或者微軟的公告等等,發(fā)現

8、漏洞,再去給系統(tǒng)打補丁的,其實還是有其他的可能性的。首先一個是主動掃描,每次定期對你做健康檢查,就像我們自己做體檢一樣,這里可以選擇商業(yè)產品或者是開源的產品,我們覺得相對來講還不錯的,一個是Qualys,它會提供主動的基于漏洞庫的掃描,幫你發(fā)現從應用角度和主機端的角度來看一些漏洞是什么,并且它還有一個好處是幫你做漏洞的分級。可以借用一些現有的漏洞,有些時候你出過漏洞,你不知道那個漏洞的危險程度是高還是低,就像前面說英特爾CPU有一個漏洞,我聽到這個事一臉懵逼,可能有很多人也是這樣,它的含義是什么我們并不知道,它有可能告訴你是什么原因,我們會借用別人的一些知識來補全我們自己。然后是有廠商通告,包

9、括有windows等等的官方通道。除此之外還有一個,就是業(yè)界通告。在美國有一個比較流行的叫CVE的,當我們發(fā)現任何漏洞掃描出來之后,它會附上兩個信息,一個是官方有沒有補丁,第二個是CVE,CVE會告訴你,你的漏洞可能的評級是多少分,它已經做了評級,也把相應的可能的危險程度以及補丁的方式告訴你了。用戶會上傳他們發(fā)現的漏洞情況,并記錄在它這里面,然后通告出來。其實是業(yè)界也是在根據CVE的發(fā)現再去找。既然CVE和商業(yè)掃描的軟件有很大的共同點,為什么你有了開源的還不用公共安全信息,為什么還要用商業(yè)的產品呢?其實有一點就是從效率考慮,以及從專業(yè)知識考慮,有時候給了CVE,它的信息量太大,你沒辦法一個個比

10、較。如果20萬的機器分布到若干個應用集群里面,還有不同的版本,更麻煩的是軟件包的版本都不一樣,在平常我們做運維的人發(fā)現這是很正常的現象,這種情況我們叫軟件包的版本漂移,我們在補丁過程中也要盡量避免這種軟件包的版本的漂移。在eBay內部做的事情是這樣的,我們用掃描軟件把所有基于IP網段的掃一遍,保證是全覆蓋,然后加上CMS的系統(tǒng),這是一套配置管理系統(tǒng),類似于平時大家理解的CMDB,基于這兩部分再看這樣的漏洞會映射到哪些應用程序上有問題,方便我們接下來做一個評估和分級。不是所有的漏洞都需要通過打補丁解決,有些漏洞可能你會放一放,或者說你采用其它的方式把它直接停掉,評級完了之后你會發(fā)現如果是0day

11、的漏洞肯定要立刻打了,對于安全風險不高的漏洞補丁還有喘口氣的機會,如果是0day我就需要找美國的同事一起,盡快把它解決。這時候就決定了你的漏洞修補策略,到底是你要把漏洞干掉,或者是有漏洞的包的服務停掉還是怎么樣。策略定好之后,如果是系統(tǒng)級別的,運維團隊全權負責,但如果說很多跟應用緊密相關的,你得通知相應的開發(fā)團隊,跟他說你的應用需要打補丁,做你的應用補丁的時候,全部把它修理掉,或者把它放到應用程序的部署里面去處理掉,這是我們對漏洞評估的一個過程。讓跨平臺可以在一個系統(tǒng)下面完成我們的補丁任務,其實有兩個點:首先在線上系統(tǒng)上面有Redhat、ubuntu,還有windows。windows還有好多

12、個版本的,好在他們可以用同一個更新源,這源基本上一個月更新一次。所以大家會注意到有一個差別,Linux有兩個更新包,windows只有一個,相對來說比較穩(wěn)定,Linux隨時會更新。我需要定期從外部把所有的軟件包拉進來,我們在ubuntu上面,不是所有的機器都能訪問到互聯網的,我們做反向代理,流量可以從互聯網進入到eBay內部,然后到負載均衡,負載均衡到后面的Server,然后再出去還給用戶,所以它是一個反向代理的模式。ubuntu不用跟互聯網接觸,這樣也可以降低我們被攻擊的可能性。所以在這里面我們需要設置兩類Repo,包括線上的機器能得到最新的軟件包。每日更新的軟件包會時刻不斷地跟外部保持同步

13、,之后會自動觸發(fā)在內部的CICD的過程,然后做部署、做測試?,F在在軟件包開始的時候有這些部署,有這些部署之后我就可以把生產上現在已經有的包拉出來去測,測完之后沒有問題,再發(fā)布出來。還有一點,你打了線上的補丁,你的Repo沒更新,出來的東西還是有漏洞的,所以它一起把Repo更新掉,保證新生產出來的機器已經具有了這個漏洞,從技術架構上我們就是這樣做的。有了上面的準備工作,后面將會更進一步談到的是補丁部署的時候怎么保證安全,有了技術架構,我也可以讓它出補丁了,我也可以做我的測試了,我們的開發(fā)團隊也可以知道這些補丁什么時候部署了。在補丁部署上呢,我們的運維團隊是直接部署的,首先是做補丁測試,還有異常防

14、護,很多時候其實對于運維和開發(fā)最大的差別是說,運維要擔負的責任是要預防那些還沒有預見到或者說已經可能預見到,但是還不知道什么時候發(fā)生的問題,所以我們會做異常防護,補丁之前我們會排查軟件包的列表。我們會基于某些應用有一個黑名單,它的應用列表是不打的,或者我們會看對于像PHP這種可能會影響到應用的,我們把它加到黑名單里面,系統(tǒng)補丁、安全補丁不打。接下來就是重要的抽樣測試,在灰度測試里面會談到金絲雀測試,就是抽樣測試,我們把它放到生產環(huán)境里面,每個案例庫找一臺去跑,并且找同樣的OS,然后再做灰度發(fā)布,灰度發(fā)布可以分為三階段、五階段,或者說你可以隨便定義。如果實在你的運氣不好,你還有機會回滾,而不至于

15、讓你的業(yè)務受到很大的影響。接下來我們看看在結果測試里面會碰到的問題。比如說假陽性和假陰性。什么叫假陽性?外部掃描軟件掃出來說你這里有個windows漏洞,結果你再一看,這是一臺Linux設備,在你的配置數據庫里面有zheyangde 數據存在,這個世界對我們來講并不是那么美好的,我們要對這個世界有了解,這個世界不美好,我要知道它哪里不美好,這可能是會存在的問題,這是假陽性。假陰性就是,明明你打過補丁了,你看到沒問題了,你看到的版本號好像是跟你打好的,只不過有時候是自己看錯了,掃描的時候會告訴你,你說的陰性還是有漏洞的,這是在我們現在測試階段會碰到的問題,就是說你如何去驗證你在打完一個補丁的時候

16、真的是已經補丁完成了,然后會測試系統(tǒng)會不會崩潰,軟件包依賴的關系、性能的變化,還有生效的依賴性關系。還有就是部署階段我們怎么驗證。其實部署階段的坑更多,一個是補丁部署的覆蓋率,我們經常說我們打完補丁之后,window系統(tǒng)是你把包下在那里通知它去裝,這靠的是agent,但是它可能會失效,你怎么發(fā)現它失效。還有就是當你的包下下來之后,它其實并沒有準備好,它那個時候還有大批量的機器會被生成出來,這是我們完全不知道的,所以你要看在這段時間到底有多少機器被生成出來。還有增量新系統(tǒng)的發(fā)現,最后還要看這次結果里面有多少補丁要打,你的工作量是多少,這一點要跟你的老板去講,這是我的工作量,我這個月做了多少事情,

17、雖然我只有12個人,但是我做了這么多事情,要讓他知道結果是什么。同時你的老板還要向你的老板的老板去解釋。在結果測試除了以上兩個問題外還會其他的問題,比如說打補丁的時候其實會涉及到重啟,會涉及到OS宕掉。我們要有一個鎖機制,當我去部署這個補丁的時候,與此同時你不要再減少它的容量,代碼部署可能會影響到它。另外是監(jiān)控,如果機器下線了,重啟了,監(jiān)控的人要知道為什么,他甚至想說,你打補丁是正常的變更,你不要讓我看到這么亂。還有是它的權限管理,我可以把壓力傳導到其它的部門,我們基于AD的管理或者LDAP的管理,你有你的權限,應該是我提供工具給你用,出了問題是你的問題。系統(tǒng)架構接下來我們可以看整體系統(tǒng)架構,

18、大概就是這樣一張圖,從發(fā)現到展示,你怎么展示你的圖,漏洞的數據,驗證你的軟件包,然后測試、計劃、部署,可能還有一部分,你不能被納入到自動化,它是特殊應用,它不能被納入到自動化部署。比如說數據庫,我不敢納入進來,打掛了我負不了這個責任。因為總共就兩臺DB,我為什么要部署它?整個流程走完之后,你會看到這邊有一個數據展示,把你的結果告訴給老板,通常最后關心的不是運維關心的數據,最后你的老板可能會關心,他要對外部的公開媒介公布自己的健康狀況到底是怎樣的。在eBay內部前端運維是管理所有WEB服務器的,然后還有其他的團隊負責其它的事情,我們根據LDAP或者AD讓他們管理好自己的部分。然后你是怎么部署的,你怎么連接,你的工單是什么,需不需要發(fā)變更,你要發(fā)命令或者發(fā)腳本下去,或者有防護的腳本,你的腳本在哪里,要告訴他,隨著你要把消息推送給誰,當你打完這個工單之后,你很清晰的就知道你完成了多少,并且我告訴你當前還有多少任務沒完成。最后有一個圖表顯示,我的工作是這些部分。還有一些是其它部門的同事要做的,這個是要由他們來做的。未來展望介紹完了現在的狀況,展望未來,還有很多可以想像的空間,一個是我們要做內核熱補丁。我們前面講的都是系統(tǒng)級的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論