vivo瀏覽器的快速開發平台實踐-總覽篇
一、什麼是快速開發平台
快速開發平台,顧名思義就是可以使得開發更為快速的開發平台,是提高團隊開發效率的生產力工具。近一兩年,國內很多公司越來越注重研發效能的度量和提升,基於軟件開發的特點,覆蓋管理和優化、團隊工程實踐、個人工程實踐、優化流程四大方面。本文所講的快速開發平台可以大幅縮短需求周期,給研發效能帶來了開發快、上線快、風險低、成本低、門檻低的優點。
用製造業來做個對比,被譽為「工業之母」的模具可以大幅提升生產效率,而快速開發平台也可以做到在1分鐘內完成需求的開發、上線;另外3D打印機給製造業生產帶來了重要改變,快速開發平台也能換一種方式,用可視化拖拉拽完成需求開發。所有行業都在追求着化繁為簡,快速迭代的能力。所以低代碼大火的時候,大家都覺得這個概念近些年也見過,根因就是企業和技術人員都一直在追求更高的生產效率。
二、我們在做的事兒
目前行業內的快速開發產品大多都是為了解決企業級應用場景,vivo瀏覽器作為公司互聯網核心產品,在敏捷開發的節奏下,需求千餘運營後台的管控能力,另外又要求高性能、高並發、高可用以及需求的快速響應。所以我們在日常的工作中很頻繁的接到一些任務:迭代版本要完成大量後台開發;緊急需求需要半小時內完成後台的開發上線;線上後台需要快速增加一項新功能。
在此背景下,為了支撐業務快速迭代,推出應用於配置和運營後台的快速開發產品。總體來說,我們不斷升級我們的架構,就是圍繞以下幾點來實現快速開發:
-
支持後台快速設計開發,以及內容快速投放能力;
-
支持菜單、用戶等多維度權限控制;
-
支持自定義數據流程;
-
支持開發者二次開發和快速上線的能力。
三、產品架構兩步走
產品架構的演進都是服務於業務,跟隨着業務發展和技術潮流不斷發展變化的。起初我們就是從運營後台開發開始的,到現在持續為公司業務提供高效率、高標準、快速響應的開發解決方案。下面就正式開始介紹產品和架構。
3.1 一階段(配置平台)
2017年底,隨着內核版本升級,為了應對新內核的雲控要求,配置平台應運而生,並發展成為內核的十大特色能力之一,並持續為瀏覽器等數十個業務提供服務,在一年內踏入百億請求服務俱樂部。
3.1.1 平台簡介
相較json-editor之類快速生成頁面的產品,最大的不同就是平台化、服務化。基於統一的平台提供了表單設計器及數據存儲的解決方案,支持20多種組件類型、上百種組件屬性;並且提供通用後台接口;並在操作鏈路中預置了錨點,讓開發者能方便的去做一些定製化需求的開發。
所以平台化給產品帶來了更快速的集成和升級能力,使得可以不斷豐富表單組件,讓用戶快速享受到強大的表單DIY及雲端控制能力。服務化則帶來了高性能的配置投放能力,通過各端SDK的通道,完成整個配置生產、投放、消費的生命周期。下面將從配置生成引擎和無代碼高性能服務來分別介紹一下。
3.1.2 系統架構
3.1.3 表單設計器和渲染引擎
表單設計器是抽象後台表單,對組件進行歸納、設計、定義,提供一套可視化的操作來進行後台組件的增添設計的工具。後台生成引擎是我們快速完成後台的開發的利器,基於此可以1分鐘完成一個後台的開發、上線。
我們將後台抽象為布局,字段、操作三塊,基於組件+流程這樣的模型進行無限的拓展,支撐複雜多變的業務需求。下面先簡單列舉下的:
1)在主體布局上設計出運營後台的通用模板,在此之上進行配置開發,更加迅速,更加標準化。
-
主要布局包括全局操作、條件查詢區、運營規則、表格區、配置操作區。
-
全局操作是對針對錶單的操作行為,如發佈、添加、批量修改、導入、導出等;配置操作是對一條配置的查看詳情、編輯、刪除、預覽、審核等操作。
2)後台定義可以幫助完成諸如表單名稱、權限控制、數據模型定義、門戶集成、後台表單操作等一系列後台設計功能。將數據結構拆分為基礎組件和用於編排的複合組件。
-
基礎表單字段主要有文本、數值、選擇、圖片、文件、時間、標籤等組件,並對對應的組件有屬性上的配置增強,如文本長度校驗、正則校驗、圖片大小校驗、是否列表隱藏,是否可導出等;
-
複合組件主要有支持樹狀數據結構配置的子表單組件,還可以對多個基礎組件進行組合,以及多個組合組件的列表等等;
3)流程操作這塊主要打造了運營後台的編輯、刪除、發佈、預覽、審核的數據流程。
3.1.4 無代碼平台服務
如果說後台低代碼是我們實現快速開發的第一步,那融合低代碼能力具備智能投放和雲端控制的平台服務,則是從工具轉換為平台的核心因素。
3.1.4.1 智能投放
智能投放是一種數據實時編排,動態計算的API技術,加上我們客戶端和服務端SDK的通道建設,是快速實現需求的無代碼解決方案。它可以給平台開發帶來這樣的能力:
A表單配置的內容,可以直接通過接口下發,對於後續新增、修改的字段,也可實現接口自動下發;
A表單拼接B表單,可進行編排打包一起下發,或者可拼接B、C、D等無限個表單各自獨立的處理拼接邏輯;
A表單可聯動B表單數據,進行邏輯處理(表達式)後進行組裝編排,來實現更為複雜的業務需求;
數據的編排和玩法花樣很多,這裡就不再過多贅述。
3.1.4.2 雲端控制
雲端控制是實現線上智慧運營的解決方案,目前支持但不限於地區、運營商、人群畫像、人群灰度、客戶端版本號、安卓版本等等各種自定義控制元素來管控下發。
3.1.4.3 智能推送
通過結合自身的控制及配置能力和系統推送能力,來給運營提供這樣一種從後台出發更實時的觸達解決方案。
3.2 二階段(低代碼平台)
2021年,行業低代碼之風襲來,我們意識到一些局限性,也期望朝着產品化和更廣泛的管理後台更進一步,於是重新出發。
3.2.1 平台簡介
后羿是符合低代碼平台的定義的一款產品,提供了可視化編排能力的開發語言。相較於一階段的配置平台,設計了首頁門戶、運營平台、開發者平台、技術文檔平台,提供了二次開發和生態建設能力,支持各種數據通道開發方式,大幅提升了產品力。最終都是為了完成技術平台到技術產品的轉變和將低代碼開發變得更加簡單易懂、更加快速開發。
3.2.1 系統架構圖
3.2.3 系統說明
3.2.3.1 開發者平台&運營平檯子系統
開發者平台是整個平台的核心產品,開發者也是平台的核心用戶,我們為提供開發者提供了一站式的項目、模塊、菜單、頁面製作的能力。
-
用戶可以在開發者平台創建項目。完成創建後,就會自動生成一個後台門戶;
隨後創建目錄和菜單,即可進入編輯平台,就可以體驗到快速可視化開發的能力。另外還可以通過預置的各種強大的模板來快速的完成開發。
3.2.3.2 通用存儲子系統
通用存儲則是給運營數據提供了個一套標準化的存儲方案,支持用戶靈活使用自有倉、在岸外部倉等各類數據源。
-
不同於低代碼目前純粹的表單驅動、模型驅動;在所見所得的可視化開發後,可以智能生成對應的數據模型;
-
系統有一系列通用的運營後台操作接口,去完成對應的操作行為;也提供一些通用的數據處理流程,並利用二次開發來增強業務。
3.2.3.3 開放平檯子系統
開放平台則是我們平台和外部數據連接的一個紐帶,它是一個數據雙向同步的通道,提供了實時接收、異步批量等同步方式,配合有鑒權、頻限等一些安全措施。另外該系統也是我們去適配對接第三方服務的窗口。
3.2.3.4 投放平檯子系統
投放平台則是實現配置靈活下發的投放渠道,保留了配置平台成熟的下發能力和SDK集成能力,也會更多地去集成一些如內容庫、廣告這些業務能力,來豐富我們投放的業務屬性。
3.2.4 產品展示
1)門戶、運營、文檔平台展示
-
門戶:展示平台的介紹、能力,也同步集成了后羿其他的產品。
-
運營平台:匯聚接入系統,模塊、菜單、tab,為各運營團隊提供最簡化的操作。
-
文檔平台:維護后羿的操作文檔、設計文檔、部署手冊等等。
2)編輯平台展示
提供了所見即所得的可視化開發的能力,也提供了眾多模板方便快捷開發。
四、寫在最後
在完成了上述兩個階段的能力建設之後,我們具備了運營後台的快速開發能力,可以快速完成後台的開發上線,極大限度的提升研發效能。與此同時我們也面臨著配置語言是否標準,可視化操作是否易用,開發者是否容易上手,更複雜的後台需求是否可以達成,快速開發帶來的對現有產品開發流程的衝擊等等問題和挑戰。儘管如此我們也必將在產品設計上保持簡單、好用、邊界的產品特性,始終堅持快速開發的理念。
後續也將在此系列繼續更新通用接口、數據處理、存儲方案,生態建設和二次開發能力、高性能API實戰、災備能力建設等等文章,敬請期待。
作者:vivo互聯網服務器團隊-Lu Xiaohu