再升級,阿里云讓Serverless更好地落地
原創【51CTO.com原創稿件】十多年間,云計算一直在進化,從關注基礎設施,到僅需關注業務和所需資源,從高深莫測的技術,到越來越“傻瓜”的使用方法,無疑都指向云計算的根本目的:降本、增效。
為了實現這個目標,云計算涌現出了很多新技術,如容器、微服務等,這些技術都在盡可能地把應用環境中很多通用的部分變成服務,讓用戶使用起來更加簡單。而Serverless就更厲害了,它把服務器管理、操作系統管理、資源分配等組件都外包出去,當作某種可以購買的服務---只要花錢,即刻享用!
Serverless比較官方的解釋是:不代表不需要服務器,而是說:開發者不用過多考慮服務器的問題,計算資源作為服務而不是服務器的概念出現。Serverless與以往架構的不同之處在于,完全由第三方管理,由事件觸發,存在于無狀態(Stateless)、暫存在計算容器內。構建Serverless應用程序意味著開發者可以從繁重的手動資源管理和性能優化中解脫出來,而專注在產品代碼上,真正做到了部署應用,而無須管理和操作云端或本地的服務器,也因此實現了快速交付。同時,就像水、電、煤一樣,Serverless 只為實際產生的資源消耗付費,而無需為閑置的資源買單。至此,Serverless將云計算降本、增效的價值表現的淋漓盡致!
基于此,國內外的各大云廠商 Amazon、阿里云、微軟、Google等都相繼推出了Serverless產品,Serverless也從概念逐步走向落地,在各企業、公司中得到應用。在前不久中國信息通信研究院發布的國內首個《云原生用戶調查報告》中,阿里云 Serverless 產品在國內 Serverless 用戶規模的占比達到 66%,遠超其他云廠商總和,被認為是國內 Serverless 用戶的首選。
阿里云函數計算FC的誕生:豐富的產品積累加實際需求
對于阿里云來說,Serverless 不是一個新概念,其計算、存儲等領域的很多服務都是 Serverless模式。例如阿里云推出的第一個云服務,對象存儲(OSS),就是Serverless 形態的存儲服務。用戶不需要關心數據是如何存儲在底層服務器上,只為實際使用的存儲資源付費。
2017年,基于已經有了較為豐富的Serverless產品積累,和很多事件觸發場景的實際需求,阿里云正式推出了函數計算 FC。
函數計算 FC 提供了完備的后端云服務和開發者工具,如事件總線 EventBridge、Serverless 工作流、開發者框架、命令行工具、Web IDE 等,從開發者體驗出發的Serverless-tools 與 Serverless 應用中心。此外,函數計算 FC 還支持容器鏡像,與容器生態深度融合。
豐富的應用場景服務于內部需求和外部客戶
說到應用,淘寶、天貓、支付寶、釘釘、飛豬、閑魚等等阿里系自己的產品都是函數計算FC的練兵場。“阿里內部有很多的場景,催生出了很多Serverless的需求。”阿里云 Serverless 研發負責人楊皓然(不瞋)告訴51CTO記者。
阿里云 Serverless 研發負責人楊皓然(不瞋)
一個典型場景就是前端全棧場景。比如在一個促銷活動中,會涉及到會員管理、商品推薦等服務,把這些服務組合起來之后,做一個活動頁面推廣出去。這種情況下,前端如果沒有Serverless,那些聯合后端的服務,都需要用后端來做,研發效率比較低。而有了Serverless之后,BFF(backends for frontends,服務于前端的后端)的架構可以把后端的接口按照前端的業務邏輯組合起來,起到了業務聚合的關鍵作用,通過openfeign、restTemplate調用基礎服務來獲取數據,將獲取到的數據進行組裝返回結果對象,解決了業務場景問題。
另外一個場景是電商業務,由于天然的峰值特性,服務器資源要按照峰值需求預估,而在波谷時服務器利用率明顯下降而導致浪費。 Serverless 計算平臺可以自動安排合理的計算資源滿足業務需求,輕松應對請求的波峰與波谷。
還有一些偏數據處理的場景,如離線音視頻的批量處理,也比較適合用Serverless。
除了自身產品的應用,阿里Serverless產品還幫助微博、石墨文檔、跟誰學、Timing、聯合利華等數萬家企業客戶成功落地 Serverless,覆蓋前端全棧、小程序、新零售、游戲互娛、在線教育等全行業應用場景。
在微博的應用中,函數計算 FC 支持微博個性化圖片處理,達到百毫秒極致彈性,日處理數十億次請求,綜合成本下降 35%。在線教育平臺的應用中,SAE 支撐了Timing 700 萬用戶的在線學習,零改造微服務架構 Serverless 化,計算成本下降 30%。在微服務的應用場景中,百富旅行通過使用Serverless應用引擎,把傳統的微服務直接遷移到了阿里云Serverless應用引擎平臺上,大大提升了人效(只需一位運維人員),實現了30%-40% 的資源節省。
幫助用戶落地Serverless
縱然有很多優勢,但不可否認的是Serverless比較高的門檻,如遷移成本。
首先函數計算FC產品本身的限制比較多,比如冷啟動等一些技術問題。“這是可以解決的,而且我們正在不斷的去減少這個限制。”不瞋表示。
第二就是函數計算FC的工具鏈。如果用戶使用Serverless,其開發、運維流程跟原來的VM、容器完全不同,比如打包的方式、運維部署的工具和習慣等等。還有一些用戶擔心使用Serverless之后會被廠商綁定,這些割裂的開發運維體驗也是遷移的巨大障礙。
以上兩個問題也正是阿里Serverless努力的方向。
Serverless Devs:云原生全生命周期管理平臺
前些時候,阿里正式宣布開源首個Serverless開發者平臺:Serverless Devs,目標直指幫助開發者實現一鍵體驗多云產品,極速部署 Serverless 項目,這也是業內首個支持主流 Serverless 服務/框架的云原生全生命周期管理的平臺。
“Serverless Devs在我們內部是一個戰略級產品,因為我們就是要解決工具鏈上的問題。”不瞋這樣評價Serverless Devs。“我們在做產品之前,必須要先自己回答,他到底給用戶什么價值,有沒有一些獨特的東西。”
Serverless Devs最本質的出發點還是希望給用戶一致的體驗。無論用戶使用的是什么樣的云平臺,或是開源的k8s,無論是Node.js的應用,還是java 的應用,或者Python的應用,Serverless Devs的目標都是給他一個統一的Devops流程。這也是為了減少Serverless所謂的Vendor lock-in(廠商綁定問題)。
其次要給用戶的是一個全流程的,閉環的體驗。比如用戶在自己最熟悉的IDE中寫java 代碼或者Node.js代碼,之后做測試、構建、部署到不同的云平臺或者容器上,也包括灰度發布、金絲雀發布,及后期的監控。Serverless Devs希望給用戶提供一個全生命周期的完整環節的工具。
第三,必須開源開放,這也符合阿里“三位一體”的原則。
Serverless Devs 包含 Serverless Devs Tool (Serverless 開發者工具)和 Serverless Devs App Store(Serverless 應用中心)。Serverless Devs Tool 是一款可以讓 Serverless 開發者的開發和運維效率翻倍的工具。通過使用該工具,開發者可以更簡單、更快速的進行應用創建、項目開發、測試、發布部署等,實現項目的全生命周期管理。Serverless Devs App Store 是一個集 Serverless 應用在線搜索,一鍵部署以及資源可視化編輯于一體的應用中心產品。應用中心擁有海量的生產級項目模板,案例模板,開發者可以自由選擇,并將項目一鍵部署到指定的云平臺上。
后記
2020 云棲大會期間,阿里巴巴正式成立云原生技術委員會,阿里巴巴高級研究員蔣江偉擔任委員會負責人,他表示,委員會將大力推動阿里經濟體全面云原生化,并沉淀阿里巴巴 10 多年的云原生實踐,對外賦能數百萬家企業進行云原生改造,提升 30% 研發效率的同時降低 30% IT 成本,幫助客戶邁入數字原生時代。此次委員會的成立,也意味著阿里已經將云原生升級為新的技術戰略方向。
從領先到普惠,阿里云正在幫助Serverless 更快、更好的落地,幫助用戶以更高效、更經濟的方式進行轉型,為企業客戶帶來更大的價值。
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】