一、Serverless簡介云計算的不斷發(fā)展,涌現(xiàn)出很多改變傳統(tǒng)IT架構(gòu)和運維方式的新技術(shù),而以虛擬機、容器、微服務(wù)為代表的技術(shù)更是在各個層面不斷提升云服務(wù)的技術(shù)能力,它們將應(yīng)用和環(huán)境中很多通用能力變成了一種服務(wù)。但無論這些技術(shù)應(yīng)用在哪里,幫助企業(yè)“降本增效”是技術(shù)變革永恒的主題。
Serverless架構(gòu)的出現(xiàn),帶來了跨越式的變革。Serverless下主機管理、操作系統(tǒng)管理、基礎(chǔ)軟件的部署運維、資源分配和擴縮容能力全部由云廠商提供,把計算能力做成像水電煤一樣的公共服務(wù),這就意味著基于Serverless服務(wù)構(gòu)建應(yīng)用,開發(fā)者只需要專注在產(chǎn)品代碼上,而無需管理和操作云端服務(wù)運行環(huán)境,計算資源從過去購買“服務(wù)器”轉(zhuǎn)向購買對應(yīng)的“服務(wù)”。
二、Serverless開發(fā)模式
Serverless真正做到了部署應(yīng)用無需涉及基礎(chǔ)設(shè)施的建設(shè),自動構(gòu)建、部署和啟動服務(wù)。以大數(shù)據(jù)應(yīng)用開發(fā)舉例:
在傳統(tǒng)開發(fā)流程中,我們需要先根據(jù)大數(shù)據(jù)實際應(yīng)用從采集,存儲,清洗,關(guān)聯(lián),到分析挖掘全鏈路所涉及的組件列表,完成后端大數(shù)據(jù)平臺一系列組件的安裝部署,再等到大數(shù)據(jù)應(yīng)用完成后,進行應(yīng)用功能調(diào)試、應(yīng)用+平臺性能調(diào)優(yōu),最終測試、上線后,還需要大數(shù)據(jù)平臺運維工程師對整個大數(shù)據(jù)平臺進行維護。整個過程涉及多個角色,而本身大數(shù)據(jù)平臺的運維和調(diào)優(yōu)具備一定的技術(shù)門檻,調(diào)優(yōu)效果完全取決于自有員工的能力,而一個好的調(diào)優(yōu)人員,就像一個好的數(shù)據(jù)庫DBA一樣,需要長期項目實踐積累,屬于關(guān)鍵稀缺人才。
基于Serverless,所有事情變得非常簡單了,云廠商以服務(wù)的形式對外提供大數(shù)據(jù)組件能力,以往復(fù)雜的平臺搭建過程得到完全解放,只需要寫完大數(shù)據(jù)應(yīng)用程序后部署到Serverless服務(wù)即可,后續(xù)也不需要關(guān)心任何服務(wù)器以及大數(shù)據(jù)平臺組件的運維、調(diào)優(yōu)操作。云廠商在對外提供服務(wù)的同時,背后都有一個完備的團隊7*24提供專業(yè)的支撐。因此只需要大數(shù)據(jù)應(yīng)用開發(fā)工程師即可完成所有工作。當(dāng)然,如果具備一定的大數(shù)據(jù)平臺能力,對大數(shù)據(jù)應(yīng)用側(cè)的性能調(diào)優(yōu)也是非常有利的,往往可以事半功倍。
三、Serverless帶來的價值
1、降低運營復(fù)雜度
Serverless架構(gòu)使軟件應(yīng)用和服務(wù)器實現(xiàn)了解耦,服務(wù)器不再是用戶開發(fā)和運營應(yīng)用的焦點。在應(yīng)用上線前,用戶無須再提前規(guī)劃服務(wù)器的數(shù)量和規(guī)格。在運維過程中,用戶無須再持續(xù)監(jiān)控和維護具體服務(wù)器的狀態(tài),只需要關(guān)心應(yīng)用的整體狀態(tài)。應(yīng)用運營的整體復(fù)雜度下降,用戶的關(guān)注點可以更多地放在軟件應(yīng)用的體驗、改進以及其他能帶來更高業(yè)務(wù)價值的地方。
2、降低運營成本
服務(wù)器不再是用戶關(guān)注的受管資源,運營的復(fù)雜度下降,應(yīng)用運營所需要投入的時間和人力大大降低。在最好的情況下,可以做到少數(shù)幾個應(yīng)用管理員即可管理一個處理海量請求的應(yīng)用系統(tǒng)。
3、縮短產(chǎn)品的上市時間
在Serverless架構(gòu)下,應(yīng)用的功能被解構(gòu)成若干個細顆粒度的無狀態(tài)函數(shù),功能與功能之間的邊界變得更加清晰,功能模塊之間的耦合度大大減小。這使得軟件應(yīng)用的開發(fā)效率更高,應(yīng)用開發(fā)的迭代周期更短。
四、Serverless現(xiàn)存問題
對于企業(yè)來說,支持Serverless計算的平臺可以節(jié)省大量時間和成本,釋放基礎(chǔ)設(shè)施相關(guān)員工,轉(zhuǎn)移到開展更有價值的工作,而不是管理基礎(chǔ)設(shè)施。另一方面可以提高敏捷度,更快速地推出新應(yīng)用和新服務(wù),進而提高客戶滿意度。但是任何事情都有兩面性,Serverless并不是完美的,它也存在一些問題:
1、完全依賴于第三方服務(wù)
當(dāng)我們采用某云服務(wù)廠商的Serverless架構(gòu)時,理論上我們就和該服務(wù)供應(yīng)商綁定了,那么我們再將服務(wù)遷到別的云服務(wù)商上就沒有那么容易了。但如果云廠商本身兼容開源,甚至應(yīng)用代碼可以“0”改動遷移,這個問題就迎刃而解了,也就不存在綁定一說了。選擇云廠商Serverless服務(wù)的時候,從產(chǎn)品演進的角度,這也是一個重點需要考慮的點。
2、缺乏調(diào)試和開發(fā)工具
現(xiàn)階段基于Serverless架構(gòu)服務(wù)開發(fā)時,相對比較痛苦的就是功能開發(fā)階段,每次你調(diào)試的時候,你需要一遍又一遍地上傳代碼。而每次上傳的時候,你就好像是在部署服務(wù)器,雖然應(yīng)用部署非常簡單,但并不能總是快速地定位出問題在哪。不過這應(yīng)該也是一個階段性的問題,后續(xù)Serverless周邊工具生態(tài)逐步完善后,相信Serverless下的開發(fā)也會擁有跟本地開發(fā)一致的體驗。
3、語言版本
一般Serverless服務(wù)內(nèi)部針對單組件都是維護一個或幾個主流版本,這個策略完全由云廠商決定,并不會嚴(yán)格緊跟社區(qū)版本。站在我的角度,也并不是版本越高越好,還是對外提供一個長期穩(wěn)定的版本,比如原本是Spark 2.3,當(dāng)Spark 2.4剛面世的時候,就沒有必要馬上跟風(fēng),服務(wù)對外的穩(wěn)定可用才是最關(guān)鍵的。另外,現(xiàn)在基于K8S的自定義鏡像也能很好的解決組件多版本和周邊依賴問題。
五、總結(jié)
一般來說,社會越發(fā)達、越成熟,社會分工就越明確,技術(shù)亦是如此。云計算經(jīng)過這么多年的發(fā)展,逐漸進化到用戶僅需關(guān)注核心業(yè)務(wù)和業(yè)務(wù)運行所需的資源,基礎(chǔ)設(shè)施及平臺統(tǒng)一由云廠商來負責(zé)看護。Serverless架構(gòu)讓我們不需要再操心服務(wù)端的運維,不需要關(guān)心我們不熟悉的領(lǐng)域,只需要專注于業(yè)務(wù)的開發(fā)、專注于產(chǎn)品的實現(xiàn)。我們需要關(guān)心的事情變少了,也意味著我們能做的事情更多了。可以說,隨著Serverless架構(gòu)的興起,真正的云計算時代才算到來了。相信隨著技術(shù)的飛速發(fā)展,Serverless在未來還有無限可能!
數(shù)據(jù)湖探索DLI適用與線下Spark/Hive/Flink上云、日志分析、實時大屏、多源聯(lián)合分析等場景,會SQL就會大數(shù)據(jù)分析,Serverless服務(wù),免運維
華為云618年中云鉅惠,大數(shù)據(jù)+AI專場,DLI數(shù)據(jù)掃描量套餐包50TB,49.9元搶購,包周期新購5折,續(xù)訂7折!購買產(chǎn)品更有V55i-B智慧屏與P40 Pro好禮相送,華為云助力企業(yè)構(gòu)筑全棧大數(shù)據(jù)平臺,為商業(yè)創(chuàng)造無限未來。
關(guān)鍵詞: Serverless架構(gòu)