- Service Mesh實戰:用Istio軟負載實現服務網格
- 周遙
- 502字
- 2019-07-29 18:22:31
1.1 單機小型機時期
很顯然計算機誕生之初只是一個工具,像汽車、電視一樣,只有單一的功能;不過計算機的特別之處就在于,人們能為其編寫程序,不同的程序能夠實現不同的功能,這就使得計算機的應用面得到了空前的發展,變得不僅僅是為少數人服務,而是普惠大眾了。這個時候,就需要一種方式讓更多的人能從計算機的功能中受益。當然把每個人都叫到屋里也許是個方法(如舉辦開放日等),但顯然這太麻煩,而且受益者遠遠達不到普惠的程度。
好在,后來誕生了影響21世紀的互聯網。
1.1.1 互聯網的誕生
第一個計算機網誕生于1969年,就是美軍的阿帕網(ARPA),其最初僅僅是為軍事目的服務的,后來一些大學由于科研原因逐步加入,慢慢就進化成今天的“因特網”(Internet)。隨著計算機的普及,網上商業服務迅速崛起,網絡上的服務開始由單一的信息介紹變為五花八門的服務,它們為整個世界帶來了全新的面貌。
2000年初,中國的網民僅為890萬,很多人都不知道互聯網為何物,因此大多數服務業務單一且簡單,采用典型的單機模型外加一個數據庫就能應對絕大多數場景,所有功能都寫在一個應用里并進行集中部署,如圖1.1所示:

圖1.1 “最早的互聯網服務架構”
現在看來,這簡直是在開玩笑!但真的沒有,這個架構對于那時的用戶量來說確實足夠而且簡單,甚至如今知名的“淘寶網”在2003年剛剛誕生時就差不多是這個樣子。
工程師們在一個大應用里添磚加瓦,需要發布的時候就集中打包,如果遭遇錯誤就全部回滾。好在那個時候各部分功能都還算簡單,在依賴組里吼一聲,給個接口名,在系統內部引用再調用一下也就解決了。同時那個時期還有很多經典的設備,如IBM的小型機(如Power系列),或者EMC的高端存儲(如Symmetrix系列)等,都是單機時代的典型代表,它們追求的都是單機服務能力,那個時候還沒有分布式一說。
1.1.2 復雜應用拆分
不過到了2018年,中國網民的數量達到了驚人的7.72億(上漲了近100倍),而且隨著應用的日益復雜化與多樣化,開發者們對系統的“容災、伸縮及業務響應能力”有了更高的要求。
暫且不說用戶增長的影響因素,單純從服務的穩定性與功能上來講,單機架構就有很大的問題,因為如果“服務器”和“數據庫”中的任一個出現故障,整個系統就會崩潰,或者說若某個板塊的功能需要更新(例如“新聞網頁”),那么整個系統便需要重新發布。顯然,對于業務迅速發展的萬物互聯時代,這兩點就足以致命。
因此,工程師們開始思考,如何在保障可用性的同時快速響應業務變化。他們想到了將一個應用拆分成多個應用的方法,也就是將上面的“大統一”拆分成多個子應用,“新聞頁面”應用、“聊天室”應用、“論壇”應用等,這種方式被稱為垂直拆分。它們各自有整套的硬件體系作為支撐,于是就變成了圖1.2的樣子。
1.1.3 遭遇性能問題
應用垂直拆分確實解決了應用開發中發布的問題,現在每個應用都可以獨立設計、開發及部署了,工程師們非常興奮,干勁十足,新功能不斷上線。不過隨著用戶數量指數級的增長與摩爾定律的限制,單機計算能力完全跟不上業務的發展,這個時候工程師們發現,買再高端的計算存儲設備也是杯水車薪,不能從根本上解決問題;而且,高端的計算設備往往非常昂貴,例如IBM經典的Power系列,當時的售價就高達十幾萬美元,這樣的開銷對于小型企業簡直是天方夜譚。
因此這個時候,工程師們就需要一種廉價同時擁有高性能的解決方案。什么?廉價又高性能,確定這不是在做白日夢?如果按照之前單機的思路當然是不可能的,但我們可以換個思路來解決這個問題。

圖1.2 “業務垂直分拆后的部署架構”
- Painter繪畫實例教程
- Photoshop CS6 商業應用案例實戰
- 邊做邊學:3ds Max 2014動畫制作案例教程
- 從零開始:Flash CS6中文版基礎培訓教程
- 好的PPT會說話:如何打造完美幻燈片
- Windows Phone 7 Silverlight Cookbook
- PHP應用開發與實踐
- AI短視頻生成與剪輯實戰108招:ChatGPT+剪映
- CAXA電子圖板2016基礎與實例教程
- 好用,Excel數據處理高手
- 中文版Photoshop平面設計入門教程
- 玩轉微信5.0
- OpenAM
- AI繪畫大師:Stable Diffusion快速入門與實戰技巧
- 中文版Photoshop CS6經典自學教程(培訓教材版)