小程序上云,有點猛


前不久有一個朋友問我,到底是做什么端的小程序比較好?


我只問了一句,你的產品里是否涉及錢和服務,如果涉及這兩者,建議你選擇支付寶小程序。你可以通過其他小程序玩裂變,但如果你想做服務和商業,一定要考慮支付寶小程序。


小程序To B的戰爭早已打響。從前臺看,是小程序、IoT的解決方案之爭;從中臺看,體現在數據服務的爭奪;而在后臺,則取決于云服務的基礎設施誰更得用戶青睞。

?

針對后臺云服務,支付寶小程序是如何構建自己的商業底層實力?


傳統小程序開發

VS

小程序云服務


傳統的小程序后端開發常見的痛點是:后端環境搭建復雜,比如要考慮服務器、數據庫、域名、證書等;搭建后端完成,應用發布到云端的過程冗長,這里涉及CI/CD、編譯打包、多環境等;同時小程序的開放能力集成復雜,要考慮簽名驗簽、異步回調。所有這些流程梳理完要花費幾天時間。



為了讓開發者不必在后端開發上耗費太多精力,支付寶小程序云服務提供了兩種解決方案,一種是經典的有服務器自主運維的云應用,另一種是無服務器托管模式的Serverless,通過小程序云服務搭建后臺,省去了開發者自己搭建后臺耗費的人力物力成本,讓開發者可以把精力放在支付寶小程序的業務實現。


1

支付寶小程序云應用

有服務器自主運維


小程序云應用是一個以開發者為中心,以簡單方便+自主可控為目標,針對小程序進行場景優化的應用PaaS平臺。小程序云應用的定位是:專注于為小程序提供快速構建、穩定運行小程序后端的服務。


小程序云應用提供了哪些能力?


(1)便利性:比如IDE端提供了插件之后,可以讓后端的開發者和云端進行無縫打通,后端代碼可以在IDE里面直接發布到云端,這里小程序云應用提供了一鍵構建云端環境、一鍵發布的能力。針對支付寶小程序的場景,小程序云應用設置了自動分配測試運營和一些相關的證書,讓開發者可以直接使用MySQL數據庫。


(2)靈活性:開發者可以一鍵構建后端環境,但這并不意味著缺少靈活性。小程序云應用允許開發者自由組合螞蟻金服金融科技的產品,在滿足便利性的同時也能實現靈活性。另外小程序云應用有一套高可用架構,提供監控預警能力。


(3)自主可控:小程序云應用提供服務器,開發者可以擁有、登錄或重啟,也可以修改密碼。也就是說,服務器是由小程序云應用提供,但使用權歸開發者。


(4)提高代碼的研發效率:除了方便開發者使用和構建后端環境之外,小程序云應用更關注在開發過程中如何提高代碼效率,這里小程序云應用提供了自動生成代碼模板的能力,方便開發者使用。


對于一個有服務器的后端研發流程,可以分為4步:構建云端的環境和服務器——>代碼開發——>應用發布——>應用運維。小程序云應用是如何在每個階段簡化開發過程呢?


首先,作為一個小程序開發者,你需要了解IDE、螞蟻開放平臺和小程序云應用的關系:




在螞蟻開放平臺通過登錄打通的方式,可以直接進入小程序云應用的頁面,通過螞蟻開發者工具Node.js或者基于Java的IntelliJ IDEA插件,也可以進入到小程序云應用中,這樣開發者不必在三者間切換,從而實現一站式開發小程序。

?

在了解一站式開發小程序之后,小程序云應用是如何幫助開發者構建云端環境?這里底層編排引擎非常重要,它通過應用創建、資源創建、數據庫配置、網絡配置、自動配置二級域名和證書,一次性幫助用戶完成云端環境的構建,從用戶的體驗來看,就是完成5步的點擊操作即可。




IDE提供一鍵發布的能力,幫助開發者直接將應用發布到云端。在一鍵應用發布的背后,小程序云應用其實是集成了CI/CD和發布部署能力,從而給用戶提供良好的一鍵發布的體驗。


如何實現代碼研發效率的提升?


代碼研發效率的提升有兩點:一是代碼托管云端構建,二是代碼模板自動生成。



從代碼模板自動生成的角度,比如技術類代碼模板,通過支付寶認證獲取用戶信息,完成文件上傳、認證授權、數據庫訪問等操作,從而提供給用戶生成代碼的能力;


對于業務類代碼模板,需要根據不同的業務類型,比如支付、營銷、信用等,深度集成螞蟻金服的自有能力。例如,支付不是一個接口就可以簡單搞定,而是需要多個接口串聯,因此小程序云應用提供的代碼并不是針對一個接口,而是將整個支付鏈路串聯起來,用戶只要通過修改一些參數(如公鑰、私鑰等)就可以運行代碼。


對于場景類業務,不同行業的支付寶小程序,除了通用的能力之外,還應該具備行業特色。小程序云應用結合螞蟻金服積累多年的行業經驗,針對不同行業打造不同的小程序代碼模板,從而提升代碼研發效率。


小程序云應用的語言框架是什么?


小程序云應用的語言框架有兩種選擇,對于熟悉前端開發的開發者,小程序云應用提供Node.js;對于習慣Java的開發者,小程序云應用提供SOFABoot和Spring Boot兩種框架,Spring Boot是目前最流行的開源框架,而SOFABoot 是螞蟻金服基于 Spring Boot 構建的一個研發框架,擴展了很多企業級特性,以解決大規模團隊開發云原生微服務系統中會遇到的問題,如類隔離、ReadinessCheck,日志隔離等等能力,后續會開放更多內部實踐過的特性,如 Spring 上下文隔離,合并部署,動態模塊,Tracing、Metrics、Streaming、測試框架等。



對于高可用,小程序云應用提供以下方案的支撐:


多可用區,可以簡單理解為多機房;通過SLB+ECS實現負載均衡;彈性伸縮和監控預警能力,保障對高可用的支撐。


小程序云應用的后期運維,通過一個Web控制臺,提供多種運維能力幫助用戶做應用管理、發布、回滾、啟停等。



小程序云應用的技術架構:



如上圖所示,小程序云應用的底層是阿里云計算、存儲、網絡的基礎能力,以及螞蟻開放平臺支付、安全、信用等能力;在底層能力之上,通過螞蟻金服的應用PaaS平臺提供一些基礎能力,包括環境資源管理、發布部署、彈性伸縮、監控分析、分布式中間件;在基礎能力之上構建小程序云應用的場景化能力,包括IDE插件的無縫集成、環境構建、應用運維和高可用支撐。最上面小程序云應用支撐的是整個阿里系小程序,包括支付寶、釘釘、淘寶、高德等。


前段時間阿里巴巴發布了“一云多端”計劃,“多端”就是用戶一次開發小程序的前端就可以在釘釘、支付寶、淘寶、高德里面通用?!耙辉啤本褪侵Ц秾毿〕绦蛟?,通過一個服務器的后端支撐多個前端。


總而言之,小程序云應用是一種經典的有服務器自主運維模式的后端搭建,如果開發者不想關心后端如何搭建,只想考慮前端業務邏輯,不妨考慮小程序Serverless。


2

小程序Serverless

無服務器托管模式


當開發者想要開發一款小程序的時候,需要考慮的東西有很多:

這個是一個典型的場景,也是開發商的一個標準模式。而對于創業者,或者想快速開發一款小程序的人來說,有沒有一種方式將復雜的后端簡化?

?

設想一下,能否將右面所有的東西都簡化成一個API,這樣用戶在開發小程序的時候,只需要考慮業務邏輯,后端直接調用相應的API即可?



如何實現?——>Serverless提供思路:


Serverless是目前最受開發者關注的技術之一。Serverless不代表再也不需要服務器了,而是說:開發者再也不用過多考慮服務器的問題,計算資源作為服務而不是服務器的概念出現。Serverless是一種構建和管理基于微服務架構的完整流程,允許用戶在服務部署級別而不是服務器部署級別來管理你的應用部署,用戶甚至可以管理某個具體功能或端口的部署,這就能讓開發者快速迭代,更快速地開發應用。


Serverless對于小程序后端簡化的啟示:


傳統開發模式可以抽象成三大類內容:


計算資源,就是常說的服務器,包括常見的物理機、虛擬機、容器等;


中間是存儲和基礎能力,存儲包括文件存儲、數據庫、離線存儲等,基礎能力是用戶在開發過程常用的輔助能力,比如視頻壓縮、圖片水印、消息、定時任務等;


網絡和安全,這往往是云端最復雜的部分,這里需要考慮安全、穩定、容災、風控等問題,也是開發者最容易忽視的問題。


基于這三部分體系,Serverless如何簡化?

網絡和安全的簡化方式:將域名、證書、流量控制、容災等通過平臺內置,由云端接管,形成底層基礎設施,對用戶直接透明。


計算資源這部分的簡化方式:將其所有內容簡化為Compute,所有的計算資源在云里對于用戶的直觀感受就是運行池,運行池如何布置、彈性如何實現等,無需開發者關心。


存儲和基礎能力的簡化方式:BaaS(Backend as a Service)是Serverless的核心。后端除了計算以外的所有能力都可以封裝為API,實現開箱即用。簡單來說,用戶根據需要可以隨時調用相應的API,而不需要關心底層的執行和運維。

?

以上就是Serverless最直觀的抽象。基于Serverless的原理,如何構建支付寶小程序Serverless呢?


支付寶小程序Serverless架構如下:



首先來看Compute 部分,從用戶的角度,他不需要考慮服務器、Linux、文件存儲等,而只需要關心代碼,這里涉及App Service的概念,App Service意味著當用戶提交一個應用到云上,云端會自動識別應用的構件、部署、彈性,中間的過程用戶不需要關心,直接通過API調用即可。

?

BaaS這部分,就是將所有的能力封裝成API,上圖中列舉了三種解決方案:存儲方案、多媒體方案、安全方案。以存儲方案為例,存儲方案就是將文件、數據庫的存儲進行API化。舉例來說,如果用戶有一份數據需要保存,通過調用存儲方案API接口就可以實現直接保存。


在Compute和BaaS之上,整套小程序Serverless體系中,用戶是不需要關心域名和證書的,因為域名、證書、DDoS防御、流量鏡像等已經內置在平臺里。需要說明的是,流量鏡像是螞蟻金服特有的能力,可以幫助用戶分析流量,尋找流量的風險點,從而對流量進行處理和清洗。

?

小程序Serverless最上層要解決認證問題。小程序Serverless中已經內置支付寶、高德的體系,默認在使用時已經包含OAuth方案。隨著阿里系小程序的全面打通,云端的認證差異問題將通過體系內置方案解決,對用戶而言只需要使用統一的API就可以完成認證。


小程序Serverless重點的技術方案如下:


(1)共享資源管理

當用戶訪問網關時,網關會產生一份摘要數據,數據信息很簡單,比如“A小程序訪問a數據庫1次”;數據產生后會進入調度核心,調度核心會根據用戶的摘要數據判斷用戶要訪問哪里,并將信息傳遞給決策,決策再把信息錄入到相應數據庫中。

?

由于用戶的規模是處在動態變化中,隨著用戶規模的遞增,系統感知到數據的增加,會新初始化一個獨立的實例,保證更高的性能和可用性;如果用戶數增長特別迅猛,系統感知到后也會將數據進行一定的遷移。這樣就實現了根據用戶的增長情況,底層資源進行動態調配。


(2)Compute調度

Compute調度依賴于App Service的彈性支撐,是如何實現呢?


App Service有兩個概念很重要,一是彈性免運維;二是按量。所謂按量,就是App Service是按照正在執行的業務量來計算。當用戶的訪問信息進入調度核心,如果機器沒開始運行,則將訪問信息放到預熱池。預熱池里會提前初始化Node.js或者Java的執行環境,這樣當用戶訪問信息進入時,可以從預熱池中快速調度資源進入Runtime中執行。隨著用戶訪問信息的減少,Runtime會釋放一定的資源。這樣Compute調度就可以實現根據業務量的情況,在底層資源配置上實現動態化。


(3)數據安全

數據安全問題是Serverless的核心問題。當小程序Serverless把后端服務開放到云端時,后端服務的安全性如何保證?


當用戶訪問信息通過語義控制后,會進入安全規則進行校驗,安全規則的樣例如上圖。安全規則可以簡化為兩條:一是用戶的數據寫入后,所有人都可以讀;二是用戶寫入的數據,只有用戶自己可以修改。


不僅如此,小程序Serverless還提供了角色的定義,這就意味著開發者可以指定管理員有哪些權限,游客可以訪問哪些內容等。

?

小程序Serverless的優勢:


(1)研發效率大幅提升:在小程序Serverless解決方案下,不需要考慮服務器、資源配置、關聯端口等問題,整個開發效率會大幅提升。此外,由于在我國域名申請是需要備案的,備案時間需要30~45天,這就意味著新業務的上線至少要等到45天以后。這對于希望小程序快速上線的開發者而言絕對是一個漫長的時間。但是小程序Serverless方案里是不需要用戶考慮域名、證書等問題,用戶開發完即可上線,這極大地提升了研發效率。


(2)安全可靠的后端服務:網絡和安全這部分在小程序Serverless里處于基礎設施層,相當于一個平臺層,由平臺管控,幫助用戶實現后端安全服務。整套方案是雙機房,數據備份已經幫用戶做好,只要用戶使用這套方案,就享受安全可靠的后端服務。


(3)更低的成本:以前小程序的后端開發主要考慮兩部分成本:一是人力成本,二是資金成本。使用小程序Serverless方案后,整個研發團隊不再需要配置運維工程師,后端工程師,安全工程師等,只需要一個會Node.js的前端開發者就可以完成小程序前后端開發。


使用小程序Serverless方案,節省了購買服務器、數據庫等的花費,Compute調度是按量付費,也就是只為運行的業務付費,進一步節省了資金成本。


小程序Serverless的未來?


(1)更豐富的BaaS:小程序Serverless會提供更多的基礎能力,完善開箱即用的API化。


(2)完善的數據分析:對于商家而言,技術遠沒有數據更具有價值。數據對小程序的業務發展具有指導意義,小程序想在業務層面取得重大突破,離不開完善的數據分析,為用戶提供更多指引。小程序Serverless會不斷完善數據分析,幫助商家更好地服務消費者。


(3)前后端一體化:對于商家而言,搭建管理后臺非常關鍵。商家需要錄入商品、查看賬單等操作,在Serverless方案里提供可視化搭建的集成解決方案,通過拖動相應組件實現管理后臺的需求。小程序Serverless后面會不斷強化前后臺一體化,幫助商家更好地管理后臺。


(4)場景化解決方案:在實現通用的能力之外,小程序Serverless會針對一些特殊的業務場景,提供前后端一體化整套方案,滿足商家的個性化需求。



?

支付寶小程序云服務會越來越成為主流的開發模式,“只要有創意、有想法,未來哪怕不具備豐富開發能力的人,也一樣可以通過云服務,高效開發出一款不錯的小程序”。

?

未來,阿里系的幾大超級App,包括淘寶、釘釘、高德、餓了么等,底層能力都將打通,形成無縫對接。這意味著,阿里系的多元化能力,可以隨意組合了。

?

比如,支付寶小程序不僅可以擁有支付寶的芝麻信用能力,還可以擁有菜鳥的物流能力、餓了么的配送能力、高德的LBS能力等。這些能力都以API接口的形式匯聚到一個API市場里,開發者在開發應用的時候,可以方便地獲取,進行按需組裝。


想象這樣一個場景:你想吃火鍋,在高德搜索附近的海底撈,通過高德地圖導航過去,同時高德會自動彈出海底撈支付寶小程序,你可以先點餐、領優惠券;吃完飯想去商場逛逛,進入商場的支付寶小程序,小程序里面有停車服務、商家的優惠券等。



在線
客服

在線客服服務時間:9:00-22:00

選擇下列產品馬上在線溝通:

客服
熱線

400-920-9933
137-51096791
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部
取消

3天打造營銷型小程序/公眾號/網站

填寫您的項目需求,免費獲取您的行業專屬解決方案。

昨天吉林快3开奖结果 免费精准资料期期精准 吉林长春麻将吉祥棋牌 车联网功能 北京pk10预测网站 王中王心水王中王资料 海南麻将app 捕鱼大师最新版本 韩国快乐8开奖软件 3肖主十码默认论坛 波克城市2.37