更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群

企业为什么需要开放平台

开放平台对于企业与业务来说,做到的不仅是能力的开放、生态的开放,与此同时还要能提供完善的业务解决方案,帮助企业提升效率。

与大规模应用 SaaS 平台的国外企业不同,中国的企业群体更加多元,从规模上,中小微企业和大型企业都有;从资历上,一部分是崛起不久的新秀,一部分是正在数字化转型道路上的老牌企业。因此中国的市场需求相比国外企业而言,要更加多样化、多元化。

无论在工业方面还是在软件方面,统一的标准会让很多中国的许多企业丧失灵活性和效率,而多样化意味着百花齐放,意味着弯道超车的可能性,但与此同时这也意味对于企业服务市场需求的碎片化。

如何解决企业的多元化需求?如何让企业以更低的成本用上更贴合的服务?开放平台不是所有问题的答案,但一定是很多问题的解法。开放的 API 与工具,让企业能够系统地进行更灵活的配置、更方便的集成,甚至有时候无需开发人员介入就可以实现他们的目标。

仔细拆分的话,开放平台能解决企业的以下问题:

  1. 整合资源:通过开放平台,不同的企业和机构可以将各自的资源进行整合,形成一个更大的资源池,从而实现资源的共享和重复利用。

  2. 降低成本:通过开放平台,企业可以减少开发和维护自己的服务和应用程序的成本,同时也可以减少运营成本。

  3. 提高效率:开放平台能够提供标准化的服务和接口,从而加快应用程序的开发和部署速度,提高效率。

在这个背景下,火山引擎 A/B 测试 DataTester 推出了“开放平台”能力,致力于将企业个性化需求的共性抽取出来,然后在共性的基础上满足个性化诉求,通过成熟的产品化能力,大大降低企业服务的应用成本并提升用户使用体验,建立集成化的全家桶解决方案。

DataTester 的开放平台设立,能够吸引更多的开发者和创新者参与到平台的生态系统中,从而为平台提供更多的创新和新功能;企业也能通过开放平台与其他企业和机构建立更紧密的合作关系,共同推动行业的发展,实现合作共赢。

火山引擎 DataTester 如何做开放平台

A/B 测试不仅是做增长的利器,也是企业优化效率、增加决策精确度的有效工具。

我们希望打造出来的 A/B 测试平台并不仅仅局限为一个工具,而是能作为一个能力,可以嵌入到企业中与业务场景深度贴合;能增强企业的一部分核心功能和服务;能在每个企业最核心的场景上,去实现价值的最大化。

火山引擎 A/B 测试(DataTester)作为一个辅助用户增长的工具,在实际使用场景中,已经经常会遇到企业不满足于仅仅在我们的实验平台上去使用标准品的 A/B 测试能力,他们经常还会有一些多样化的需求:

  • 将 A/B 能力与客户自身系统打通,进行一定量的定制

  • 将 A/B 能力集成到客户自身的网站上去,不需要登录火山引擎网站就可以开启实验、看报告

在以往为了应对这些场景,我们采用的方法是堆人力去帮客户来做定向开发,这样不但我们的人力成本 hold 不住,同时由于我们这边标准化缺失,产品策划和研发效率也被拉低。

而 DataTester 的开放平台就是来解决这些问题的。我们提供了较高的平台化的定制能力,并且可以方便的将火山引擎 DataTester 的页面与应用集成到企业的网站中去,以满足企业多元化的需求。目前也已经有逾百的外部企业,接入了火山引擎 A/B 测试的开放平台能力,有了更多的定制化产品的空间。

DataTester 的开放平台在技术上是如何实现的呢?

集成工作台

设计思路

  1. 配置化能力

开放平台最朴素的思路是做配置化,DataTester 能够根据客户的需要,以自身已有的能力为基础,去做一些差异化的配置。比如说一些模块的显示/隐藏、默认选择项、文案等等的调整。

最近,DataTester 又新增了一键配置主题色的能力:

但很明显,这种调整能解决最朴素的配置的问题,但是对于多样化的需求,无法很好的满足。原因在于我们对于用户的输出,还是作为一个完整的整体给到对方,对方如果希望新增交互,比如与自身系统联动获取数据,去填充实验名、版本、指标等字段,并按照自己所特有的 UI 去进行交互,这样的需求仅仅通过配置化能力是不能达到的。

2.搭建能力

于是我们设计了表单搭建能力来应对这种场景。

我们完全将我们每个字段对应的视图组件进行了拆分,用户可以随意的打散、删除、配置,在我们接口必填项约束前提下进行随意的组装和调整。

用户还可以用我们的命令行工具下载组件代码模版,按照自己的需求去开发组件,与自身数据进行对接,然后通过命令行上传到我们的开放平台上,接入进我们的搭建表单中作为一个搭建单元,嵌入到我们的系统中来。搭建能力赋予了 DataTester 平台的可扩展性。

用户进行高度的定制的目标,一定不会是仅仅在 DataTester 网站内部使用。既然已经与自身系统有所联动,这部分视图也必然是直接内嵌在自身系统中最为合适,于是引出了我们的嵌出能力。

 3.嵌出能力

DataTester 设计了完善的开放 SDK 和嵌出鉴权方案,保证用户通过流程化的能力,能快捷地将我们的模块嵌入到自身的网站中,同时保持了便利性和安全性。

集成工作台可以通过完善的引导,进行一站式的定制、发布、嵌出的能力。

  • 当前配置化覆盖范围包括编程实验创编、列表、报告页;搭建覆盖编程实验创编

  • 支持全站主题色定制

  • 通过微前端方式进行嵌出,每一次发布都会沉淀一份前端资源,保证在客户的使用场景下足够稳定,不会因为我们的发布调整导致嵌出的部分失效

  • 前端提供开放 SDK 供客户嵌入资源,后端提供 OpenAPI SDK 供用户接入鉴权

集成工作台架构

OpenAPI

在做产品设计时,我们希望能为 DataTester 提供一个统一的 OpenAPI 管理平台,解决以往的 OpenAPI 申请不灵活,审批链路长,无统一管理界面,无流量控制能力的缺点。

目前,DataTester 已经搭建了一个 DataOpen 的站点,用来承载内外部的 OpenAPI 的管理、申请、流量控制、文档以及调试工作。

整体的授权模式基于 OAuth2.0 的授权模式

OpenAPI 的录入都是使用 graphQL 的语法,所以我们的文档界面完全是靠自动化解析 graphQL 语法而生成的,具有非常规范的格式以及详细的介绍。

联调界面支持自动获取 access token,在前端页面上进行动态调试。用户只需要输入 query 参数或者 body 即可发送请求看到对应的响应结果。

当然,仅仅是 OpenAPI 的管理、流量控制、申请授权、文档和调试的能力已经是比较完善的 OpenAPI 平台了。但这还不够,DataTester 后续还会增加 API 编排的能力,设置产品化的界面。

物料生态

开放组件

开放组件是将 DataTester 中的模块以组件的形式拆分抽象的产物,用户也可以通过这些开放组件搭建自己特有的 A/B 测试平台应用。

DataTester 之所以提供开放组件而非完全让用户使用 OpenApi 来集成,是由 A/B 测试业务本身的复杂度决定的。如果客户完全使用 OpenApi 且自行开发 UI,很难保证产品能力的完整性。

举个例子,如果用户使用 OpenApi,加自行开发指标管理/指标创建组件,那用户势必要理解我们的 DSL 字段。DSL(Domain Specific Language) 简单来讲就是一个 json 格式的文本,来灵活的定义复杂的查询需求,是 analysebase 的查询语法

如果用户去自行去学习理解 DSL,并为之开发组件,想开发出一个能力完整且没有 bug 的 UI,那会耗费大量的时间,时间可能要按月算。如果接入我们的开放组件,一天就能调试好,这其中节省的时间,就是开放组件的价值所在。

另一个例子就是流量计算器,用户几乎不可能自己开发,但如果用 DataTester 的流量组件接入,仅需半天时间就可完成。

物料中心

DataTester 的团队前端沉淀了很多基础组件,业务组件,业务模板。业务之间也经常有组件或者模板复用的需求,物料中心就是管理和预览组件的平台。

用户可以通过 DataTester 开放平台的工具方便地上传物料,目前搭建编辑器已经对接物料中心,既可以支持我们自身组件的发布,又可以支持合作方自行开发组件并与我们平台进行集成。

物料中心目前可以完成:

  • 组件的 上传、下载

  • 实时 Demo 预览、组件文档说明

  • 版本管理

  • 支持同步到 npm 等前端通用包管理平台

结语

对于火山引擎 DataTester 而言,当前的开放平台能力在面对企业的个性化需求时,有点类似于“解方程”——企业客户根据各自的业务需求“出题”,我们的团队来负责给他们“解题”并固化为产品方案。对比市面上常规的 A/B 实验平台产品和过往的 DataTester 而言,这无疑是一大进步,毕竟以前很多时候我们都不提供“解题”的能力。

但这种程度依然还不够,DataTester 的开放平台也正在快速迭代的进程中。我们希望把我们的工具、能力进一步迭代,寻找“求根公式”,能够让大多数情况下不需要我们自己下场去解题,而是让企业通过开放平台,就可以得到他们所需的答案。

我们的愿景是打造业界最易用、最科学、最高效的 A/B 实验平台,我们也一直会在这条道路上披荆斩棘、快步前行。

点击跳转 火山引擎A/B测试DataTester 了解更多

如何打造企业专属 A/B 平台?火山引擎 DataTester 开放平台技术揭秘的更多相关文章

  1. 火山引擎 DataTester:让企业“无代码”也能用起来的 A/B 实验平台

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 当数字化变革方兴未艾,无代码正受到前所未有的关注.Salesforce 的数据显示,52%的 IT 部门表示,公司 ...

  2. 基于PHP的快递查询免费开放平台案例-快宝开放平台

    快递查询是快递业务中极其重要的业务,免费的快递查询开放平台:快宝开放平台. 快宝开放平台:http://open.kuaidihelp.com/home,已经对接100多家快递公司,实现快递物流信息实 ...

  3. 定制化移动办公APP:打造企业专属的“钉钉”“纷享销客”,实现企业办公管理一体化

    一.项目背景 随着信息化社会的高速发展,市场竞争日益激烈,传统的管理和办公系统多且复杂,用户需要使用多个系统才可完成一项工作,而且各个系统的界面和风格存在差异,造成了信息查找不便,大大降低了用户的工作 ...

  4. iOS平台基于ffmpeg的视频直播技术揭秘

    现在非常流行直播,相信很多人都跟我一样十分好奇这个技术是如何实现的,正好最近在做一个ffmpeg的项目,发现这个工具很容易就可以做直播,下面来给大家分享下技术要点: 首先你得编译出ffmpeg运行所需 ...

  5. 如何又快又好实现 Catalog 系统搜索能力?火山引擎 DataLeap 这样做

      摘要 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理.资产.安全等全套数据中台建设,降低工作成本和数据维护成本.挖掘数据价 ...

  6. 火山引擎 DataLeap:3 个关键步骤,复制字节跳动一站式数据治理经验

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理. ...

  7. 火山引擎 DataLeap:揭秘字节跳动数据血缘架构演进之路

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维 ...

  8. O2O外卖玩众包 开放平台难解标准之痛

    开放平台难解标准之痛" title="O2O外卖玩众包 开放平台难解标准之痛">  有一种怪现象一直是国内互联网企业摆脱不了的附骨之疽--不管规模大小,总是削尖了脑 ...

  9. 还原火山引擎 A/B 测试产品——DataTester 私有化部署实践经验

      作为一款面向ToB市场的产品--火山引擎A/B测试(DataTester)为了满足客户对数据安全.合规问题等需求,探索私有化部署是产品无法绕开的一条路.   在面向ToB客户私有化的实际落地中,火 ...

  10. ios应用接入微信开放平台

    前几天试了一下服务端接入微信公众平台,昨天又看了一下APP接入开放平台 开放平台和公众平台的差别 公众平台针对的是公众账号,除了提供管理后台之外.也开放了若干接口,让微信server和开发人员自己的应 ...

随机推荐

  1. 数据库安装以及Navicat for MySQL 15安装

    1.数据库安装 2.安装数据库遇到的问题,解决方案:1,2 3.Navicat for MySQL安装 4.注册码

  2. springboot整合jpa sqlite

    前言 最近有关项目需要用到SQLITE,我先是使用Mybatis去连接SQLITE,然后发现SQLITE对BLOB支持不好,在网上看到相关教程可以写mapper.xml文件,加一个handler解决B ...

  3. 微信支付:wxpay.unifiedOrder(data)返回appid 与 openId 不配

    原因:小程序和APP.公众号等支付方式夸端口调用支付,后台配置多个appId时 A程序中的openid 在B程序中支付.即使用A程序的openid和B程序的appIdy去调用wxpay.unified ...

  4. Error running 'TestAlterNickname.test': Command line is too long. Shorten command line for TestAlterNickname.test or also for JUnit default configuration

    问题描述 如图IDEA报错问题,发生在我用JUnit进行测试时. 解决方法 1. 直接点击 default 2. Modify options -> Shorten command line 3 ...

  5. 2021-09 .NET 5.0.10 Update for x64 Client (KB5006192) 安装失败,错误代码:0x80070643

    上周五日常检查系统更新(强迫症晚期) 出现一项更新:2021-09 .NET 5.0.10 Update for x64 Client (KB5006192) details: https://www ...

  6. Istio 网格的出口定义者:深入了解 Egress Gateway

    本文分享自华为云社区<Istio Egress 出口网关使用>,作者:k8s技术圈. 前面我们了解了位于服务网格内部的应用应如何访问网格外部的 HTTP 和 HTTPS 服务,知道如何通过 ...

  7. VideoPipe可视化视频结构化框架更新总结(2023-12-5)

    项目地址:https://github.com/sherlockchou86/video_pipe_c 往期文章:https://www.cnblogs.com/xiaozhi_5638/p/1696 ...

  8. Windows风格的个人网盘,支持文档在线编辑

    这是一个Windows页面风格的个人网盘,支持普通文本.文档.表格.xmind等在线编辑,支持Windows的小组件,例如计算器.WhiteBoard.python 等,其他更多功能待你来发现,也待你 ...

  9. 【总结】MySQL使用优化

    一.表设计 1.避免使用null  占用额外空间.索引无效.检索麻烦 2.能用int 不用varchaer,能用varchaer 不用text 3.int 最好给默认值 0 .varchar empt ...

  10. [Ynoi2002] Goedel Machine

    题目描述 由于你不会设计哥德尔机,所以你决定先做一道数据结构题: 给定一个长度为 \(n\) 的序列 \(a_1\cdots a_n\).你需要回答 \(m\) 个询问,第 \(i\) 个询问给定一个 ...