<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          后端架構(gòu)的演進(jìn)之路:Serverless 的誕生

          共 2576字,需瀏覽 6分鐘

           ·

          2021-03-31 15:11

          最近幾年的技術(shù)圈,對(duì)于 Serverless 技術(shù)的討論異常火熱,在業(yè)內(nèi)也有了很多成熟的案例。Serverless 在國外發(fā)展較早,比較有代表性的就是亞馬遜和谷歌。而在國內(nèi),騰訊和阿里兩位巨頭,都將 Serverless 定義為集團(tuán)戰(zhàn)略型項(xiàng)目,不遺余力地推廣和研發(fā)自己的 Serverless 技術(shù)。


          那么,Serverless 到底是什么?

          為什么說 Serverless 是云計(jì)算的下一個(gè)十年?


          首先我們先來認(rèn)識(shí)一下 Serverless。Serverless 是一種后端架構(gòu)技術(shù),更準(zhǔn)確地說,它應(yīng)該是一種后端架構(gòu)的概念或者思維


          你可能會(huì)問,既然是后端架構(gòu)的內(nèi)容,那和我前端開發(fā)者有什么關(guān)系呢?沒錯(cuò),Serverless 本身和前端半毛錢關(guān)系都沒有,但是它卻是前端程序員最希望落地應(yīng)用的技術(shù)。眾多前端開發(fā)者,望穿秋水一般期待它的成熟落地,反而很多后端程序員,漠不關(guān)心甚至排斥。為什么會(huì)出現(xiàn)這種一方冷淡一方火熱的奇怪現(xiàn)象?要搞清楚這一點(diǎn),我們需要從后端架構(gòu)的演進(jìn)歷史說起……


          每一個(gè) B/S 架構(gòu)的互聯(lián)網(wǎng)應(yīng)用,都是由最基礎(chǔ)的客戶端服務(wù)端構(gòu)成的,客戶端要呈現(xiàn)內(nèi)容,就需要服務(wù)端提供服務(wù)。最初,搭建一個(gè)服務(wù)器是非常繁瑣的,我們需要購買一臺(tái)電腦主機(jī),然后找一個(gè)機(jī)房對(duì)機(jī)器進(jìn)行托管,要將外觀拍照,將各項(xiàng)硬件參數(shù)提交到備案中心進(jìn)行備案,鏈接電源和網(wǎng)線,安裝好操作系統(tǒng),然后搭建好代碼的運(yùn)行環(huán)境,部署程序代碼后,再將申請(qǐng)的域名和靜態(tài)IP做好解析,就算是上線部署完畢了,這個(gè)過程需要肉身行動(dòng),減肥效果非常不錯(cuò)。



          這樣的服務(wù)器架構(gòu)是單機(jī)版的單體架構(gòu),數(shù)據(jù)庫、應(yīng)用代碼、HTTP服務(wù)器等服務(wù)全都在一臺(tái)你自己管理的服務(wù)器上運(yùn)行,因?yàn)槲覀円佑|物理機(jī),所以,我們也把它稱為物理機(jī)時(shí)代


          在物理機(jī)時(shí)代不僅僅是上線部署非常繁瑣的問題,在整個(gè)應(yīng)用的運(yùn)行中,還有各種各樣的問題出現(xiàn),比如磁道磨損的硬盤,機(jī)房的意外停電,老鼠咬斷的網(wǎng)線等等。


          隨著技術(shù)的不斷發(fā)展,我們終于擺脫了物理機(jī)時(shí)代,跨入虛擬機(jī)時(shí)代。其中一個(gè)重要節(jié)點(diǎn)之一就是 2001 年 VMWare 帶來的針對(duì) x86 服務(wù)器的虛擬化產(chǎn)品,通過虛擬化技術(shù),可以把一臺(tái)物理機(jī)分割成多臺(tái)虛擬機(jī)提供給用戶使用,充分利用硬件資源。而對(duì)于硬件設(shè)備的管理,統(tǒng)一由云廠商負(fù)責(zé)。對(duì)于開發(fā)者來說,就不用再買硬件了,直接在云平臺(tái)買虛擬機(jī),比如 AWS 的 EC2、阿里云 ECS、騰訊云 CVM等。



          云服務(wù)器也真正的進(jìn)入了大眾的視野,開發(fā)者再也不用擔(dān)心斷電斷網(wǎng)和硬件故障了。不過業(yè)務(wù)量不斷增長,用戶越來越多,數(shù)據(jù)庫每天都有幾千萬條數(shù)據(jù)寫入,數(shù)據(jù)庫性能很快就會(huì)達(dá)到瓶頸。除此之外,每天也有上百萬圖片存到磁盤,磁盤也快要耗盡了。為了降低服務(wù)器負(fù)載,我們把數(shù)據(jù)庫遷移到了云廠商提供的云數(shù)據(jù)庫上,把圖片存儲(chǔ)遷移到對(duì)象存儲(chǔ)


          云數(shù)據(jù)庫有專門的服務(wù)器,并且還提供了備份容災(zāi),比自己在服務(wù)器上安裝數(shù)據(jù)庫更穩(wěn)性能更強(qiáng)。對(duì)象存儲(chǔ)能無限擴(kuò)容,不用擔(dān)心磁盤不夠了。


          這樣一來,服務(wù)器就只負(fù)責(zé)處理用戶的請(qǐng)求,把計(jì)算和存儲(chǔ)分離開來,既降低了系統(tǒng)負(fù)載,也提升了數(shù)據(jù)安全性。并且單機(jī)應(yīng)用升級(jí)為了集群應(yīng)用,通過負(fù)載均衡,會(huì)把用戶流量均勻分配到每臺(tái)服務(wù)器上。


          不過在服務(wù)器擴(kuò)容的過程中,你還是會(huì)遇到一些麻煩。比如購買服務(wù)器后,都需要在上面初始化軟件環(huán)境和配置,還需要保證所有服務(wù)器運(yùn)行環(huán)境一致,這是個(gè)非常復(fù)雜還容易出錯(cuò)的工作。這對(duì)運(yùn)維工程師也是一個(gè)非常大的挑戰(zhàn)。


          總的來說,虛擬機(jī)可以讓你不用關(guān)心底層硬件,但是我們依然要為服務(wù)器集群的管理工作付出高昂的成本。如果有一項(xiàng)技術(shù),能夠在每次的服務(wù)器擴(kuò)容時(shí),讓服務(wù)器的運(yùn)行環(huán)境保持一致,那就太好了。于是,容器技術(shù)應(yīng)運(yùn)而生。


          2013 年 Docker 的發(fā)布,代表著容器技術(shù)替代了虛擬化技術(shù),云計(jì)算進(jìn)入容器時(shí)代。容器技術(shù)就是在虛擬化技術(shù)的基礎(chǔ)上,把代碼和運(yùn)行環(huán)境打包在一起。這樣,不論服務(wù)器的配置怎樣,代碼和運(yùn)行環(huán)境均能保持一致性。有了容器技術(shù),你在服務(wù)器上部署的就不再是應(yīng)用了,而是容器。當(dāng)容器多了的時(shí)候,如何管理就成了一個(gè)問題,于是出現(xiàn)了容器編排技術(shù),比如 2014 年 Google 開源的 Kubernetes,就是俗稱的 K8S 。



          在目前的后端架構(gòu)中,容器技術(shù)依然是主流的服務(wù)器架構(gòu)技術(shù),但是隨著互聯(lián)網(wǎng)應(yīng)用的普及,我們需要面對(duì)各種各樣的應(yīng)用場景。


          舉個(gè)栗子,每當(dāng)大型購物節(jié)來臨,我們的在線商城會(huì)面臨巨大的流量洪峰,而在平時(shí),流量顯然要小很多。為了迎接購物節(jié)的流量洪峰,我們需要大量擴(kuò)充服務(wù)器,服務(wù)器的擴(kuò)充和大量容器的編排工作,也是一個(gè)不小的難題。如果我們對(duì)流量的壓力預(yù)估不到位,還會(huì)有服務(wù)器宕機(jī)的風(fēng)險(xiǎn),而在平時(shí),如此多的服務(wù)器運(yùn)行顯然是在浪費(fèi)資源增加成本。



          那么,有沒有一種技術(shù),讓我們只關(guān)心業(yè)務(wù)代碼的功能實(shí)現(xiàn),脫離服務(wù)器的管理呢?讓我們不再為運(yùn)行環(huán)境勞心傷神,不再為服務(wù)器的擴(kuò)縮容半夜驚醒,當(dāng)流量洪峰來臨時(shí),自動(dòng)調(diào)配更多的服務(wù)器資源支撐,當(dāng)流量低谷時(shí),自動(dòng)釋放服務(wù)器資源節(jié)約成本。這樣美好的時(shí)代,正在向你走來,它叫 Serverless



          簡單總結(jié)一下,縱觀后端架構(gòu)的發(fā)展史,其實(shí)就是 Serverless 的興起史。每一個(gè)時(shí)代,都是對(duì)前一個(gè)時(shí)代基礎(chǔ)架構(gòu)的抽象。


          從物理機(jī)時(shí)代跨越到虛擬機(jī)時(shí)代,讓我們不再關(guān)心硬件設(shè)備的管理,將一臺(tái)真實(shí)的計(jì)算機(jī)抽象為相互隔離的多個(gè)虛擬機(jī)。從虛擬機(jī)時(shí)代到容器時(shí)代,讓我們擺脫了運(yùn)行環(huán)境和集群管理的繁雜工作,將虛擬機(jī)的運(yùn)行環(huán)境抽象為容器。而 serverless 的到來,讓我們不再關(guān)心運(yùn)行環(huán)境和服務(wù)器資源的調(diào)配。


          下一篇,讓我們更加深入地了解 Serverless。明兒見~


          推薦閱讀:

          網(wǎng)頁如何喚起應(yīng)用程序?

          Vue.use 經(jīng)歷了什么?

          前端配置化平臺(tái)——快速搞定活動(dòng)頁面

          從理解 React 框架開始,開啟金三銀四面試之旅。

          前端典型面試題:為什么 React 選擇使用 JSX ?

          尤雨溪 3 天 10 更的 Vite 究竟有什么魔力?


          點(diǎn)個(gè)“在看”和“”吧,

          畢竟我是要成為前端網(wǎng)紅的人。

          瀏覽 90
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色成人在线看 | 午夜精品久久久久蜜桃 | 黄色在线小视频 | 日本一级片免费观看 | 操B在线观看视频 |