天天看點

雲廠商下一塊必争之地就是它了!12 3

雲廠商下一塊必争之地就是它了!12 3

作者 | 太浪

繼容器編排、AI 工程化之後,全球頂級雲廠商都瞄準了這塊無人區。

1

回顧雲計算十幾年的曆史,或者也可以視其為一部“為開發者服務簡史”。

沒有應用程式的計算機,就像一台大型電腦。

自世界上第一台計算機誕生,它就離不開程式的驅動。

随着人類科技的不斷發展,PC 和 Internet 陸續問世,進入全民擁抱資訊化的時代。人們用計算機來辦公和娛樂。于是,計算機程式開始變成了一門生意。程式還逐漸演進為“軟體”,變成了最賺錢的産品之一。

開發一款軟體,需要購買和維護應用(application)、資料(data)、運作庫(runtime)、中間件(middleware)、作業系統(OS)、虛拟化技術(virtualization)、伺服器(servers)、存儲(storage)、網絡(networking)共計 9 種裝置/技術。這要求開發人員既要懂軟體開發,又要懂軟體測試,還要懂軟體運維。

而随着使用者對軟體功能要求的增多,要求開發人員不斷對軟體進行改動,使得軟體變得越來越複雜,計算越來越繁瑣,存儲和處理的資訊越來越多,以至于開發組織越來越難,最終引發“軟體危機”,包括很多軟體項目開發時間大大超期,軟體開發難度越來越大。

人們開始研究、改變軟體開發的技術手段和管理方法。

1968 年,北大西洋公約組織提出“軟體工程”的概念。從 1970 年代起,軟體産生進入了軟體工程時代。每隔 5-10 年,軟體工程就會獲得一次突破性發展。

從最初的機器指令開始,發展到面向對象,再到雲計算,目的都是讓軟體開發變得越來越簡單,越來越能迎合使用者的要求。

雲計算廠商出現後,将其中某些層次整合起來(比如存儲、伺服器、作業系統)打包成一種服務對外出售。企業/開發者隻需直接租用這些服務,像繳水電費一樣即可。

在雲計算發展的初期,雲計算以滿足企業增量 IT 需求為主。但随着雲計算的逐漸滲透,企業逐漸實作全面上雲,從基礎設施上雲、到平台系統上雲、再到業務應用上雲。相對應的,雲計算廠商推出了 IaaS(基礎設施即服務)、 CaaS(容器即服務)、PaaS(平台即服務)、SaaS(軟體即服務)等服務形式。

雲廠商下一塊必争之地就是它了!12 3

十幾年前,雲計算技術誕生,掀起了實體主機托管的基礎設施變革風潮。雲計算實作了計算資源與實體硬體的解耦,虛拟化技術的發展運用,使得雲主機 ECS 成為企業的基礎設施。

随着容器技術普及,PaaS 平台逐漸興起。PaaS 是建構在 IaaS 之上的一種平台服務,作業系統安裝、監控和服務發現等功能。

雲廠商提供了應用所依賴的服務、運作環境和底層所需的計算資源後,企業/使用者隻需部署自己的應用即可,使得應用的開發、部署和運維的整體效率再度提升。

但盡管 PaaS 平台已經廣泛應用,但仍有優化空間,是否能有一種全新的架構,将業務與基礎設施完全剝離?無伺服器架構(Serverless )應運而生。

Serverless 的概念最早要追溯到 2012 年。Ken Fromm 在《軟體和應用的未來是 Serverless》中率先提出了 Serverless 的概念,但卻并未引起廣泛關注。

所謂“無伺服器”,并不是不需要伺服器,而是把這攤子高技術含量的事兒“外包”給了更專業的人。企業/開發者自己擔心的東西變少了,雲廠商操心的事情增多了。

一般情況下,一個應用程式要上線,除了寫出代碼,還要關心應用部署伺服器,以及對伺服器進行維護操作,比如資源申請、環境搭建、負載均衡、擴縮容、監控、日志、告警、容災、安全、權限等。

Serverless 架構的出現,把計算資源和系統環境與應用程式解耦,讓開發者在建構應用的過程中,無需關注計算資源的擷取和運維,隻需專注于應用邏輯的開發。

這就好像專業相機與傻瓜相機/全自動相機的差別。使用專業相機,需要手動調節景深、光圈、快門速度、ISO 感光度、焦距、曝光度等各種參數,容易讓人不知如何下手。而使用全自動相機/傻瓜相機,隻要找好角度、将鏡頭對準被攝物,按下快門鍵,相機就會自動完成所有的步驟,操作十分簡單。

在 Serverless 架構中,計算資源是作為服務而不是伺服器的概念出現的。公有雲廠商按照計算次數收費,業務代碼僅在調用時才激活運作,當響應結束占用資源便會釋放,真正做到了彈性伸縮與按使用付費。開發者隻需要将代碼包裝成函數,上傳到公有雲平台,即可以彈性、可靠的方式運作代碼,根據時間驅動執行計算。

既縮短了應用上線時間,也降低了營運成本,Serverless 架構是以受到廣泛關注,并被認為是雲計算未來的趨勢。

即便如此,Serverless 依然沒有統一的定義,各雲廠商都在推廣布道、搶占地盤。

廣義的 Serverless 包含 FaaS(Functions as a Service,函數即服務)和 BaaS(Backend as a Service,後端即服務)兩個方面。

FaaS 是 Compute as a Service(計算即服務)的一種形式,是一項基于事件驅動的函數托管計算服務。于 FaaS 而言,寫出一個函數,就是一個功能。開發者要做的,隻是寫下函數,然後再用配置檔案告訴伺服器如何讓它運作。

BaaS 可讓開發人員通路各種各樣的第三方服務和應用。常見的 BaaS 服務包括資料庫管理、雲存儲、使用者認證、推送通知、遠端更新、消息隊列,大多由雲服務商提供,使用者無需關心和運維底層基礎資源。在 BaaS 中,Serverless 功能通常通過應用程式設計接口(API)調用。

是以,隻有實作了 FaaS+BaaS,才能說真正實作了 Serverless。

雲廠商下一塊必争之地就是它了!12 3

2014 年,AWS 推出了首款函數計算産品 Lambda。Lambda 就是一款 FaaS,它徹底改變了對軟體傳遞方式的看法。

Lambda 的設計理念很簡單,因為雲計算最終是面向應用提供服務,而應用由函數(functions,即業務邏輯的載體)+ 資料(data,即跟業務相關的輸入與輸出),以及這兩者之間的互動——即事件(events,常見的事件如增加、變更、删除等)組成。

換言之,對于一個應用來說,除了 functions、data、events 這三個東西是根本之外,其他無論什麼代碼和架構,無非都是膠水或者UI罷了。

既然如此,理想的情況是用最少的時間寫膠水,将更多的時間投入到應用的核心邏輯當中。

在 Lambda 上,使用者無需預置或管理伺服器即可運作代碼,pay as you go。隻要上傳代碼,Lambda 會處理運作和擴充高可用性代碼所需的一切工作。

在亞馬遜對 Serverless 探索了兩年後,雲計算巨頭谷歌、微軟等也陸續推出 Serverless 架構的函數服務。2017 年,國内的阿裡雲也推出首款 Serverless 産品——函數計算 Function Compute(簡稱 FC)。

在阿裡雲看來,Serverless 是一種面向未來的雲計算技術,是一種“來了就用,功能齊全,用完即走”的全新計算提供方式。Serverless 隻為實際産生的資源消耗付費,而無需為閑置的資源買單。省時省心省力省錢,幫助客戶實作“用雲自由”。

3

國内雲廠商在創新上也不遺餘力,阿裡雲函數計算可做到單執行個體啟動僅需 200 毫秒,1 分鐘可彈出 20000 執行個體,并針對客戶需求,率先提供單執行個體多并發模式,和業界首個支援預留按量執行個體混合伸縮、NAS 檔案系統挂載功能。

目前,阿裡雲函數計算日調用次數超過 120 億次,不僅支撐了 雙11 百萬 QPS 洪峰,也是國内服務規模最大的 Serverless 廠商,國内市場佔有率第一,業務規模年同比增速超過 300%。

經過三年多時間的追趕,阿裡雲已經成從“跟随者”變為“上司者”,與 AWS 并駕齊驅。

權威咨詢機構 Forrester 近期公布的 2021 年第一季度 FaaS 平台評測報告顯示,在 19 個評估項目中,阿裡雲 Serverless 産品拿到了 8 項滿分和 12 項最高分,綜合産品能力位列全球第一、戰略願景全球第二。與亞馬遜 AWS、微軟 Azure 并列 Serverless“上司者象限”。這也是首次有國内科技公司進入 FaaS 上司者象限。

目前,阿裡雲 Serverless 産品已經大規模使用,可能在你不知道的時候,你已經用上了它。比如,搶優惠券、大促秒殺、微網誌吃瓜、網課直播。

在搶優惠券這個場景中,假設晚上 8 點鐘下發優惠券,預估會有 5 萬人來搶,但實際情況突然來了 8 萬人,之前預備的資源沒法承擔 8 萬人,導緻另外 3 萬人看到界面是 404,或者頁面顯示“等一等”。阿裡雲函數計算能做到毫秒級的擴容、伸縮。不用提前預估,來多少個人,都能兜住。企業隻要接入阿裡雲提供的 API 接口,每個使用者都能加載出搶券頁面。

目前,已經有數萬家企業客戶成功運用阿裡雲 Serverless 實作降本增效,全面覆寫前端全棧,小程式、新零售、遊戲互娛、線上教育等場景行業。

阿裡雲在 Serverless 上取得的成績并非一蹴而就。

阿裡雲是國内最早布局 Serverless 的雲廠商 ,但當時國内對 Serverless 的認知還是不足。

阿裡雲 Serverless 團隊卯足了勁兒,要打造國内最好的 Serverless 産品。可當産品面向市場,已經過了新鮮期,結果不甚理想,“你發現做出來的東西不完全适用中國客戶的要求,如果要改就是很大的改動,我們相當于從頭重新來了一遍。”這讓 Serverless 技術一号位楊皓然(花名:不瞋)不得不開始重新思考。

最困難的時候是 2019 年。那會兒,市場對 Serverless 接受度不高,研發人員也開始幹銷售的活兒,找工單、給客戶打電話、寫文檔。到 2019 年 6 月份,所有研發人員都出去找市場機會,拜訪客戶,做布道,但轉化效果都不高。

在将函數計算在阿裡集團内推廣,并與集團原有的 FaaS 産品進行整合後,事情迎來轉機。這一步很關鍵,不瞋團隊根據回報對技術和産品進行了大幅改進,而來自兄弟團隊的訴求也是很多企業客戶的訴求。

2020 年 雙11,阿裡巴巴在淘寶、支付寶、釘釘、高德、飛豬等核心業務上實作 Serverless 規模化落地,成為國内 Serverless 首次大規模實踐的裡程碑。

使用函數計算 FC,實作了 雙11 會場彈窗秒彈,也接住了 雙12 的流量,助力飛豬火車票基礎服務更新,保障了高德十一出行節。Serverless 不再僅僅是小程式的“專屬名詞”,還有更廣泛的應用空間,如電商大促、音視訊轉碼、AI 算法服務、遊戲應用包分發、檔案實時處理、物聯網資料處理、微服務等場景。

這給還在觀望的大企業們吃了顆定心丸。

如今,汽車廠商的車載系統、車聯網應用也在用函數計算 FC 提供計算支援。

新冠疫情讓遠端辦公、線上教育、線上遊戲的應用需求短期内增加。業務規模的爆發式增長,對每一個需求的響應需要更加及時,這對應用架構的彈性,對底層計算的速度,對研發效率的提升等提出了更高的要求,驅動業務加速向新技術架構演進。

2020 年,阿裡雲神龍計算平台的性能更新為 FC 的産品能力帶來了大幅提升。阿裡雲 Serverless 從原來的虛拟機架構演進到“神龍裸金屬伺服器+袋鼠安全容器架構”。新冠疫情期間,函數計算 FC 應用在數字抗疫中,助力 20 萬+ 企業遠端複工。

比如,教育場景中,老師對開課這件事是有時效性要求的,這就要求背景能夠短時間内啟動可能數千個執行個體進行響應,這也恰恰是函數計算 FC 的用武之地。

雲廠商下一塊必争之地就是它了!12 3

如今,阿裡雲 Serverless 的背後,是四大核心技術——神龍計算平台、袋鼠沙箱容器、盤古存儲平台和洛神網絡平台在提供支撐。為了良好的使用者體驗,阿裡雲 Serverless 團隊還将按量計費的顆粒度縮小到毫秒。現在, Serverless 正在繼續和容器、微服務等生态融合,降低開發者使用 Serverless 技術的門檻。

阿裡雲 Serverless 的目标是,幫助更廣泛的客戶實作向新技術架構的平滑遷移,讓 Serverless 滲透到所有的雲應用中。

為了這片星辰大海,不瞋和他的團隊一直在路上。

參考:

1、《無伺服器架構白皮書(2019年)》,雲計算開源産業聯盟OSCAR

2、《AWS Lambda》,孔令賢

3、《雲計算對傳統軟體工程的影響》

繼續閱讀