1. 程式人生 > >萬臺伺服器,單臺只裝一個Docker,世界級瀏覽器IT架構之旅_Kubernetes中文社群

萬臺伺服器,單臺只裝一個Docker,世界級瀏覽器IT架構之旅_Kubernetes中文社群

網頁瀏覽器間的戰爭,可以從上世紀末90年代的網景Netscape與微軟IE說起,當時兩大公司角逐誰才是瀏覽器霸主,而在局勢已定的20多年後,每每有人得知CloudMosa創辦人沈修平仍要繼續投入瀏覽器開發時,「他們都跟我說:『老兄,War is over。』」他笑著說,雖然現階段局勢看似趨於穩定,但瀏覽器扮演的角色,始終非常重要。

CloudMosa創辦人、CEO沈修平(攝影/洪政偉)

而沈修平表示,現在主流瀏覽器的使用體驗,都相當依賴客戶端的硬體規格,導致本機裝置的處理器、記憶體成為網頁應用執行的瓶頸,我們需要一個完全不一樣的瀏覽器,才有辦法突破僵局,贏得勝利。他舉例,在第一次世界大戰的壕溝戰模式,各國就陷入僵持戰,但是在英國發明坦克之後,很快大戰就畫上終點。

而對比現今瀏覽器市場的競爭,他認為,當多數人都認為瀏覽器已經不再有重大突破之時,這對CloudMosa是個非常好的機會。也因此,CloudMosa決定押注遠端瀏覽器的營運模式,重點是打造一個良好的雲端環境,利用雲端隨需使用的觀念來打造瀏覽器,不需要仰賴使用者自己的裝置,而是依靠CloudMosa資料中心的運算力,創造更好的瀏覽體驗,由於每個使用者僅使用短暫的時間,因此單臺伺服器至少可以處理100個使用者的瀏覽需求。該公司的Puffin瀏覽器,下載次數已經超過8,000萬次,每月活躍使用人數(MAU)超過了1,200萬人。

在CloudMosa初期,IT架構完全仰賴公有云。沈修平也解釋該選擇的原因,初創公司的失敗機率很高,而公有云可以降低失敗的成本。反之,使用VM技術自建資料中心,需要更專業人才。他開玩笑著說,一家初創公司,尋找資金與構思戰略才是重點,在使用流量不多時,IT基礎架構並不是重點,萬一失敗,自建機房會帶來很大的失敗成本。

Rackspace公有云服務允許使用者使用閒置運算資源

當初CloudMosa是使用Rackspace而非AWS,使用Rackspace架構,可以讓我們使用更多運算資源。他解釋,這兩家公雲服務商最大的區別在於,AWS會將單一臺伺服器劃分成數臺VM,但是未使用完全的資源,企業不能自由運用,反之,Rackspace則允許使用者自由運用閒置資源。

當鄰近的VM資源未有人使用時,CloudMosa可以使用那些運算資源,沈修平笑著說,就跟臉書遊戲開心農場的偷菜一樣有趣。

但隨著運營規模成長,偷菜用法卻讓CloudMosa開始承受痛點。當流量增加需要更多運算資源時,加開伺服器也沒有效果,原因在於,過去已習慣使用超載資源,這使得增加資源變成一件非常不可預期的事情。

偷菜模式導致運算資源難以預測,提高營運風險

在此階段我們發現,如果企業規模不大,僅有20至30臺伺服器時,使用Rackspace的服務就非常划算,但是當規模開始擴充至100至500臺伺服器時,就已經達到Rackspace的極限,(偷菜仍然有風險。)而要穩定運營一家企業,勢必要降低風險。

所以,CloudMosa開始轉移至AWS,最初1個月支付費用為1,000美元。而隨著使用人數增加,很快費用水漲船高,公有云月租費馬上增至5,000美元,甚至還飆高至5萬美元,(5萬美元對於規模不大的企業仍是一筆支出。)我們認為,初創公司的確可以仰賴公有云,但是一旦事業開始順利,企業就應該開始自建私有云。

這也讓我們開始思考,如何利用自建資料中心降低營運成本。我們的目標是在1個月內建立起資料中心,在AWS環境每多待一天,都是更多的額外花費。

根據CloudMosa需求,租用單臺伺服器的價格是720美元,但如果自行購買,價格為1,200美元,(只需要一個半月就會回本。)

VM可以提升容錯度、備援能力,但不能解決所有問題

開始自建資料中心後,起初實體伺服器的數量不多,CloudMosa先利用VM技術加強資源的利用率。而當規模達到50臺之後,CloudMosa開始評估是否繼續使用VM的必要。我們認為,一臺機器要提高4倍的效能,不只要花上4倍的成本,(如果真有需求,何必要把資源劃分為4份?)

就如,裸機伺服器就像一顆大鑽石,利用虛擬化技術,切成4顆小鑽石便不合理。因此,在某種程度上,虛擬化技術不全然可以解決所有問題,只有符合某些條件之下,像是企業的需求可以靠一臺實體伺服器滿足,這時使用VM就非常恰當。

不需浪費成本將過多服務部署在公有云

隨著CloudMosa服務量成長到一定規模,因不同任務需求,也開始進行伺服器角色的分工。第一種角色是工蜂(Worker bee),也因此,CloudMosa在自建資料中心的伺服器,主要都是以裸機為主,僅有少數伺服器為虛擬機器。

每一臺伺服器都有特定用途,而裸機部署才可以讓實體伺服器擁有最好的資源使用率,(工作節點都一律使用裸機部署,我們稱這些伺服器為工蜂。)

CloudMosa也開始設計負載均衡機制,將流量導引至不同的工蜂伺服器,此時每一臺伺服器的重要性就大幅降低,即便其中一臺伺服器當機,仍然有其他裝置會接手。

相比工蜂伺服器,某些不耗費過多資源的應用程式,便可在VM環境中執行,(這些是我們重要的應用程式。)這些應用程式為聖牛(Sacred Cow),萬一這些系統當機,公司就會倒閉。也因此,才將這些應用程式部署在公有云,利用公有云服務,才可以確保降低應用當機、無法存取服務。

解決問題才是重點,不要為了追趕潮流而用,把技術視為炫耀。

CloudMosa創辦人即CEO 沈修平(攝影/洪政偉)

使用公有云作為安全網,重要應用部署在公有云環境即可

歸納搭配公有云服務及自建資料中心的心得,我們認為,最佳的作法是將少數的重要應用程式留在AWS,但大多數的伺服器都部署在自家機房內,自建可以節省成本,但相對較不穩定,(還好我們並不特別在意自建機房中伺服器的運作。)

此外,公有云也可以做為安全網,可以分擔突如其來的爆量服務需求,使用公有云分擔這些流量。CloudMosa也有一套目前還未啟動過的備援方案,一旦天塌下來,就不需要再想如何省錢,重點是要活下去。他笑著說,花一天昂貴的租金解決存亡之事,是筆非常划算的花費。

匯入刀鋒伺服器提升機臺密度,同時還能改善IT維運工作

而當CloudMosa最後成長至3,000臺伺服器,接著又開始面臨到下一個問題,就是伺服器規模過於龐大,如何快速部署?(因此CloudMosa開始使用刀鋒伺服器),刀鋒伺服器的機箱內可以容納多臺獨立的伺服器,同一個機箱內的伺服器可以共享網路資源,不需要每一臺伺服器都與網路連線。採用刀鋒伺服器後,無論是部署密度、速度,及維護工作都有相當程度的改善,(之後就完全轉移至刀鋒伺服器。)

同時CloudMosa也採用Network booting,當一臺伺服器開機時,也不需要安裝虛擬化平臺,與網路連線後,安裝該機器所需要的組態設定,之後便會自動加入正式環境。

不過當規模繼續擴增之後,如果要同時部署多臺伺服器,也會對負責執行部署工作的伺服器造成相當的工作負載。原先Master節點只需要負責數臺伺服器的部署工作,但要部署上千臺伺服器的工作就非常耗時。

為了節省成本,CloudMosa也開始使用便宜的伺服器,(但每次重新啟動時,就有無法開機的風險,硬體失敗率開始提高了。)CloudMosa定期會執行重啟的維護工作,或是更新應用程式時,都需要伺服器重啟。這也讓IT團隊每次重啟都很擔心,這就是CloudMosa要解決的下一個考驗。

Docker是一個更好的裸機解決方案,加快部署速度

因應快速更新、重啟、重新部署的需求,CloudMosa開始找尋新技術解決這些難題,(而Docker是一個更好的裸機。)他說,利用Docker容器作為伺服器的部署機制,也解決IT團隊頭痛的維運工作。

Docker容器提供了一個更好的Network booting的解決方式,過去的更新、維運工作,必須要重啟機器,但使用Docker之後,CloudMosa只要重啟Docker就好。

首先,相比重啟伺服器,重啟Docker的風險小許多,除了不會發生硬體無法開機的風險外,速度也快很多,重啟一臺伺服器所需時間至少10分鐘,但重啟Docker只要幾秒或幾十秒。再者,更新也變得更為簡單。準備好更新工作所需要的映象後就可以開始,也讓開發人員逐步降低更新的難度。

而CloudMosa使用Docker的方式也相當有趣,每一臺伺服器只會安裝一個Docker,(我們不喜歡劃分硬體資源。)將Docker視為取代VM的新技術,並非Docker的最大價值,反之,利用Docker作為一個運算單位,只要重啟Docker,就等同於重啟伺服器,(我們非常喜歡這個點子。)

利用Docker,原先在3,000臺伺服器規模時,大概需要花上1整天的更新時間。但使用Docker之後,1萬臺伺服器部署工作只需30分鐘就可完成,這是我們認為Docker提供的最大價值。

沒有任何觀念永遠正確、永遠適用

CloudMosa的IT架構之旅,一路從純公有云、混合雲到開始使用Docker容器技術,(沒有任何東西技術、觀念永遠正確,能解決問題才是最重要。)沈修平笑著說,無論是最新的Kubernetes、Swarm等容器排程技術,CloudMosa也都有進行研究,不過他仍再次強調,解決問題才是重點,不要為了追趕潮流而用,把技術視為炫耀。

同時,我們也在CloudMosa倡導,每個員工都得具備獨立思考能力,對任何外來資訊都要存疑,接觸外界資訊的重要性,在於擴大視野,重點仍是靠自己消化資訊,找出一條最適合自己的路。

CTO小檔案:沈修平CloudMosa創辦人、CEO

學歷:加州大學洛杉磯分校(UCLA)資訊工程博士

經歷:在美國完成博士學位後,前後在美國微軟、Google工作,在2009年創辦CloudMosa,現為該公司CEO,帶領CloudMosa從公有云演進至混合雲,而現在內部IT架構已經全面Docker化

原文:https://www.ithome.com.tw/people/120933