本文為火山引擎DataTester開(kāi)放平臺(tái)研發(fā)負(fù)責(zé)人的一場(chǎng)公開(kāi)演講整理。 內(nèi)容 詳細(xì)介紹了作為國(guó)內(nèi)A/B實(shí)驗(yàn)平臺(tái)引領(lǐng)者的 DataTester「開(kāi)放平臺(tái)」能力的技術(shù)實(shí)現(xiàn),以及如何通過(guò)「開(kāi)放平臺(tái)」使產(chǎn)品功能更加靈活化和定制化,以貼合企業(yè)在高速發(fā)展背景下的多元需求。
開(kāi)放平臺(tái)對(duì)于企業(yè)與業(yè)務(wù)來(lái)說(shuō),做到的不僅是能力的開(kāi)放、生態(tài)的開(kāi)放,與此同時(shí)還要能提供完善的業(yè)務(wù)解決方案,幫助企業(yè)提升效率。
與大規(guī)模應(yīng)用SaaS平臺(tái)的國(guó)外企業(yè)不同,中國(guó)的企業(yè)群體更加多元,從規(guī)模上,中小微企業(yè)和大型企業(yè)都有;從資歷上,一部分是崛起不久的新秀,一部分是正在數(shù)字化轉(zhuǎn)型道路上的老牌企業(yè)。因此中國(guó)的市場(chǎng)需求相比國(guó)外企業(yè)而言,要更加多樣化、多元化。
無(wú)論在工業(yè)方面還是在軟件方面,統(tǒng)一的標(biāo)準(zhǔn)會(huì)讓很多中國(guó)的許多企業(yè)喪失靈活性和效率,而多樣化意味著百花齊放,意味著彎道超車(chē)的可能性,但與此同時(shí)這也意味對(duì)于企業(yè)服務(wù)市場(chǎng)需求的碎片化。
如何解決企業(yè)的多元化需求?如何讓企業(yè)以更低的成本用上更貼合的服務(wù)?開(kāi)放平臺(tái)不是所有問(wèn)題的答案,但一定是很多問(wèn)題的解法。
開(kāi)放的 API 與工具,讓企業(yè)能夠系統(tǒng)地進(jìn)行更靈活的配置、更方便的集成,甚至有時(shí)候無(wú)需開(kāi)發(fā)人員介入就可以實(shí)現(xiàn)他們的目標(biāo)。
仔細(xì)拆分的話,
開(kāi)放平臺(tái)能解決企業(yè)的以下問(wèn)題:
1.整合資源:通過(guò)開(kāi)放平臺(tái),不同的企業(yè)和機(jī)構(gòu)可以將各自的資源進(jìn)行整合,形成一個(gè)更大的資源池,從而實(shí)現(xiàn)資源的共享和重復(fù)利用。
2.降低成本:通過(guò)開(kāi)放平臺(tái),企業(yè)可以減少開(kāi)發(fā)和維護(hù)自己的服務(wù)和應(yīng)用程序的成本,同時(shí)也可以減少運(yùn)營(yíng)成本。
3.提高效率:開(kāi)放平臺(tái)能夠提供標(biāo)準(zhǔn)化的服務(wù)和接口,從而加快應(yīng)用程序的開(kāi)發(fā)和部署速度,提高效率。
在這個(gè)背景下,火山引擎A/B測(cè)試 DataTester 推出了“開(kāi)放平臺(tái)”能力,致力于將企業(yè)個(gè)性化需求的共性抽取出來(lái),然后在共性的基礎(chǔ)上滿足個(gè)性化訴求,通過(guò)成熟的產(chǎn)品化能力,大大降低企業(yè)服務(wù)的應(yīng)用成本并提升用戶使用體驗(yàn),建立集成化的全家桶解決方案。
DataTester 的開(kāi)放平臺(tái)設(shè)立,能夠吸引更多的開(kāi)發(fā)者和創(chuàng)新者參與到平臺(tái)的生態(tài)系統(tǒng)中,從而為平臺(tái)提供更多的創(chuàng)新和新功能;企業(yè)也能通過(guò)開(kāi)放平臺(tái)與其他企業(yè)和機(jī)構(gòu)建立更緊密的合作關(guān)系,共同推動(dòng)行業(yè)的發(fā)展,實(shí)現(xiàn)合作共贏。
A/B 測(cè)試不僅是做增長(zhǎng)的利器,也是企業(yè)優(yōu)化效率、增加決策精確度的有效工具。
我們希望打造出來(lái)的A/B測(cè)試平臺(tái)并不僅僅局限為一個(gè)工具,而是能作為一個(gè)能力,可以嵌入到企業(yè)中與業(yè)務(wù)場(chǎng)景深度貼合;能增強(qiáng)企業(yè)的一部分核心功能和服務(wù);能在每個(gè)企業(yè)最核心的場(chǎng)景上,去實(shí)現(xiàn)價(jià)值的最大化。
火山引擎A/B測(cè)試(DataTester)作為一個(gè)輔助用戶增長(zhǎng)的工具,在實(shí)際使用場(chǎng)景中,已經(jīng)經(jīng)常會(huì)遇到企業(yè)不滿足于僅僅在我們的實(shí)驗(yàn)平臺(tái)上去使用標(biāo)準(zhǔn)品的A/B測(cè)試能力,他們經(jīng)常還會(huì)有一些多樣化的需求:
●將A/B能力與客戶自身系統(tǒng)打通,進(jìn)行一定量的定制
●將A/B能力集成到客戶自身的網(wǎng)站上去,不需要登錄火山引擎網(wǎng)站就可以開(kāi)啟實(shí)驗(yàn)、看報(bào)告
在以往為了應(yīng)對(duì)這些場(chǎng)景,我們采用的方法是堆人力去幫客戶來(lái)做定向開(kāi)發(fā),這樣不但我們的人力成本 hold 不住,同時(shí)由于我們這邊標(biāo)準(zhǔn)化缺失,產(chǎn)品策劃和研發(fā)效率也被拉低。
而DataTester的開(kāi)放平臺(tái)就是來(lái)解決這些問(wèn)題的。我們提供了較高的平臺(tái)化的定制能力,并且可以方便的將火山引擎DataTester的頁(yè)面與應(yīng)用集成到企業(yè)的網(wǎng)站中去,以滿足企業(yè)多元化的需求。
目前也已經(jīng)有逾百的外部企業(yè),接入了火山引擎A/B測(cè)試的開(kāi)放平臺(tái)能力,有了更多的定制化產(chǎn)品的空間。
DataTester的開(kāi)放平臺(tái)在技術(shù)上是如何實(shí)現(xiàn)的呢?
/ 集成工作臺(tái) /
設(shè)計(jì)思路:
1.配置化能力
開(kāi)放平臺(tái)最樸素的思路是做配置化,DataTester能夠根據(jù)客戶的需要,以自身已有的能力為基礎(chǔ),去做一些差異化的配置。 比如說(shuō)一些模塊的顯示/隱藏、默認(rèn)選擇項(xiàng)、文案等等的調(diào)整。
最近,DataTester又新增了一鍵配置主題色的能力:
但很明顯,這種調(diào)整能解決最樸素的配置的問(wèn)題,但是對(duì)于多樣化的需求,無(wú)法很好的滿足。原因在于我們對(duì)于用戶的輸出,還是作為一個(gè)完整的整體給到對(duì)方,對(duì)方如果希望新增交互,比如與自身系統(tǒng)聯(lián)動(dòng)獲取數(shù)據(jù),去填充實(shí)驗(yàn)名、版本、指標(biāo)等字段,并按照自己所特有的 UI 去進(jìn)行交互,這樣的需求僅僅通過(guò)配置化能力是不能達(dá)到的。
2.搭建能力
于是我們?cè)O(shè)計(jì)了表單搭建能力來(lái)應(yīng)對(duì)這種場(chǎng)景。
我們完全將我們每個(gè)字段對(duì)應(yīng)的視圖組件進(jìn)行了拆分,用戶可以隨意的打散、刪除、配置,在我們接口必填項(xiàng)約束前提下進(jìn)行隨意的組裝和調(diào)整。
用戶還可以用我們的命令行工具下載組件代碼模版,按照自己的需求去開(kāi)發(fā)組件,與自身數(shù)據(jù)進(jìn)行對(duì)接,然后通過(guò)命令行上傳到我們的開(kāi)放平臺(tái)上,接入進(jìn)我們的搭建表單中作為一個(gè)搭建單元,嵌入到我們的系統(tǒng)中來(lái)。搭建能力賦予了DataTester平臺(tái)的可擴(kuò)展性。
用戶進(jìn)行高度的定制的目標(biāo),一定不會(huì)是僅僅在DataTester網(wǎng)站內(nèi)部使用。既然已經(jīng)與自身系統(tǒng)有所聯(lián)動(dòng),這部分視圖也必然是直接內(nèi)嵌在自身系統(tǒng)中最為合適,于是引出了我們的嵌出能力。
3.嵌出能力
DataTester設(shè)計(jì)了完善的開(kāi)放 SDK 和嵌出鑒權(quán)方案,保證用戶通過(guò)流程化的能力,能快捷地將我們的模塊嵌入到自身的網(wǎng)站中,同時(shí)保持了便利性和安全性。
集成工作臺(tái)可以通過(guò)完善的引導(dǎo),進(jìn)行一站式的定制、發(fā)布、嵌出的能力。
●當(dāng)前配置化覆蓋范圍包括編程實(shí)驗(yàn)創(chuàng)編、列表、報(bào)告頁(yè);搭建覆蓋編程實(shí)驗(yàn)創(chuàng)編
●支持全站主題色定制
●通過(guò)微前端方式進(jìn)行嵌出,每一次發(fā)布都會(huì)沉淀一份前端資源,保證在客戶的使用場(chǎng)景下足夠穩(wěn)定,不會(huì)因?yàn)槲覀兊陌l(fā)布調(diào)整導(dǎo)致嵌出的部分失效
●前端提供開(kāi)放 SDK 供客戶嵌入資源,后端提供 OpenAPI SDK 供用戶接入鑒權(quán)
集成工作臺(tái)架構(gòu):
OpenAPI /
在做產(chǎn)品設(shè)計(jì)時(shí),我們希望能為DataTester提供一個(gè)統(tǒng)一的 OpenAPI 管理平臺(tái),解決以往的 OpenAPI 申請(qǐng)不靈活,審批鏈路長(zhǎng),無(wú)統(tǒng)一管理界面,無(wú)流量控制能力的缺點(diǎn)。
目前,DataTester已經(jīng)搭建了一個(gè) DataOpen 的站點(diǎn),用來(lái)承載內(nèi)外部的 OpenAPI 的管理、申請(qǐng)、流量控制、文檔以及調(diào)試工作。
整體的授權(quán)模式基于 OAuth2.0 的授權(quán)模式。
OpenAPI 的錄入都是使用 graphQL 的語(yǔ)法,所以我們的文檔界面完全是靠自動(dòng)化解析 graphQL 語(yǔ)法而生成的,具有非常規(guī)范的格式以及詳細(xì)的介紹。
聯(lián)調(diào)界面支持自動(dòng)獲取 access token,在前端頁(yè)面上進(jìn)行動(dòng)態(tài)調(diào)試。用戶只需要輸入 query 參數(shù)或者 body 即可發(fā)送請(qǐng)求看到對(duì)應(yīng)的響應(yīng)結(jié)果。
當(dāng)然,僅僅是 OpenAPI 的管理、流量控制、申請(qǐng)授權(quán)、文檔和調(diào)試的能力已經(jīng)是比較完善的 OpenAPI 平臺(tái)了。但這還不夠,DataTester后續(xù)還會(huì)增加API 編排的能力,設(shè)置產(chǎn)品化的界面。
/ 物料生態(tài) /
1.開(kāi)放組件
開(kāi)放組件是將 DataTester 中的模塊以組件的形式拆分抽象的產(chǎn)物,用戶也可以通過(guò)這些開(kāi)放組件搭建自己特有的 A/B 測(cè)試平臺(tái)應(yīng)用。
DataTester 之所以提供開(kāi)放組件而非完全讓用戶使用 OpenApi 來(lái)集成,是由A/B測(cè)試業(yè)務(wù)本身的復(fù)雜度決定的。如果客戶完全使用 OpenApi 且自行開(kāi)發(fā) UI,很難保證產(chǎn)品能力的完整性。
舉個(gè)例子,如果用戶使用 OpenApi,加自行開(kāi)發(fā)指標(biāo)管理/指標(biāo)創(chuàng)建組件,那用戶勢(shì)必要理解我們的 DSL字段。DSL(Domain Specific Language) 簡(jiǎn)單來(lái)講就是一個(gè) json 格式的文本,來(lái)靈活的定義復(fù)雜的查詢需求,是 analysebase 的查詢語(yǔ)法。
如果用戶去自行去學(xué)習(xí)理解 DSL,并為之開(kāi)發(fā)組件,想開(kāi)發(fā)出一個(gè)能力完整且沒(méi)有 bug 的 UI,那會(huì)耗費(fèi)大量的時(shí)間,時(shí)間可能要按月算。如果接入我們的開(kāi)放組件,一天就能調(diào)試好,這其中節(jié)省的時(shí)間,就是開(kāi)放組件的價(jià)值所在。
另一個(gè)例子就是流量計(jì)算器,用戶幾乎不可能自己開(kāi)發(fā),但如果用 DataTester 的流量組件接入,僅需半天時(shí)間就可完成。
2.物料中心
DataTester 的團(tuán)隊(duì)前端沉淀了很多基礎(chǔ)組件,業(yè)務(wù)組件,業(yè)務(wù)模板。 業(yè)務(wù)之間也經(jīng)常有組件或者模板復(fù)用的需求,物料中心就是管理和預(yù)覽組件的平臺(tái)。
用戶可以通過(guò) DataTester 開(kāi)放平臺(tái)的工具方便地上傳物料,目前搭建編輯器已經(jīng)對(duì)接物料中心,既可以支持我們自身組件的發(fā)布,又可以支持合作方自行開(kāi)發(fā)組件并與我們平臺(tái)進(jìn)行集成。
物料中心目前可以完成:
●組件的 上傳、下載
●實(shí)時(shí) Demo 預(yù)覽、組件文檔說(shuō)明
●版本管理
●支持同步到 npm 等前端通用包管理平臺(tái)
對(duì)于火山引擎DataTester而言,當(dāng)前的開(kāi)放平臺(tái)能力在面對(duì)企業(yè)的個(gè)性化需求時(shí),有點(diǎn)類似于“解方程”——企業(yè)客戶根據(jù)各自的業(yè)務(wù)需求“出題”,我們的團(tuán)隊(duì)來(lái)負(fù)責(zé)給他們“解題”并固化為產(chǎn)品方案。對(duì)比市面上常規(guī)的A/B實(shí)驗(yàn)平臺(tái)產(chǎn)品和過(guò)往的DataTester而言,這無(wú)疑是一大進(jìn)步,畢竟以前很多時(shí)候我們都不提供“解題”的能力。
但這種程度依然還不夠,DataTester的開(kāi)放平臺(tái)也正在快速迭代的進(jìn)程中。我們希望把我們的工具、能力進(jìn)一步迭代,尋找“求根公式”,能夠讓大多數(shù)情況下不需要我們自己下場(chǎng)去解題,而是讓企業(yè)通過(guò)開(kāi)放平臺(tái),就可以得到他們所需的答案。
我們的愿景是打造業(yè)界最易用、最科學(xué)、最高效的A/B實(shí)驗(yàn)平臺(tái),我們也一直會(huì)在這條道路上披荊斬棘、快步前行。
產(chǎn)品介紹
火山引擎 A/B 測(cè)試,限時(shí)免費(fèi),立即申請(qǐng)!
A/B 測(cè)試,擺脫猜測(cè),用科學(xué)的實(shí)驗(yàn)衡量決策收益,打造更好的產(chǎn)品,讓業(yè)務(wù)的每一步都通往增長(zhǎng)。火山引擎首度發(fā)布增長(zhǎng)助推「火種計(jì)劃」,火山引擎 A/B 測(cè)試作為「火種計(jì)劃」產(chǎn)品之一,將為您免費(fèi)提供 2 億事件量和 5 萬(wàn) MAU,以及高達(dá) 12 個(gè)月的使用權(quán)。后臺(tái)回復(fù)數(shù)字“8”了解產(chǎn)品
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.