<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>

          6歲!是時候重新認識下Serverless了 | 云原生趣談

          共 5585字,需瀏覽 12分鐘

           ·

          2020-11-21 13:38


          一、背景



          Serverless 概念從2012年開始提出,真正推出相關(guān)云產(chǎn)品是2014年AWS推出Lambda。如果我們將 Serverless 比作一個嬰兒,那么它已經(jīng)6歲了。


          雖然業(yè)界對Serverless尚無一致認可的定義,但是我相信大部分開發(fā)者在聽到 Serverless時,會聯(lián)想到Lambda,并且冒出“函數(shù)”、“按需(調(diào)用次數(shù))收費”、“事件驅(qū)動”等關(guān)鍵詞。確實當年剛剛誕生的Serverless就像下面可愛的“紫薯人”,紫色充滿神秘感(當年剛推出的時候絕對是黑科技),讓人印象深刻。


          剛剛出生的Serverless


          AWS的巨大影響力以及本身攜帶的一身黑科技,確實讓人記住了 Serverless,但是也正因為誕生的時候太印象深刻,以至于現(xiàn)在提到已經(jīng)6歲的 Serverless,很多人的印象還是停留在Serverless=Lambda或者Serverless=FC(Function Compute),這不得不說是某種遺憾。


          現(xiàn)在的Serverless


          今天企業(yè)都在全面數(shù)字化轉(zhuǎn)型,整個技術(shù)架構(gòu)體系都渴望依托云原生來獲取巨大技術(shù)紅利,Serverless從誕生的第一天起就是云原生的,所以我們有必要再系統(tǒng)的認識一下Serverless的理念以及這些年誕生的相關(guān)產(chǎn)品,相信不管你是前端、后端、架構(gòu)師、SRE、CTO都會有所收獲,并且在未來能更好的發(fā)揮Serverless的技術(shù)價值助力商業(yè)成功。



          二、定義



          業(yè)界一直在嘗試定義Serverless,比如CNCF給出的定義是:NoOps 和Pay as You Run,還有伯克利說 Serverless=FaaS+BaaS。但是我想說,Serverless 其實無需再去定義,他本身就已經(jīng)非常清晰明確:“Server+less”,他是一個理念,核心思想就是你不再需要關(guān)注 Server,作為對比的是 IaaS 時代,購買服務(wù)器,安裝各種工具,再在上面開發(fā)自己的業(yè)務(wù)。


          Server不會消失,而是讓一般的開發(fā)者不需要再關(guān)注 Server,這意味著【智能彈性】、【快速交付】、【更低成本】,這也是 Serverless 相關(guān)產(chǎn)品的典型特性。


          所以沒必要再去給 Serverless 做什么定義,他本身已經(jīng)描述的很清晰。我們拋開概念,具體看看在各個具體技術(shù)領(lǐng)域的產(chǎn)品,相信你會有更直觀的認識。



          三、PaaS在 Serverless 時代的重生


          PaaS 本身的概念挺大,廣義的說它處于IaaS和SaaS之間,我們先從一個具體的產(chǎn)品說起:GAE(Google App Engine)。2006年AWS推出了IaaS的云計算,Google認為云計算不應(yīng)該是IaaS這樣的底層形態(tài),所以在2008年推出了自己的云計算代表產(chǎn)品GAE(關(guān)于這里的發(fā)展緣由,可以參考張磊的這篇文章:容器十年 ,一部軟件交付編年史)。


          初推出的GAE,也像Lambda,讓人眼前一亮,但是很快開發(fā)者就發(fā)現(xiàn)它的限制非常多,用今天的話說就是典型的“我不要你覺得,我要我覺得”,最后的結(jié)果就是大家都紛紛回到了IaaS的懷抱。



          到后來的PaaS產(chǎn)品比如Cloud Foundry,這類PaaS產(chǎn)品相對更實際一些,底層IaaS還是云廠商提供,上層提供一套應(yīng)用管理生態(tài),背后的思想還是不希望開發(fā)者通過IaaS這么底層的方式去使用云計算,而是從PaaS開始,不過它也不是Serverless化的,你還是要考慮服務(wù)器的維護、更新、擴展和容量規(guī)劃等等


          • SAE(Serverless App?Engine)


          到了現(xiàn)在,隨著容器技術(shù)的成熟,以及Serverless理念的進一步發(fā)展,PaaS和Serverless理念也開始融合,這樣的產(chǎn)品既有PaaS為代表的【快速交付】,又有Serverless的特點【智能彈性】、【更低成本】,典型的產(chǎn)品代表就是阿里云在2019年推出的產(chǎn)品:SAE(Serverless App Engine)。


          首先,它是一個PaaS,再具體一點說,是一個應(yīng)用PaaS。這意味著大部分開發(fā)者使用起來都會非常自然,因為里面的概念你會非常熟悉,比如應(yīng)用發(fā)布、重啟、灰度、環(huán)境變量、配置管理等等。


          同時,它也是Serverless化的。這意味著你不必再關(guān)心服務(wù)器,不用再申請機器,維護服務(wù)器,裝一堆工具,而是按需使用,按分鐘計費,結(jié)合強大的彈性能力(定時彈性、指標彈性)實現(xiàn)極致成本。


          最后,得益于Docker為代表的容器技術(shù)的發(fā)展,SAE解決了經(jīng)典PaaS的突出問題(各種限制和強綁定),依托于容器鏡像,在上面可以跑任意的語言的應(yīng)用


          看到這里,我相信大部分開發(fā)者對于 PaaS 和 Serverless 結(jié)合的產(chǎn)品已經(jīng)有了一個輪廓,在中國云原生用戶調(diào)研報告中(2020年) ,這種形態(tài)的Serverless產(chǎn)品開始被越來越多的開發(fā)者采用。




          在這個基礎(chǔ)上,還有另外一個話題值得再討論一下,那就是微服務(wù)和 Serverless。


          • 微服務(wù)和 Serverless


          現(xiàn)在業(yè)界關(guān)于微服務(wù)和 Serverless,會有部分這樣的認知:認為當前云計算典型代表技術(shù)是微服務(wù),下一代的代表技術(shù)是 Serverless,這會讓你 Serverless 比微服務(wù)要先進,甚至?xí)X得未來有了 Serverless 就沒有微服務(wù)了,類似下面這張圖:



          個人認為產(chǎn)生這一認知還是因為將 Serverless 的理念具象化到函數(shù)計算(FaaS)這樣的產(chǎn)品。現(xiàn)在我們聊到微服務(wù),會想到背后的技術(shù)框架,比如Spring ?Cloud、Dubbo,但是其實微服務(wù)這個詞已經(jīng)遠遠超出了純技術(shù)框架的范疇,他背后也有核心的支撐思想,包括:


          1. 微服務(wù)雖然一定程度上增加了技術(shù)復(fù)雜度,但是在一定規(guī)模下他會降低系統(tǒng)復(fù)雜度和組織復(fù)雜度。


          2. 現(xiàn)代業(yè)務(wù)系統(tǒng)越來越復(fù)雜,很多業(yè)務(wù)系統(tǒng)會基于領(lǐng)域驅(qū)動設(shè)計(DDD)設(shè)計,微服務(wù)其實是DDD背后的支撐技術(shù)。



          單體、微服務(wù)和復(fù)雜度


          所以如果到了Serverless時代就沒法用微服務(wù),我相信很多開發(fā)者會覺得不知所措,或者會“抵觸未來”,因為他們會覺得有人給我描繪了一個未來,但是完全不知道怎么走過去。


          拋開各種具體的技術(shù)實現(xiàn),回到背后的理念,Serverless代表的是一種無需關(guān)注服務(wù)器,降低使用云計算服務(wù)的理念,所以它和微服務(wù)其實不沖突,完全可以共存。在阿里云的SAE中,集成了微服務(wù)的能力(依托于阿里云產(chǎn)品MSE),這意味著:


          1. 部署在SAE這類Serverless平臺上的應(yīng)用,完全可以繼續(xù)使用微服務(wù)開發(fā),不需要經(jīng)過任何改造。


          2. 在SAE上甚至提供了很多微服務(wù)能力增強,包括了注冊中心托管、服務(wù)治理等等,進一步降低開發(fā)者使用微服務(wù)的門檻和負擔。



          所以在Serverless類的PaaS產(chǎn)品上,Serverless和微服務(wù)不再是對立的,開發(fā)者完全可以繼續(xù)使用微服務(wù)技術(shù)開發(fā),同時也可以享受Serverless理念所帶來的【智能彈性】、【更低成本】等。


          四、函數(shù)計算FC



          講完Serverless Application(應(yīng)用),我們再來看看Serverless Function(函數(shù)),F(xiàn)C作為”根正苗紅“的Serverless產(chǎn)品,相信大家都對他不陌生,經(jīng)過這么些年的發(fā)展,它已經(jīng)在前端Serverless、多媒體處理、AI、事件類的場景(云產(chǎn)品事件、數(shù)據(jù)庫變更事件等等)、物聯(lián)網(wǎng)消息等場景得到了很好的應(yīng)用,甚至也有越來越多的公司將業(yè)務(wù)完全構(gòu)建在FC之上,比如:世紀聯(lián)華的 Serverless 實踐。


          另外針對早期的很多技術(shù)限制,現(xiàn)在也已經(jīng)有了解決方案:


          1. 早期大多數(shù)的函數(shù)計算產(chǎn)品都對磁盤大小、代碼包大小、運行時長、內(nèi)存規(guī)格等有限制,阿里云函數(shù)計算推出了性能實例基本解決了這些限制。


          2. 針對冷啟動問題,可以使用預(yù)留性能實例解決。


          下面我們就具體介紹部分使用FC的典型的場景


          • 前端Serverless

          前端經(jīng)過了Ajax、Nodejs、React等技術(shù)迭代后,已經(jīng)形成了相對成熟的技術(shù)體系,特別是Nodejs,使前端和服務(wù)端產(chǎn)生了聯(lián)系。


          前端和后端的分工發(fā)揮了各個的優(yōu)點,但是在協(xié)作的過程中也一直存在一個問題,后端同學(xué)通常是面向領(lǐng)域和服務(wù)提供接口,但是前端是面向用戶具體的數(shù)據(jù)接口,有時候一個簡單的需求會因為兩邊的定義和聯(lián)調(diào)搞半天。所以也誕生了BFF(Backends For Frontends)這樣一層,誰使用誰開發(fā),專門解決領(lǐng)域模型 - UI 模型的轉(zhuǎn)換。



          理想很美好,現(xiàn)實也很骨干,如果前端同學(xué)去做BFF這一層,發(fā)現(xiàn)要學(xué)習(xí)后端的DevOps、高可用、容量規(guī)劃等等,這些其實是前端同學(xué)不想關(guān)心的,這種訴求在Serverless時代得到了很好的解決,由BFF變?yōu)榱?/span>SFF(Serverless For Frontend),讓前端同學(xué)只要寫幾個 Function,其他都交給Serverless平臺


          類似的還有服務(wù)端渲染?SSR(Server Side Rendering),本來前后端分工后,后端只需要寫接口,前端負責渲染,但是在SEO友好以及快速首屏渲染等需求背景下,有時候會用到服務(wù)端渲染的方案,同樣,使用Serverless 前端同學(xué)又可以愉快的玩耍了。


          其實現(xiàn)在很多偏前端產(chǎn)品里面(比如各類小程序以及語雀等產(chǎn)品),前端同學(xué)會全棧完成整體開發(fā),越來越多的會用到Serverless相關(guān)技術(shù)


          當然,要用好Serverless,需要完整的生態(tài),包括相關(guān)的框架,運行時,工具鏈,配置規(guī)范等等,這方面可以參考阿里 Midway


          • 多媒體處理

          現(xiàn)在在線教育、直播、短視頻等等行業(yè)都蓬勃發(fā)展,也催生了很多視頻需求,包括視頻的處理,包括視頻剪輯、切分、組合、轉(zhuǎn)碼、分辨率調(diào)整、客戶端適配等等,典型場景的比如:


          • 每周五定期產(chǎn)生幾百個 4G 以上的 1080P 大視頻, 但是希望當天幾個小時后全部處理完

          • 甚至您有更高級的自定義處理需求,比如視頻轉(zhuǎn)碼完成后, 需要記錄轉(zhuǎn)碼詳情到數(shù)據(jù)庫, 或者在轉(zhuǎn)碼完成后, 自動將熱度很高的視頻預(yù)熱到 CDN 上, 從而緩解源站壓力。


          這些訴求在Serverfull的場景下,你可能需要搭建一套復(fù)雜的系統(tǒng)來支撐,但是如果使用FC那么你會發(fā)現(xiàn)一切都變得那么簡單。


          • AI Serverless

          AI Model Serving 是函數(shù)計算一個比較典型的應(yīng)用場景。數(shù)據(jù)科學(xué)家訓(xùn)練好模型以后往往需要找軟件工程師把模型變成系統(tǒng)或者服務(wù),通常把這個過程稱之為 Model Serving。函數(shù)計算無需運維和彈性伸縮的特性,正好符合數(shù)據(jù)科學(xué)家對高可用分布式系統(tǒng)的訴求。


          五、Serverless容器-ASK



          Kubernetes作為生產(chǎn)級別的容器編排系統(tǒng),現(xiàn)在已經(jīng)成為了容器編排的事實標準,被廣泛用于自動部署,擴展和管理容器化應(yīng)用。它也有相應(yīng)的Serverless Kubernetes產(chǎn)品,比如阿里云的ASK、AWS Fargate等。在這類產(chǎn)品中,你無需購買節(jié)點即可直接部署容器應(yīng)用,無需對集群進行節(jié)點維護和容量規(guī)劃,并且根據(jù)應(yīng)用配置的CPU和內(nèi)存資源量進行按需付費。ASK集群提供完善的 Kubernetes 兼容能力,同時降低了 Kubernetes 使用門檻,讓您更專注于應(yīng)用程序,而不是管理底層基礎(chǔ)設(shè)施。


          如果您是K8S的重度用戶,那么使用Serverless Kubernetes是一個不錯的選擇,典型客戶場景包括:


          • 微博:在30s之內(nèi)可以極速擴容500個應(yīng)用實例,應(yīng)對跨年活動和熱點事件;

          • 曠視科技:基于ASK開發(fā)智能、免運維的AI應(yīng)用平臺;

          • 趣頭條:基于ASK構(gòu)建Serverless大數(shù)據(jù)計算平臺。


          六、BaaS



          上面提到的都是”計算類“Serverless產(chǎn)品,F(xiàn)C、SAE、ASK等,但是我們都知道,開發(fā)過程中不可能只有計算邏輯,還有很多其他依賴,比如存儲、中間件等。BaaS(Backend-as-a-Service,后端即服務(wù))類產(chǎn)品,提供基于API的服務(wù),這些API一般都是按需使用、免運維、自動擴縮容的,所以他們也是Serverless的。


          典型的比如阿里云的OSS,具有與平臺無關(guān)的 RESTful API 接口,可以在任何應(yīng)用、任何時間、任何地點存儲和訪問任意類型的數(shù)據(jù)。


          值得一提還有開發(fā)企業(yè)級應(yīng)用時大家非常熟悉的中間件,以阿里為例當前也在進行4.0技術(shù)架構(gòu)升級,全面BaaS化,統(tǒng)一運維、交付、計費、支持模式,開箱即用,產(chǎn)品化程度持續(xù)提升


          七、總結(jié)



          總結(jié)一下,上面提到的一系列Serverless的產(chǎn)品,覆蓋了前端,后端,容器,BaaS各個領(lǐng)域,包括很多上面沒有提到的(比如CDN)其實也算是Serverless的產(chǎn)品,所以我不認同伯克利的Serverless=BaaS+FaaS的觀點,但是我非常認可他的另一個觀點:“Serverless will dominate cloud computing”。


          Serverless首先是一個理念,不是某一種具體的技術(shù),當未來某一天,99%的云產(chǎn)品都有Serverless化的形態(tài)時,云計算也就Serverless化了,這種變化我認為不是非黑即白的,不是推翻重來這種革命性的,而是全面的降低用戶使用云的成本,全面的提升開發(fā)者的研發(fā)效率。


          作者簡介:陳濤,10年軟件開發(fā)經(jīng)驗,4年創(chuàng)業(yè)經(jīng)歷,曾在淘寶、滴滴任職,關(guān)注云原生、微服務(wù)、Serverless 等技術(shù)領(lǐng)域,積累了在云計算、電商、從0到1創(chuàng)業(yè)等方面的研發(fā)、管理和業(yè)務(wù)經(jīng)驗。目前就職阿里云,在云原生應(yīng)用平臺從事Serverless應(yīng)用引擎(SAE)的設(shè)計和研發(fā)。


          瀏覽 60
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  一二三区久在线视频 | 亚洲最大福利在线综合视频 | 黄色三级片免费网站 | 久久婷婷香蕉 | 国产精品第八页 |