為什麼下乙個十年的主戰場在 Serverless?

2022-06-25 11:57:09 字數 4630 閱讀 2293

作者 | 不瞋 阿里雲 serverless 負責人

"唯有超越,才能讓我們走下去。"

這是不瞋在阿里的第十年。從 2010 年加入阿里雲,不瞋參與了阿里雲飛天分布式系統的研發,歷任批量計算的架構師、**儲存(nosql)研發經理,深度參與了阿里雲系統研發和產品迭代的全過程。2016 年不瞋成為阿里雲函式計算產品研發負責人,致力於構建下一代彈性、高可用的無伺服器計算平台。

無伺服器(serverless)是不瞋下乙個十年要攻克的技術難題。在這波 serverless 浪潮裡,阿里雲一直走在最前面,無論是技術還是產品,在國內的豐富度都是第一。「從不敢掉以輕心,serverless 在國內還處於早期階段,只有把技術和產品打磨成熟,讓使用者體驗做到更好,這一戰才算勝利。」

我們對不瞋做了乙個簡單的採訪,針對大家比較關心的 serverless 發展、技術難點以及落地情況,聽聽他的想法。

雲計算未來一定會成為整個社會和商業的基礎設施,屆時使用雲計算就應該像現在我們使用水電煤一樣簡單,不需要了解水從**來、怎麼過濾、怎麼鋪設管道等一系列問題,只需要開啟水龍頭接一杯水而已。而 serverless 的概念正好可以幫助雲計算朝這個方向往前走一步,它提倡的是人們不需要關心應用邏輯以外的服務相關的事情,包括管理、配置、運維等,用多少就付多少。

從這個角度來看, serverless 是真正讓雲計算變成社會商業基礎設施的乙個實現路徑,也更接近現在業內提倡的雲原生的方式,因此人們在使用雲計算的過程中自然就應該按照 serverless 的方式來使用。

國外的開發者在 serverless 領域的心智明顯比國內開發者建立的更好。因為國外很多公司一開始就是基於 lambda 生態來創業的,而國內一些大企業已經陸續開始使用 serverless 的工具和產品,還有很大一部分企業處於觀望狀態。

乙個新產品的出現也是要有乙個適應期的,所以在 serverless 這樣一系列產品出現之後,使用者對於是否使用、是否遷移、如何遷移是有很多顧慮的。經常會有企業諮詢關於函式計算的安全性如何保證,函式計算的穩定性如何保證,以及傳統專案遷移到 serverless 架構是否有比較大的改造成本和改造風險等。這些顧慮很正常,但是我相信,隨著 serverless 的發展, faas 定義的越發廣泛,工具鏈建設的越發完整,這些問題都會逐漸被解決。理論上,技術能解決的問題,都不算問題。

serverless 帶來的極致彈性體驗、成本節約、開發效率提公升等,都是非常具有吸引力的。傳統業務在開發上線的過程中,需要團隊合作,每個人開發一部分,合併**,開發聯調,然後進行資源評估,測試環境搭建、線上環境搭建、測試上線、運維。但是在 serverless 時代下,開發者只需要開發自己那部分功能/函式,然後部署到測試環境、線上環境即可,後期很大一部分運維工作都不用考慮和擔心。

可以毫不誇張的說,如果企業自己通過雲主機搭建的資料庫服務,一般情況下可用性不如雲廠商提供的資料庫服務,此外,api 閘道器、資料儲存服務等也是雲廠商提供的產品效能更好,也更安全可靠。

小企業最好不要自己去建設 serverless。因為 serverless 的核心要素是按量使用,這就意味著如果今天的量很小,你就用很少的資源;如果今天的量很大,就需要調動更多的資源。「雙十一」的時候,流量都是億的量級,如果你的企業內部沒有按億級做單位的這種流量的機器資源,你怎麼去排程這些資源給他人使用呢?沒辦法實現按量排程,就別提 serverless 了。那些不具備資源規模化的企業不建議去自建 serverless 能力,但是可以通過使用公有雲的產品來實踐 serverless。

當下,各大廠商都看準了 serverless 是未來,就算它不是雲計算的終態,也是通往終態的乙個途徑,一方面是因為 serverless 可以解決很多實際問題,更「像」或者說更「貼近」真正的雲計算;另一方面,大家都不想在雲計算發展的浪潮中掉隊。所以, serverless 成了必爭之地。

關於 serverless 能力的競爭主要有三部分:

一是效能,包括安全、穩定、彈性等在內,效能這部分如果做不好,我覺得不用說做不做 serverless ,就算雲計算也別做了,因為效能是 serverless 的核心能力,一切都建立在安全、穩定、效能之上。

最後是體驗, serverless 的體驗太重要了,體驗包括方方面面,如功能的易用性、穩定性、安全性、產品的靈活性、工具鏈的完整性等。除了前面說的三點,我覺得社群、生態、開放等,也非常重要。

阿里雲作為國內第一批推出 serverless 平台的公有雲廠商,其 faas 平台產品被稱為函式計算。從事件觸發、支援語言以及使用者體驗等方面考量,函式計算有很多資料值得關注:

serverless 的痛點很棘手,例如傳統專案如何快速遷移到 serverless ,如何平滑過渡,如何 serverless 化, serverless 架構下如何進行更優的除錯,如何更好地節約成本等,每乙個都是難題。我的同事許曉斌在《喧嘩的背後:serverless 的概念及挑戰》一文中曾提到落地 serverless 面臨的挑戰:

在主流的場景大規模的落地 serverless,並不是一件容易的事情,面臨的挑戰有很多,下面我具體分析一下這些挑戰:

挑戰一:業務輕量化困難

要實現徹底的自動彈性,按實際使用資源付費,就意味著平台需要能夠在秒級甚至毫秒級別擴容出業務例項。這對基礎設施是乙個挑戰,對業務,尤其是比較龐大的業務應用來說,更提出了很高的要求。如果乙個應用的分發和啟動需要十分鐘,那麼自動彈性的響應能力就基本無法跟上業務流量的變化了……

挑戰二:基礎設施響應要求極高

一旦 serverless 的應用或者函式的例項能夠實現秒級,甚至毫秒級擴容,相關基礎設施就很快會面臨巨大的壓力。最常見的基礎設施就是服務發現和日誌監控系統,原本整個集群例項的變化頻率可能是每小時幾次,現在這個頻率變成了每秒幾次;此外,如果這些系統的響應能力跟不上例項變化的速度,那麼整個體驗也就大打折扣了。

挑戰三:業務程序生命週期與容器不一致

serverless 平台依賴標準化的應用生命週期,才能實現完全自動的容器騰挪,應用自癒等特性。而在基於標準容器及 kubernetes 的體系下,平台能控制的生命週期就是容器的生命週期。因此就需要業務做到業務程序的生命週期和容器的生命週期保持一致,具體包括啟動、停止、以及 readiness probe 和 liveness probe 的規範等等……

挑戰四:可觀測能力需完善

在 serverful 的模式下,如果生產環境出現任何問題,伺服器是不會消失的,使用者會很自然的想到登陸到伺服器上去。到了 serverless 模式下,使用者不需要關心伺服器了,也就是說預設情況下是看不到伺服器了,那麼這個時候如果系統出現異常了,而且平台無法完成自癒怎麼辦呢?……當圍繞 serverless 模式的全面可觀測能力不足的時候,使用者必然不會對此感到放心。

挑戰五:研發運維心智需要改變

幾乎所有的研發,在職業生涯中第一次部署自己的應用程式的時候,都是面向一台伺服器的,或者說是面向乙個 ip 的,這是一種非常強大的習慣。在 serverless 逐漸落地的過程中,研發需要轉換一些思維的模式,逐步地去適應 「ip 隨時可能會發生變化」 這樣一種心智,轉而更多的從服務版本,以及從流量的視角去運維自己的系統。

打個比喻,serverless 目前確切來說已經有了乙個形態,也就是有乙個框架,但是這個框架裡還有很多格仔(問題)沒有被填滿(解決),這也是大家今天對是不是該用serverless 存在疑問的地方,原因之一是還沒有看到足夠多的成功案例。但事實上,阿里在2023年雙十一就已經成功實踐了 serverless。不僅如此,阿里雲還帶動了一批企業使用函式計算產品,從而節省了大量的 it 成本

以微博為例,函式計算平均每天承載微博幾十億次請求,其毫秒級伸縮計算資源能夠確保在熱點事件發生時,應用仍能保證穩定的延時,使用者體驗完全不受訪問次數的影響。通過函式計算執行處理服務,微博實現了持續的成本節省,再也不需要為平滑處理業務高峰帶來的流量激增而提前預留大量閒置機器資源,同時由於不需要維護複雜的機器狀態,工程師可以集中精力與產品團隊合作增加業務價值,而不是花時間管理基礎設施。

理想中的 serverless,應該是:更完善的產品形態,更極致的彈性能力,更好用的工具鏈,更節約的成本,更高效的開發效率,更便捷快速的遷移速度,更簡便強大的上雲體驗。要做到能讓開發者以一種方式專注於業務**的開發,無需關注執行平台的差異性,一處編寫可以處處執行,開發者只要掌握一種方式就可以在不同業務之間沒有學習成本地切換。

站在開發者的視角,serverless 的整個研發模型對研發體系也帶來了挑戰。對於前端來說,serverless 不僅補足了前端工程師現有的能力,還可能使整個前端行業的定位發生變化。原來經常有人會認為前端的工作很簡單,面向 ui 做好開發就行,剩下的工作可以交給後端。但是前端和 serverless 結合之後,大家對前端的訴求就不僅僅是開發乙個頁面了,而是要能交付整個應用的開發。

但是相應來講,後端同學可能第一反應就是,那這是不是把我革命了?我就不需要幹活了?其實不是這樣的。serverless 研發模式的演進有助於幫助他們往更底層演進,讓他們聚焦於真正需要做技術研究的部分。比如,這些資料的能力、服務的能力,怎麼做得更好、更紮實,這是我們期望看到的。

阿里雲正在通過工具鏈、社群以及產品能力的結合,打一張非常有趣且會對serverless 的整體發展非常有利的牌。阿里雲 serverless 的目標是成為「大家需要的 serverless 」,這是與其他雲廠商截然不同的地方。只有將使用者需求放在首位的 serverless 廠商,才能將 serverless 產品做好。

Go ,下乙個十年

2007 年,google 的三位著名的工程師 rob pike ken thompson 和 robert griesemer 創造了 go 語言。他們想為 google 的工作流設計一款更好的語言,構建簡單 快速 可靠的應用程式。2009 年,go 正式宣布推出,成為開放源 專案。由於開放原始碼...

IP化是智慧型家居行業的下乙個競爭主戰場嗎?

說起ip,很多人可能首先會想到漫威 迪士尼等經典影視動漫形象,在影視 動漫 遊戲 文創 網際網路等領域,ip已經深入人心,看電影有漫威和迪士尼,聊天有企鵝 qq 叫外賣我們想到袋鼠 美團 買菜我們找河馬 盒馬 發快遞找菜鳥,買東西找貓貓 天貓 和狗狗 京東 阿里動物園已經成為ip化的典範,ip已經成...

寫給自己的下乙個十年

寫個下乙個十年 再過幾個小時,就到 2010 年了。21 世紀的第乙個十年馬上就過去了,自己生命中非常重要的十年也馬上就過去了。在這乙個即將過去的十年裡,我度過了自己的高中和大學時光。自已由乙個青澀的小男生長成了乙個可以承擔責任的青年 由乙個沉默寡言的男孩變成了乙個可以講一大堆道理的大人 由乙個基本...