騰訊云推出國內(nèi)首款無服務(wù)器云函數(shù),尤其適用微服務(wù)
4月26日,騰訊云宣布,正式開放國內(nèi)首款FaaS(Function as a Service,函數(shù)即服務(wù)) 產(chǎn)品——無服務(wù)器云函數(shù)(SCF,Serverless Cloud Function)。用戶只需要上傳代碼即可以最簡捷的方式使用騰訊云高效穩(wěn)定的全球基礎(chǔ)設(shè)施,并可實(shí)現(xiàn)毫秒級(jí)的彈性伸縮,同時(shí)該服務(wù)兼具成本低廉的特點(diǎn),代碼按需運(yùn)行,空閑時(shí)不收費(fèi)。經(jīng)測試,按調(diào)用次數(shù)和運(yùn)行時(shí)間付費(fèi),在每個(gè)月請(qǐng)求不足百萬時(shí),使用無服務(wù)器云函數(shù)比使用多臺(tái)云主機(jī)搭建集群的成本減少約70%。
(圖:騰訊云官網(wǎng)已開放無服務(wù)器云函數(shù)的使用申請(qǐng))
無服務(wù)器云函數(shù)(SCF,Serverless Cloud Function)是騰訊云提供的無服務(wù)器(serverless)執(zhí)行環(huán)境,幫助用戶在沒有購買和管理服務(wù)器時(shí)仍能運(yùn)行代碼。用戶只需要使用云平臺(tái)支持的語言編寫核心代碼及設(shè)置代碼運(yùn)行的條件,代碼即可在騰訊云基礎(chǔ)設(shè)施上彈性、安全地運(yùn)行,并可完全管理底層計(jì)算資源,包括服務(wù)器CPU、內(nèi)存、網(wǎng)絡(luò)、代碼部署、彈性伸縮、負(fù)載均衡等服務(wù)。使用無服務(wù)器云函數(shù)將可免除所有運(yùn)維性操作,企業(yè)和開發(fā)者可以更加專注于核心業(yè)務(wù)的開發(fā),實(shí)現(xiàn)快速上線和迭代,把握業(yè)務(wù)發(fā)展的節(jié)奏。
相比云主機(jī),在微服務(wù)架構(gòu)場景下無服務(wù)器云函數(shù)展現(xiàn)了更為明顯的彈性輕便的優(yōu)勢,為中小型開發(fā)者和大型服務(wù)的部分模塊設(shè)計(jì)提供了新的思路和技術(shù)支持。同時(shí)在互聯(lián)網(wǎng)、金融、電商等領(lǐng)域,在移動(dòng)及Web服務(wù)后端、視頻圖像處理、數(shù)據(jù)分析等場景下,如果用戶需要更易用、彈性、低價(jià)的服務(wù),選擇無服務(wù)器云函數(shù)的體驗(yàn)更佳。
騰訊云專家工程師劉穎認(rèn)為,無服務(wù)器云函數(shù)從底層開始變革計(jì)算資源的形態(tài),為軟件架構(gòu)與應(yīng)用服務(wù)部署帶來新的設(shè)計(jì)思路,極大降低云計(jì)算的使用成本,推動(dòng)全行業(yè)的業(yè)務(wù)創(chuàng)新步伐。他表示,騰訊云無服務(wù)器云函數(shù)在QQ、微信等騰訊海量業(yè)務(wù)中運(yùn)行已久,具備深厚的技術(shù)積累和應(yīng)用實(shí)踐,希望通過這項(xiàng)技術(shù)的開放,讓大中小型企業(yè)及全體開發(fā)者均可享受這項(xiàng)技術(shù)。
Serverless:云端新革命
從行業(yè)趨勢看,Serverless是云計(jì)算必經(jīng)的一場革命。
云計(jì)算把傳統(tǒng)的物理服務(wù)器拆解成了更加彈性易用的虛擬機(jī)(VM)和容器(container),虛擬化的對(duì)象從硬件設(shè)備到運(yùn)行環(huán)境,用戶越來越不需要關(guān)心底層基礎(chǔ)設(shè)施。然而,開發(fā)者仍然避免不了花費(fèi)大量精力處理與服務(wù)器相關(guān)的、無差異化的運(yùn)維操作。
過去在設(shè)計(jì)一個(gè)服務(wù)時(shí),開發(fā)者需要預(yù)估使用多少公有云的或私有云的服務(wù)器,用什么形式的持久存儲(chǔ),網(wǎng)絡(luò)帶寬需要多大,如何在服務(wù)請(qǐng)求波動(dòng)時(shí)進(jìn)行服務(wù)伸縮。處理這些復(fù)雜的問題對(duì)業(yè)務(wù)本身并沒有決定性的助力。有研究稱,開發(fā)團(tuán)隊(duì)真正花在開發(fā)業(yè)務(wù)代碼的時(shí)間只有39%,其他時(shí)間都被處理部署變更、突發(fā)事件等占用了。
在這樣的背景下,新的服務(wù)形態(tài)–函數(shù)即服務(wù)(FaaS)于2012年應(yīng)運(yùn)而生。用戶只需要編寫并上傳最核心、最有競爭力的代碼,無需配置或管理服務(wù)器即可運(yùn)行,僅按實(shí)際運(yùn)行收費(fèi)。并且平臺(tái)自動(dòng)管理其他的工作如高可用部署、流量分發(fā)、彈性伸縮等。
無服務(wù)器云函數(shù)在移動(dòng)及Web服務(wù)后端、視頻圖像處理、數(shù)據(jù)分析等場景下,其易用、高效、彈性、按需、低價(jià)等優(yōu)勢都能很好地滿足多樣化的需要。例如,證券公司分析每12小時(shí)的交易內(nèi)容,找出交易量top 5并根據(jù)用戶進(jìn)行個(gè)性化推薦。使用無服務(wù)器云函數(shù)進(jìn)行周期性的統(tǒng)計(jì)任務(wù),并響應(yīng)用戶點(diǎn)擊流,即可輕松實(shí)現(xiàn)隨用隨啟、任務(wù)完成后立即釋放的彈性模塊。
輕量易用:解決上云***步問題
云函數(shù)輕量易用的特點(diǎn)使沒有接觸過云計(jì)算的開發(fā)者也能輕易上手使用。用戶只需要簡單地改造在本地環(huán)境運(yùn)行正常的代碼,并打包上傳至騰訊云平臺(tái),即可以極低的價(jià)格(根據(jù)運(yùn)算時(shí)間不同價(jià)格不定,一般調(diào)用費(fèi)用在4元/百萬次左右)在騰訊云遍布全球的基礎(chǔ)設(shè)施上運(yùn)行代碼。
例如,使用Google的開源圖片壓縮算法Guetzli應(yīng)用于生產(chǎn)系統(tǒng)中幫助壓縮用戶上傳的圖片,只需要完成:***步,將代碼及依賴打包上傳至云函數(shù)平臺(tái);第二步,配置一個(gè)COS Bucket為觸發(fā)器。完成上述兩個(gè)簡單的步驟后,即可在應(yīng)用(如相冊(cè)、頭像應(yīng)用、商品系統(tǒng)等)中完成用戶上傳圖片后自動(dòng)進(jìn)行高保真度的壓縮,對(duì)應(yīng)用后臺(tái)的存儲(chǔ)空間和傳輸?shù)膸捠褂寐噬隙加休^大的優(yōu)化。
微服務(wù):無服務(wù)器云函數(shù)是***搭檔
目前,開發(fā)者正在將目光投向了微服務(wù)(Microservice)這一模塊化、靈活、動(dòng)態(tài)的解決方案,騰訊云無服務(wù)器云函數(shù)是實(shí)現(xiàn)微服務(wù)的***方式。
隨著業(yè)務(wù)的發(fā)展,代碼常呈現(xiàn)出幾何級(jí)別的增長速度。在傳統(tǒng)的單體式服務(wù)(Monolithic)架構(gòu)中,各個(gè)模塊相互強(qiáng)依賴、代碼間耦合度高。對(duì)于開發(fā)和運(yùn)維人員來說,維護(hù)困難、部署耗時(shí)等弊端急需解決。
在這一背景下,尤其在業(yè)務(wù)快速變化時(shí)期,使用微服務(wù)來構(gòu)建業(yè)務(wù)敏捷的IT系統(tǒng)是保持業(yè)務(wù)競爭力非常有效的手段。這樣模塊化的方式使得整個(gè)項(xiàng)目分散成為多個(gè)部分、使用不同語言、由不同業(yè)務(wù)部門的不同開發(fā)團(tuán)隊(duì)獨(dú)立完成,幫助縮短項(xiàng)目的生命周期,加快項(xiàng)目開發(fā)效率。
通常情況下,應(yīng)用邏輯層是無狀態(tài)(stateless)的,緩存、日志、數(shù)據(jù)庫等全部通過外部的獨(dú)立資源來支持,這樣才能保證在業(yè)務(wù)請(qǐng)求突增時(shí),服務(wù)能迅速擴(kuò)展。各個(gè)模塊之間通過RPC(Remote Procedure Call,遠(yuǎn)程過程調(diào)用) 調(diào)用或消息中間件互相通信,這樣每個(gè)模塊都是自治(self-managed)的。
因此,騰訊云無服務(wù)器云函數(shù)是實(shí)現(xiàn)微服務(wù)的***的方法之一,其與生俱來的事件驅(qū)動(dòng)(event-driven)和無狀態(tài)(stateless)屬性正好滿足微服務(wù)架構(gòu)的要求。每個(gè)服務(wù)(即函數(shù))都擁有幾乎***的處理能力,能跟隨業(yè)務(wù)請(qǐng)求的波動(dòng)自動(dòng)完成擴(kuò)容和縮容。如果采用云服務(wù)器構(gòu)建服務(wù)模塊,即使在使用量很低時(shí)(據(jù)測算,數(shù)據(jù)中心服務(wù)器的平均利用率僅在15%左右)仍要支付相應(yīng)的小時(shí)費(fèi)用。而云函數(shù)按實(shí)際使用量收費(fèi),運(yùn)行完畢后立即結(jié)束計(jì)費(fèi),價(jià)格非常容易預(yù)測,沒有請(qǐng)求就沒有成本支出,價(jià)格優(yōu)勢明顯。
整體而言,云函數(shù)可實(shí)現(xiàn)獨(dú)立開發(fā)、簡化測試和加速部署等一系列優(yōu)點(diǎn),可助力企業(yè)在關(guān)鍵時(shí)期快速上線和迭代,為初創(chuàng)期的產(chǎn)品提供了很好的解決方案。
了解、申請(qǐng)騰訊云無服務(wù)器云函數(shù):https://www.qcloud.com/product/scf