TWeb講師朱展:基於Serverless的低程式碼實踐

語言: CN / TW / HK

【人物介紹】

朱展,騰訊前端高階工程師,騰訊雲微搭前端負責人,全棧開發者,主導設計開發了微搭低程式碼、雲開發等產品。對前端元件化、海量服務等有多年經驗。目前專注於雲開發低碼產品的構建,致力為開發者提供穩定易用的技術產品。 在10月24將舉辦的騰訊TWeb 前端技術大會上 ,朱展將介紹他與他的團隊是如何基於 Serverless 架構實現低程式碼服務的。

【訪談內容】

1. 是什麼樣的機緣巧合,促使你加入目前的團隊呢?在目前的團隊,開發過哪些技術產品,怎麼評價這些技術產品呢?

我個人從事開發已經超過十年,當時促使我加入騰訊雲從事 ToB 行業的一個重要原因是覺得這裡的技術更有挑戰,當時看著像 Node.JS, BFF, 雲伺服器、COS 這些技術或產品時,覺得這些很有意思,很想自己去嘗試。我們現在的團隊大概在 2018 年做雲開發時慢慢成型的,最開始只有 3 個人,從頭開始花了大概兩個月時間將產品上線。小程式雲開發在國內是個標誌性的 Serverless 產品,它從小程式的場景出發將 Serverless 理念帶到了開發者面前,讓大家在開發產品時擺脫了伺服器各種資源硬體的依賴,也讓眾多偏前端的研發有了能夠從事全棧開發的基礎,研發的關注點可以從繁雜的基礎設施中往產品業務邏輯中更多側重。

2. 微搭 WeDa 是你主導開發的一款低程式碼產品,它跟你之前在雲開發團隊開發的產品是什麼樣的關係呢?它與目前國內外主流的產品相比,有哪些的優勢呢?它能夠怎麼樣幫助到我們的開發者呢?WeDa 下一步會有哪些的規劃,是否可以預告一下呢?

微搭產品的應用完全執行在雲開發之上,我們希望用微搭構建出來的應用能夠享受到 Serverless 體系帶來的便利:開發者用微搭釋出構建的應用後可以完全不用過多考慮伺服器的事,就算業務爆發增長也可以利用雲開發的彈性機制來簡單的應對,也是我們對比其他同類產品的一個優勢。

微搭相比於國內外眾多成熟的低程式碼產品還是一個比較早期的產品,我們進入這個方向的時間還比較短。但我們還是有自己的一些特點:除了上面提到的 Serverless 模式外。我們還提供了開發通用應用的基礎機制,針對管理端應用和普通應用都提供了相應的能力來幫助開發者快速完成應用構建。

  • 管理端應用一般有很固定的正規化,大部分都是對業務資料進行管理操作。我們提供模型元件來進行快速生成這些增刪查改的完整功能,資料模型加上流程及角色許可權體系就能實現一般的管理的訴求。

  • 而針對更加自定義的場景,微搭提供了前端和服務端擴充套件手段,開發者能夠比較簡單的完成對前端互動和服務端邏輯的擴充套件。

  • 通過選用相應的應用模板和區塊模板,使用者可以直接基於完整的模板來快速進行二次定製。

作為追趕者,微搭後面一段時間的主要任務是完善產品體驗和補齊 ToB、ToC 應用的基礎能力上。比如提供更多的元件和模板來供開發者使用,同時也會完善邏輯流,提供資料容器幫助使用者在頁面快速使用資料來源等能力,並且我們也會考慮允許開發者開放自己的資料來源 API 供外部呼叫。

3. 在開發 WeDa 這款產品的過程中,有遇到什麼樣的難題?

開發微搭是我遇到的比較大的一個挑戰,實際開發過程中問題很多,對我們來說比較棘手的問題是怎樣快速構建技術底座來支援產品的變化和發展,平衡產品的易用性和擴充套件性。

  • 對於低程式碼開發平臺來說,其 核心是將普通人能理解的 UI 操作語言轉換成計算機邏輯 :通過拖拽元件來拼裝前端頁面結構,操作各種表單來定義資料模型及關聯關係,配置流程圖來直觀的構建工作流程,這個開發過程的產物資料如何轉換成真正可執行的程式碼,定義好這些行為這對技術團隊是個不小的挑戰。

  • 一般的使用者在低程式碼平臺進行視覺化開發其實是拼裝平臺提供的能力來封裝自己業務邏輯的一個過程。平臺會提供各個顆粒度的元件和模板來供開發者使用,這在很多時候是能夠幫助開發者完成任務的。但對於另外一些使用者和場景來說,平臺的預設能力是不能滿足所求的,如果不能自定義擴充套件平臺不具備的能力就根本算不上是 通用的開發平臺 ,這些擴充套件邏輯往往包括 UI 層、邏輯層、服務層,怎樣支援使用者來擴充套件應用各個部分的邏輯也是對我們的一個考驗。

4. 在開發 WeDa 產品的時候,你採用了 Serverless 服務作為產品核心的後臺服務架構,Serverless 服務對比傳統的後臺服務有哪些優勢呢?

當前業界的低程式碼產品的應用產物,乃至一般應用後臺的服務架構,一般有兩種方式:

  • 第一種是 SaaS 中心化服務模式。這種模式實現簡單,釋出速度快。對應的是業務爆發增長比較依賴平臺中心化服務的彈效能力,同時很難解決隔離問題,很可能某個業務、客戶的問題導致整個平臺的應用受影響。對於低碼平臺來說這種基本上也不會支援自定義的服務端邏輯,同一個中心化執行環境中,自定義邏輯很難同時做到兼顧安全性和開放性。

  • 第二種是打包生成獨立產物,可獨立部署到標準執行時比如虛擬機器、容器等上。這種模式會很靈活,對應用的部署方式有很高的靈活性。它的問題也很明顯:生成產物的打包釋出過程會很慢,同時開發者還是需要自己來處理伺服器運營運維的傳統問題,業務流量流量來了要自己處理擴縮容的問題。

雲開發 Serverless 模式從形態上來說是介於這兩種之間的第三種形態,每個使用者或者業務會有會有相對獨立的執行環境,他們之間互相隔離,互不影響。執行時實時的按需消耗資源,做到秒級的按量計費。同時在業務增長是,甚至遇到某些突發活動時 Serverless 服務也能做到自動的秒級擴容。

5. 你曾帶領技術團隊落地過不少優秀的雲技術產品,請問可以介紹一下你是如何帶領團隊,克服重重困難,落地這些產品的嘛?以及在落地這些技術產品的過程中,需要考慮哪些的因素,跟落地一款消費者產品又有什麼不同?

這方面我個人的一個直觀感受是,雲技術產品同消費者產品在基本原則層面是相似的,都需要從使用者的角度出發,對於技術產品來說使用者是研發群體,而我們自己就是開發者,從這個角度來說,做雲技術產品把業界優秀的技術實踐以產品化的方式帶給使用者,在很多時候也是給自己開發產品的一個過程,團隊的開發會有代入感,很多時候對需求的理解程度相比其他產品會有本質的不同,甚至很多時候團隊的研發就會自己作為產品經理來定義需求,這種情況在一般的消費者產品的研發團隊我覺得是比較少有的情況。

TWeb直播票限時優惠

點選下方 ”閱讀原文“ 馬上購票