1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        1分鐘了解,什么是Serverless | 年底了,免費(fèi)送書福利

        共 3521字,需瀏覽 8分鐘

         ·

        2021-12-16 15:14

        微服務(wù)是目前互聯(lián)網(wǎng)公司最流行的架構(gòu),其生態(tài)、設(shè)計(jì)方法、開發(fā)框架、基礎(chǔ)設(shè)施管理工具等,可以快速幫助企業(yè)順利實(shí)施微服務(wù)架構(gòu)。然而,微服架構(gòu)就完美了嗎?


        微服務(wù)仍面臨著哪些挑戰(zhàn)?


        1. 微服務(wù)相關(guān)基礎(chǔ)設(shè)施成本仍很高。微服務(wù)的開發(fā)引入治理組件,增加了開發(fā)的難度,以容器為基礎(chǔ)的微服務(wù)基礎(chǔ)設(shè)施在彈性等方面仍有不足,而微服務(wù)增加帶來的基礎(chǔ)設(shè)施成本也是微服務(wù)實(shí)施的新挑戰(zhàn)。
        2.微服務(wù)的粒度仍然比較粗。當(dāng)前微服務(wù)劃分主要遵循單一職責(zé)的原則,通常會(huì)將一個(gè)子業(yè)務(wù)抽象成一個(gè)微服務(wù),例如:用戶服務(wù),支付服務(wù),訂單服務(wù)等。但是,同一個(gè)子業(yè)務(wù)的不同接口,QPS差距較大,對擴(kuò)展的訴求完全不同,變更頻率也可能不同。進(jìn)一步拆分可以帶來擴(kuò)展性等便利,但整個(gè)微服務(wù)的數(shù)量也會(huì)提升一個(gè)量級,給基礎(chǔ)設(shè)施的管理帶來負(fù)擔(dān)。
        3.微服務(wù)開發(fā)仍有較高門檻。如圖所示,Java微服務(wù)開發(fā)的軟件棧要求開發(fā)者掌握以下技能。5064241185e223396558f4614aff88c4.webpJava微服務(wù)開發(fā)技術(shù)棧
        從復(fù)雜的SpringMVC演進(jìn)到SpringBoot,框架更加輕量化。但在其他方面(并發(fā)處理等)并沒有什么改變,同時(shí)在微服務(wù)治理、分布式事務(wù)等方面的開發(fā)難度反而增加了。
        4.微服務(wù)基礎(chǔ)設(shè)施管理、高可用和彈性仍然很難保證。容器和Kubernetes工具的使用,提升了應(yīng)用部署及基礎(chǔ)設(shè)施運(yùn)維自動(dòng)化的能力,但保證基礎(chǔ)設(shè)施高可用、可擴(kuò)展對運(yùn)維人員的能力要求很高。服務(wù)上云后,基礎(chǔ)設(shè)施團(tuán)隊(duì)可以不用再關(guān)心服務(wù)器、交換機(jī)等硬件的運(yùn)維,但仍然需要關(guān)心虛擬機(jī)的維護(hù),如安全補(bǔ)丁、基礎(chǔ)鏡像的更新升級、擴(kuò)容等。5db25307a353521be96779239ecd43d3.webp基礎(chǔ)設(shè)施團(tuán)隊(duì)依然需要管理虛擬機(jī)
        運(yùn)維人員需要借助云側(cè)的工具來保證基礎(chǔ)設(shè)施的高可用,難度仍然存在,而且很依賴運(yùn)維人員的能力
        5.基礎(chǔ)設(shè)施的成本依然較高。
        微服務(wù)會(huì)增加基礎(chǔ)設(shè)施的成本。每個(gè)微服務(wù)都要考慮冗余,保證高可用。隨著微服務(wù)數(shù)量的增加,基礎(chǔ)設(shè)施的數(shù)量會(huì)呈現(xiàn)指數(shù)級增長,但云服務(wù)的基礎(chǔ)設(shè)施收費(fèi)方式?jīng)]有改變,依然采用按照資源大小及以小時(shí)為單位(或包年)計(jì)費(fèi)的方式。是否存在一種新的基礎(chǔ)設(shè)施服務(wù),能按照“用多少付多少”的方式收費(fèi),從而降低基礎(chǔ)設(shè)施成本?
        微服務(wù)面臨的這些新問題,是否有解決方案呢?或許,Serverless是潛在方案之一。

        什么是Serverless?


        2012年,時(shí)任Iron.io的副總裁Ken提出了Serverless的概念,他認(rèn)為未來的軟件和應(yīng)用都應(yīng)該是Serverless的,而不應(yīng)該云計(jì)算興起了,世界仍然圍繞著服務(wù)器運(yùn)轉(zhuǎn)。
        2014年,AWS推出Lambda函數(shù)計(jì)算服務(wù),提供簡化的編程模型及函數(shù)的運(yùn)行環(huán)境全托管。2015年,AWS推出API Gateway(全托管的網(wǎng)關(guān)服務(wù)),正式將Serverless這個(gè)概念推廣開來。a600b14064ac2ea58df05c3e8f0271fd.webpAWS Serverless全景圖
        Google在2011年收購了Firebase,2016年將其作為mBaaS(移動(dòng)后端即服務(wù))的Serverless解決方案推出。2b744c5fca21d2b45039e5c93c4bee6c.webpGoogle?Serverless全景圖
        國內(nèi),華為也不甘落后,結(jié)合多年在Serverless領(lǐng)域的技術(shù)積累,推出了Serverless行業(yè)解決方案,2021年,云函數(shù)、云數(shù)據(jù)庫等核心構(gòu)建類服務(wù)已面向全球HMS生態(tài)的開發(fā)者開放。50904311a73546d7bb10d837e3adec1b.webpHUAWEI AppGallery Connect Serverless全景圖
        那么,Serverless到底是什么呢?維基百科是這么說的:(1)云服務(wù)商按需分配計(jì)算機(jī)資源,開發(fā)者無須運(yùn)維這些資源,不用關(guān)心容器、虛擬機(jī)或物理服務(wù)器的容量規(guī)劃、配置、管理、維護(hù)、操作和擴(kuò)展;(2)Serverless計(jì)算無狀態(tài),可在短時(shí)間內(nèi)完成計(jì)算,其結(jié)果保存在外部存儲中;(3)當(dāng)不使用某個(gè)應(yīng)用時(shí),不向其分配計(jì)算資源;(4)計(jì)費(fèi)基于應(yīng)用消耗的實(shí)際資源來度量;
        Serverless并不意味著不需要服務(wù)器來托管和運(yùn)行代碼,也不意味著不再需要運(yùn)維工程師。Serverless是指開發(fā)者不再需要將時(shí)間和資源花費(fèi)在服務(wù)器調(diào)配、維護(hù)、更新、擴(kuò)展和容量規(guī)劃上,這些任務(wù)都由Serverless平臺處理,開發(fā)者只需要專注于編寫應(yīng)用程序的業(yè)務(wù)邏輯,運(yùn)維工程師能夠?qū)⒕Ψ旁跇I(yè)務(wù)運(yùn)維上。

        目前,Serverless服務(wù)主要分為FaaS和BaaS:(1)函數(shù)即服務(wù)(Function as a Service,F(xiàn)aaS:開發(fā)者實(shí)現(xiàn)的服務(wù)器端應(yīng)用邏輯(微服務(wù)甚至粒度更小的服務(wù))以事件驅(qū)動(dòng)的方式運(yùn)行在無狀態(tài)的臨時(shí)容器中,這些容器和計(jì)算資源完全由云提供商管理。開發(fā)者只需關(guān)心和維護(hù)業(yè)務(wù)層面的正常運(yùn)行,其他部分如運(yùn)行時(shí)、容器、操作系統(tǒng)、硬件等,都由云提供商來解決92e2b360852c9c29a7a68526a0114cdc.webpFaaS與IaaS、PaaS的區(qū)別
        (2)后端即服務(wù)(Backend as a Service,BaaS:基于API的三方服務(wù),用來取代應(yīng)用程序中功能的核心子集。由于這些API是作為自動(dòng)擴(kuò)展和透明運(yùn)行的服務(wù)提供的,因此從開發(fā)者和運(yùn)維工程師的角度來看似乎是無服務(wù)器的。非計(jì)算類的全托管服務(wù),如消息隊(duì)列等中間件、NoSQL數(shù)據(jù)庫服務(wù)、身份驗(yàn)證服務(wù)等,都可以認(rèn)為是BaaS服務(wù)。
        Serverless有哪些關(guān)鍵技術(shù)呢?
        下圖是典型的Serverless系統(tǒng)架構(gòu),從中可以看到一些Serverless的常用概念。f84be6a27297fdc832d74a521fef4a62.webp典型的Serverless架構(gòu)(1)事件源(Event Sources):事件的生產(chǎn)者,可能是HTTP請求、消息隊(duì)列的事件等,通過同步或異步的方式去觸發(fā)函數(shù);
        (2)觸發(fā)器(Trigger):函數(shù)的REST呈現(xiàn),通常是RESTful URL。當(dāng)事件源將事件推/拉到觸發(fā)器時(shí),F(xiàn)aaS平臺會(huì)查找觸發(fā)器和函數(shù)的映射關(guān)系,從而啟動(dòng)該函數(shù)實(shí)例,以響應(yīng)被推/拉到觸發(fā)器的事件;
        (3)FaaS控制器(FaaS Controller):FaaS平臺的核心組件,管理函數(shù)的生命周期、擴(kuò)容和縮容等??梢詫⒑瘮?shù)實(shí)例縮容為0,同時(shí)在收到對函數(shù)的請求時(shí)迅速啟動(dòng)新的函數(shù)實(shí)例;
        (4)函數(shù)實(shí)例(Function Instance):執(zhí)行函數(shù)的環(huán)境,包含函數(shù)代碼、函數(shù)運(yùn)行環(huán)境(如JRE、Node.js)、上下文信息(如函數(shù)運(yùn)行的配置,通常以環(huán)境變量注入)。一個(gè)函數(shù)實(shí)例可以同時(shí)處理1個(gè)或N個(gè)事件(取決于平臺的具體實(shí)現(xiàn))。函數(shù)實(shí)例通常內(nèi)置可觀測性,將日志和監(jiān)控信息上報(bào)到對應(yīng)的日志和監(jiān)控服務(wù)中;
        (5)函數(shù)編程模型(Programming Model):通常表現(xiàn)為函數(shù)的編碼規(guī)范,如簽名、入口的方法名等。函數(shù)的編程模型一般會(huì)提供同步/異步/異常處理機(jī)制,開發(fā)者只需要處理輸入(事件、上下文),并返回結(jié)果即可;
        (6)BaaS平臺:函數(shù)通常是無狀態(tài)的,其狀態(tài)一般存儲在BaaS服務(wù)中,如NoSQL數(shù)據(jù)庫等。函數(shù)可以基于REST API或BaaS服務(wù)提供的SDK來訪問BaaS服務(wù),而不用關(guān)心這些服務(wù)的擴(kuò)容和縮容問題;
        (7)函數(shù)編程模型:提供友好的編程模型,使開發(fā)者可以聚焦于業(yè)務(wù)邏輯,為開發(fā)者屏蔽編碼中最困難的部分,如并發(fā)編程等。同時(shí),需要原生支持函數(shù)的編排,盡量減少開發(fā)者的學(xué)習(xí)成本;
        (8)快速擴(kuò)容:傳統(tǒng)的基礎(chǔ)設(shè)施通常都是從1到n擴(kuò)容的,而Serverless平臺需要支持從0到n擴(kuò)容,以更快的擴(kuò)容速度應(yīng)對流量的變化,Serverless平臺可達(dá)到秒級甚至毫秒級的擴(kuò)容速度;
        (9)快速啟動(dòng):函數(shù)被請求時(shí)才會(huì)創(chuàng)建實(shí)例,該準(zhǔn)備過程會(huì)消耗較長的時(shí)間,影響函數(shù)的啟動(dòng)性能。同理,對于新到達(dá)的并發(fā)請求,會(huì)產(chǎn)生并發(fā)的冷啟動(dòng)問題。Serverless平臺需要降低冷啟動(dòng)時(shí)延,以滿足應(yīng)用對性能的訴求;
        (10)高效連接:函數(shù)需要將狀態(tài)或數(shù)據(jù)存放在后端BaaS服務(wù)中,而對接這些服務(wù)往往需要繁雜的API,Serverless平臺的函數(shù)實(shí)例生命周期通常較短,對于如RDS數(shù)據(jù)庫等后端服務(wù)無法保持長連接,為此,Serverless平臺需要為函數(shù)提供完備、高效、可靠的BaaS服務(wù)連接/訪問接口;
        (11)安全隔離:Serverless是邏輯多租的服務(wù),租戶的函數(shù)代碼可能運(yùn)行在同一臺服務(wù)器上,所以,通常Serverless平臺會(huì)采用安全容器的方式,引入輕量級虛擬化技術(shù)來保證隔離性,但這同時(shí)會(huì)引入額外的性能(啟動(dòng))和資源開銷等問題。
        太多技術(shù)細(xì)節(jié)了,1分鐘可能講不完。
        要想了解更多Serverless技術(shù)細(xì)節(jié)的,歡迎購買《Serverless核心技術(shù)與實(shí)踐》一書。
        如何購買,有什么福利?
        限時(shí)五五折,包郵。

        京東限時(shí)五五折,49元包郵

        畫外音:看京東評論,就知道書有多優(yōu)秀了。


        免費(fèi)抽獎(jiǎng)送出8本,如何抽獎(jiǎng)

        留言評論想看此書的原因。

        一人一樓,5, 10, 15, 20...樓依次中獎(jiǎng)。

        中獎(jiǎng)?wù)呶視?huì)回復(fù)你的評論與你聯(lián)系。

        抽獎(jiǎng)截止時(shí)間:12.20 12:00


        這1分鐘,希望大家有收獲,希望大家中獎(jiǎng)。

        瀏覽 87
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            午夜精品一区二区三区在线成人 | 欧美男男激情 | 99国产精品久久久久久久 | 俺 去 也 最 新 网 址 | 欧美黑人操B | 96精品秘 无码一区二区 | 免费一级淫片AAA | 在线黄色AV网站 | 亚洲欧美一卡 | 免费无遮挡无码永久在线观看视频 |