1. 程式人生 > >FEDay會後-Serverless與雲開發,可能是前端的下一站

FEDay會後-Serverless與雲開發,可能是前端的下一站

進化本身是生物體與環境之間持續不斷的資訊交換的具體表現。
—— 摘自《資訊簡史》

很榮幸在9月21號成都舉辦的第五屆FEDay上作為講師為大家分享騰訊雲在近兩年推出的雲開發相關的技術和知識,成都是個非常好的城市,就是火鍋太辣,費馬桶~

我初次接觸前端是讀書期間的第一份實習工作,在SAP上海研究院TIP BI部門開發基於SVG的Charts庫,99%的程式碼邏輯是將資料用SVG轉化為視覺化的UI。畢業後成為了一名傳統的web前端開發者,期間還折騰過富本文編輯器。後來有近一年的時間研究效率工程,也就是大眾口中的前端工程化。然後在加入騰訊之前的工作是地圖,技術核心是WebGL。可以說除了音視訊以外,5年多的經歷基本涵蓋了前端領域絕大部分的技術方向。不論是大眾的web還是小眾的SVG,不論是巨集觀到web整體的工程化還是微觀到畫素的圖形程式設計。表面看上去似乎每一份新工作跟之前的工作都關聯甚微,比如在使用WebGL期間積累的矩陣、向量、三角剖分等數學和圖形學知識基本上在現階段工作中得不到體現。我不知道各位前端開發者在生涯初期的幾年內是否有過一些迷惘,我至今工作5年,但在加入到騰訊之前其實一直是比較茫然的狀態。經常思考一些關於職業前景的問題,比如前端的核心價值是什麼?前端的發展方向是什麼?等等。我嘗試在不同的工作內容中尋找這些問題的答案,而在FEDay的這次分享便是我個人認為最接近理想的答案:Serverless

我分享的主體是《從前端到全棧:依託雲的Serverless落地實踐》,需要說明的是這裡的“全棧”指的是開發模式。通俗地說就是讓前端開發者能夠以很小的成本介入到前端以外的工作,具體來說就是服務和資料。進而從開發模式上,一個前端開發者可以掌控應用整體從前到後所有的功能。

雲開發

首先簡單介紹一下什麼是雲開發。雲開發並不是Serverless,準確的說它不是Serverless的全部。目前業內對Serverless的普遍認知是FaaS+BaaS,騰訊雲基於這種認知的具象實現包括兩部分:

  • FaaS層:雲函式SCF;
  • BaaS層:雲資料庫和雲端儲存。

雲開發其實是在FaaS和BaaS基礎上針對應用端的一套完整的解決方案,包括兩部分:

  • 端-SDK:目前小程式端和web端已經推向市場,Android和IOS端即將面世;
  • 雲-接入層:本質上是一個API Gateway,與端SDK配合完成FaaS和BaaS的能力呼叫。

為何雲開發可能會改變前端的開發模型?回答這個問題可以對比目前一種比較流行的架構模型:BFF(Backends for Frontend,為前端服務的後端)。

BFF

BFF簡單來說就是在原有的一體化服務端基礎上,針對不同的業務平臺分別開發一層獨有的、很薄的服務,見下圖:

BFF承擔了一部分的業務邏輯,這部分邏輯通常是平臺獨有的。舉一個現實中的例子:線上視訊提供商有多種平臺,比如網站、app。由於版權限制有些影片只能在特定的平臺播放。具化到技術層面,實現此類邏輯包含分平臺鑑權、資料查詢策略等等,這些便是典型的平臺差異化業務邏輯。獨立於核心業務邏輯之外的BFF層能夠實現差異化邏輯的鬆耦合,進而令迭代和維護更高效和安全。

目前業內對BFF普遍實踐模式是將BFF分發到負責各平臺技術開發的團隊,比如App團隊負責Mobile BFF、前端團隊負責PC web和H5 BFF等等。那麼對於前端工程師來說,這種模式是否意味著前端兼顧BFF層?理想的場景是這樣的,但現實工作中並非如此。BFF本質上仍然是服務層,除了程式語言之外,一名合格的服務端開發者還需要具備一些獨有的領域知識以及服務管理、資料管理理念。所以目前大多數BFF仍然由傳統前端之外的專人負責,即便是Node.js BFF。

而Serverless和雲開發解決的便是程式語言以外的這些問題。

雲開發與前端

以雲開發體系提供的功能和服務為基礎支撐,前端開發者的關注點除了UI和互動邏輯以外,能夠以很小的成本介入以雲函式為承載的業務邏輯層和以雲資料庫、雲端儲存為支撐的資料儲存層。簡而言之,前端的關注點為:互動邏輯+業務邏輯(雲函式)+資料(雲資料庫/雲端儲存)

在雲開發支撐的前端架構模型基礎上,前端開發者與其他職能團隊協作的工程模型也被徹底改變:

  • 業務邏輯由前端開發者負責,不再需要專職的後端開發者;
  • 服務保障和線上監控由雲開發平臺承擔,不再需要專職的運維人員。
能力模型

具體到現實上手開發,開發者們需要了解三種角色:端、雲和控制檯。

  • 端的表現形式是對應各平臺的SDK,是與前端開發者關係最緊密的一個角色;
  • 雲指的是支撐Serverless體系的後臺系統,這部分對於開發者來說是無感知的,與其對接的工作由端SDK承擔。細化到子角色可以分為接入層和基礎服務,接入層負責代理轉發和使用者鑑權等工作;基礎服務提供基本的能力支撐,包括雲函式、雲資料庫和雲端儲存;
  • 控制檯的功能分為兩大類:一是管理功能,比如雲函式的部署、資料和檔案的管理等等;二是運營,控制檯提供產品線上監控以及資料的統計和視覺化,以輔助運營。
場景多樣化支撐

任何一種新技術或者架構落地到具體的業務場景中都難免會遇到由於業務特殊性造成的遷移困難問題,所以在基礎的開發生態之外,雲開發為支撐多樣化的業務場景建立了必要的策略以及對應的工具。比如對於資料私密性存在高要求的產品,可以通過控制檯選擇嚴格的CURD許可權管理策略;並且可以使用wx-service-sdk在雲函式中進行私密資料的CURD以保障安全性;再比如對實時性要求較高的場景,比如線上客服、多人遊戲等,雲資料庫的實時推送功能可以保障此類功能的高效表現。

落地案例

現階段雲開發的落地場景有兩個:小程式和web端(其他端的落地近期到來)。分享現場有一位觀眾提出了一個問題:雲開發能支撐多大的使用者量和請求量?如果對雲開發和Serverless有基本瞭解的話,這個問題其實就相當於問1+1等於幾一樣。雲開發最大的優勢之一便是根據請求量進行動態的擴縮容,其背後是騰訊雲龐大的計算能力做支撐。不過為了更具體的回答這個問題可以參考一個現實中的案例:騰訊相簿。

2018年3月份推出騰訊相簿小程式在9個月的時間裡實現了使用者量破億的成績,而這個爆款小程式的開發只佔用了一個人力,在雲開發基礎上,一個人完成了從客戶端到服務端到資料的全部工作。這個案例足以說明雲開發的便利和強大,更多細節可以參考這篇文章。

總結&展望

現階段前端社群對於前端開發者的進化方向有兩種較流行的認知:以Node.js為支撐包攬前後端的大前端和以ReactNative和Flutter為支撐的泛前端。雲開發非常接近大前端,並且不僅限於服務端,更進一步地深入到資料和儲存。小程式其實非常接近泛前端的概念,它是web和native的綜合體,大部分場景下開發者均無需關注平臺差異性。那麼綜合大前端和泛前端,在雲+端的支撐下是否能夠展望一下前端在未來會成為“全棧+全端”?我們拭目以待。

相關推薦

FEDay會後-Serverless開發可能前端

進化本身是生物體與環境之間持續不斷的資訊交換的具體表現。 —— 摘自《資訊簡史》 很榮幸在9月21號成都舉辦的第五屆FEDay上作為講師為大家分享騰訊雲在近兩年推出的雲開發相關的技術和知識,成都是個非常好的城市,就是火鍋太辣,費馬桶~ 我初次接觸前端是讀書期間的第一份實習工作,在SAP上海研究院TIP B

mpvue+小程式開發前端實現婚禮邀請函

目錄 前言 準備工作 專案結構介紹 頁面介紹 雲開發介紹 總結 前言 感謝OnceLove提供的思路,藉助他的小程式的介面UI風格,自己重新用mpvue實現了屬於自己的婚禮邀請函,前前後後花了3天時間。在這之前本人是沒想過要自己實現這樣一個專案,原因是後臺那塊是個麻煩事,所以當媳婦讓我自己實現這個邀請函的

mpvue+小程式開發前端實現婚禮邀請函(相簿小程式)

請勿使用本文章及原始碼作為商業用途! 前言 當初做這個小程式是為了婚禮前的需要,結婚之後,希望這個小程式能夠留存下來,特地花了一些空閒時間將小程式轉化成為“相簿類小程式” 體驗碼 準備工作 mpvue框架 mpvue官方文件 小程式·雲開發 小程式

重磅報告 | 《解構重組:開啟智慧經濟》數字經濟

2019年1月6日,由阿里巴巴集團發起、阿里研究院主辦的第四屆新經濟智庫大會在北京舉行。本屆大會以“啟航智慧經濟”為主題,聚焦“科技變革、經濟動力、展望未來”等相關話題,與國內外思想者共同尋找開啟“智慧經濟”的密碼。阿里研究院在會上釋出《解構與重組:開啟智慧經濟》報告。 2018年前後,是兩個重要時段的轉換

當HBase邂逅又碰撞出了什麽樣的火花?

過去的 寫入 降低成本 多公司 同時 搜索 https 挑戰 uil 摘要: 阿裏雲HBase2.0也就是阿裏雲即將要上線的ApsaraDB for HBase2.0。它不僅兼容開源HBase2.0,也承載著阿裏多年大規模HBase使用的技術積澱,還有廣大公有雲用戶喜歡的商

想想自己如果不做開發可能會從事什麼職業?

你有考慮過如果不做程式設計師,你會從事什麼職業嗎?或者你現在正在發展什麼第二職業? 家庭   我們家族男的基本都是貨車司機,大學才畢業那會父母就想讓我學開車,至少有個技術,

【轉載】最近面了不少java開發據此來說我的感受:哪怕事先只准備1小時成功概率也能大大提升

原文連結:https://www.cnblogs.com/JavaArchitect/p/9032323.html   本人最近幾年一直在做java後端方面的技術面試官,而在最近兩週,又密集了面試了一些java初級和高階開發的候選人,在面試過程中,我自認為比較慎重,遇到問題回答不好的候選人,我總會再

Kubernetes要做的“分散式”Linux?_Kubernetes中文社群

近期,CNCF基金會宣佈Kubernetes成為其第一個畢業的專案。這意味著Kubernetes“足夠成熟和具有足夠的彈性,可以在各種規模的企業中,任何行業中大規模地管理容器”。近日CNCF的營運長Chris Aniszczyk接受媒體採訪時,談了Kubernetes為什麼如此受歡迎程,以及C

《3D數學基礎:圖形遊戲開發》 學習筆記(

(以下學習筆記為本人最近在學習本書的時候所記載,之中還加入了一些做專案過程中遇到的問題,以及相關知識的補充。筆者水平有限,文中不足之處,還請給予指正,謝謝~)1.將左手座標系變換到右手座標系,只需改變其中一個軸的方向即可。  若改變兩個軸的方向,則與旋轉座標軸無異。  若改變

阿里總裁胡曉明:人工智慧要去泡沫化將是“產業AI”

關注ITValue,檢視企業級市場最新鮮、最具價值的報道!如今無論中美,全球許多國家都對AI充滿

申請谷歌教程可免費使用

很早以前就知道谷歌雲可以免費使用一年,並提供一年 300 美金的試用。不過之前由於沒有雙幣信用卡,所以一直沒有去申請。谷歌為了防止伺服器被濫用,註冊時必須要使用雙幣信用卡驗證才能通過。谷歌雲註冊還是比較簡單的,下面詳細記錄下谷歌雲註冊與及建立伺服器的步驟。 前提條件

8Manage:物流CRM深度挖掘快遞企業藍海!

現狀 奇葩 但是 註意 標準化 最大限度 隨著 有客 就是 【導讀】網購的普及加快了快遞物流服務在中國的發展,而物流行業也開始展露出自身巨大的發展潛力和進步空間。其中,作為物流行業根本核心的物流客戶關系管理開始引起了管理者的註意,如何升級用戶物流服務體驗,把握客戶,深度挖掘

手機AI的機會在於孵化種流行應用

手機AI比氣溫更能準確預示春天到來的,是各大手機廠商的蠢蠢欲動。進入3月,各手機品牌都開始啟動了新一年的攻勢。有意思的是,去年還“幾支獨秀”的AI,今年已經在國內手機圈成為了遍地開花的關鍵詞。或真或假打著AI名頭的手機,普遍都會灌輸給消費者一個認識:用了AI,你的手機能力將會更強。這其中被提到最多的當然是攝影

js根據時間段獲得天數日期獲得

首先,我們建立個需要加減的日期變數: var dateTime=new Date(); 加一天 dateTime=dateTime.setDate(dateTime.getDate()+1); dateTime=new Date(dateTime); 根據時間段內的天數,顯示每

關於分頁查詢在查詢時正常點選頁條件丟失的情況

最近在做一個查詢功能的時候,在使用繼承下來的分頁page時出現一個莫名其妙的原因 就是在查詢時正常,當點選下一頁時出現條件丟失的情況  dao層使用的mybatis框架,前端的傳參是用form的post方法 --根據條件查詢 --斷點debug檢視 --點選

重新創業快播創始人王欣的在哪?

王欣是快播的創始人,而今快播早已倒閉。然而無論過去了多久,王欣這個名字還是會和快播緊緊聯絡在一起,而對於如今的市場來看,快播似乎永遠成為了過去時。 王欣也要重新開始,他看到的機會在人工智慧領域。那麼,重新歸來的王欣還能達到怎樣的高度?他還能再造快播此前的輝煌? 如今的人工智慧還處在快速發展之中,王欣此時的

C 語言 6.13 輸入一些整數程式設計計算並輸出其中所有整數的和輸入負數時不累加繼續輸入個數。輸入零時表示程式結束。

#include <stdio.h> int main() { int i,n,sum=0; printf("請一個個輸入數字,按回車確定輸入的數字\n"); for (i=1;;i+

解決JPages分頁外掛點選頁不會自動回到頂部的bug

最近在做一個手機端的失物招領系統,用到了JPages這個分頁外掛。 先簡單介紹一下JPages: jPages是一個客戶端分頁外掛,它比其他大多數外掛多了很多功能,比如自動翻頁,滾動瀏覽,顯示

JQuery AJAX 分頁跳頁頁【總結了天啊乾貨】

網上的分頁基本有問題,自己總結下:程式碼如下<script type="text/javascript"> var pagesi = "2";//每頁行數 var totalPage = "0";//總頁數 var currentPage = "1";//當前頁

解決AndroidKiller APK 反編譯失敗無法繼續步原始碼反編譯!

報錯背景 今天使用AndroidKiller V1.3.1,反編譯一個APK,遇到如下報錯: 當前 Apktool 使用版本:Android Killer Default APKTOOL 正在反編譯 APK,請稍等... >I: 使用 ShakaApktool 2.0.0-20150914 >I: