《2019年走近百度智能小程序开源背后服务端建设的那些事.pdf》由会员分享,可在线阅读,更多相关《2019年走近百度智能小程序开源背后服务端建设的那些事.pdf(15页珍藏版)》请在三个皮匠报告上搜索。
1、走近百度智能小程序开源背后服务端建设的那些事Agenda 百度智能小程序开源进展 开源分发体系建设 统一分发服务建设 双向选择/私有化分发 用户体系的建设与探索 开源联盟帐号体系建设 开源oauth能力 流量分发建设 监控与风控能力的建设 云能力打通(开放AI能力到开源宿主APP,云开发)百度智能小程序开源进展https:/ 11月宣布全面开月宣布全面开源源百度智能小程序服务端开源建设总览开源宿主服务端平台百度智能小程序 开源服务端平台包管理服务开源联盟帐号服务OAUTH授权服务端能力接入建设端到端AI能力实时日志平台(Ceres)开源联盟APP统一管理建设流量&分发建设运营&安全建设标准化实
2、时体验一致高效低成本灵活高可扩展物料分发服务实时分发推荐服务小程序应用市场服务实时检索服务实时异常日志监控巡检服务运营管控服务小程序元数据分发服务统一审核平台运营活动下发服务宿主管理开发管理CTS兼容性测试报表分析服务流量分发管理私有化小程序管理小程序开源全网分发服务建设 挑战如何在全网复杂的环境下,保障小程序包实时,精准分发,授权控制与高效的风控监管触达?小程序开发者统一审核平台包管理服务巡检服务开源联盟APP实时包分发请求(包签名/授权)基于长链接实时状态下发运营监管实时异常日志监控长链接日志上报包上线进入巡检池小程序开源宿主平台干预下发干预数据服务端同步发包送审统一分发标准&服务实时干预
3、&触达能力巡检&实时监控同步保障自动触发人工干预人工复查服务端自主干预小程序全网统一包分发服务 挑战承接全网每日30亿+包分发请求开源联盟APPPMS包服务三层存储查询优化MEM LRUREDISDB95%99%BOS 对象存储服务包分发服务分发策略包依赖管理包数据小程序Meta信息包分发请求Https包下载CDN分发规则查询包状态实时同步长连接签名加密包发布数据校验模块BinLog同步小程序校验签名解密小程序运行多维度分发策略支持实时分发状态校验多版本适配机制长连接主动干预机制全网统一包分发服务小程序双向选择&私有分发 背景小程序双向选择&私有分发,是开源建设中非常需要的一个能力双向选择:开
4、发者可以选择小程序可发布的开源宿主,宿主APP可以选择分发的小程序私有分发:限定某个小程序只分发到某个宿主APP上小程序开发者包管理服务开源联盟APP实时包分发请求(服务端分发过滤)基于长链接实时状态下发运营监管小程序开源宿主平台干预数据服务端同步开源宿主管理员开发者平台双向选择私有化双向选择私有化授权确认同步分发策略同步分发策略主数据服务小程序开源宿主平台分发策略数据分发策略数据宿主服务端数据分发(过滤)服务端自主干预小程序开源用户体系建设目标:针对开发者一次代码开发,所有开源APP上的小程序获得同构帐号服务能力1.建立统一的开源联盟用户帐号服务2.建立开源OAUTH帐号认证与授权机制OAU
5、TH授权服务开源帐号服务模块百度核心帐号服务开源联盟APP用户1.手机号验证登录APP1.1绑定/创建帐号,返回开源登录session(短时间有效)2用户打开访问小程序(开源登录session)小程序2.1 请求登录授权,用户确认授权小程序开发者服务端2.2 请求login操作(开源登录session)2.3 验证登录信息,请求获取session安全凭证2.4 在小程序设置一个新生成的登录标识session小程序3.在小程序内获取用户帐号信息 swan.getUserInfo()(小程序登录标识)3.1 请求获取用户信息,信息通过session安全凭证加密3.2 根据session安全凭证解密
6、数据,获取用户信息获取用户信息完成小程序开源物料分发建设物料定义:指用于小程序分发展现时所需要的内容,基本的物料形式包括文字、图片、视频、子链等类型。物料在小程序展现给用户时非常关键的介绍,物料建设也是开发者必须要参与的工作之一。挑战:数亿级的标准化物料数据,如何高效,精准的全网分发,为用户与开发者,宿主都带来价值?小程序开发者提交物料数据物料接入服务物料加工服务物料核心服务审核服务小程序WEB化服务单条/批量提交自动化抓取服务结构化提取加工策略化分析精加工策略机审图文,视频,链接人工审核物料正排存储MOLA分布式KV存储物料倒排检索ES集群结构化数据管理DB存储正排API服务审核服务API更
7、新物料物料检索服务消息队列同步服务物料管理服务消息队列开源物料分发服务物料推荐服务物料同步服务(在线/离线)开源APP联盟Server小程序开源风控与监控体系建设 挑战:如何在全网复杂环境下,及时发现出问题的小程序,并实现高时效的监管能力?风控建设事前处理实时监控事中干预联盟APP用户访问小程序(异常:白屏,性能慢,服务出错,代码运行异常)日志收集SDK集成日志服务日志接入Http2 PB 长链接顺序写落盘异步订阅数据清洗BaiduRPC 长连接可持久能力Ring buffer集成消息队列多topic实时质量分析服务白屏检测奔溃检测性能检测服务请求异常检测支撑每日数百亿条日志请求巡检服务巡检调
8、度引擎运营干预策略干预物料服务筛选/取获风页面URL真机检测WEB化检测消息队列Diff检测.质量干预(运营)下发到所有方.小程序开放端直联的AI能力 BDTLS:由百度内部研发,基于HTTP协议上增加了一层安全校验协议,基于DH(密钥交换算法),实现了一套动态换算生成密钥的机制,保障在开放全部源代码的前提下,仍能确保通信安全1.能够实现双向认证,通信内容加密。2.支持前向安全,若发生密钥泄露,也不能破解出历史请求的数据。3.满足1-RTT通信目标。设计要求:实现端内直联百度云AI API服务能力支持,保证开源生态内一致的API开发体验BDTLS支撑端直连AI服务实现 基于BDTLS安全方案,
9、实现端内直联百度云AI API服务能力支持联盟APPSwan-Cloud-AISDKBDTLS SDK百度公有云API Gate WayAI Service安全通讯服务握手服务通信服务BDTLS SDK1.两次安全握手,基于DH算法,获取加密密钥算子a1.1 根据客户端交换算子b,同步算出共享的密钥2.基于DH交换算法,基于算子a算出共享的密钥2.1 发送数据,根据密钥加密数据发送给服务端2.2 根据服务端算出的密钥,解密数据后,发送给内部服务小程序应用AI Swan.ai.rquest完整调用流程详解集成百度公有云赋能小程序开源建设云开发能力智能小程序云开发可以为开发者提供一种 Server
10、less 的小程序开发模式,开发者无需服务器的维护经验,既可开发上线一个服务端功能完备的智能小程序。功能包括:云数据库云数据库:云开发提供了基于 JSON 数据格式存储的云端数据库,开发者可以在智能小程序前端对云数据库进行增删改查的操作,同时也可以在云函数中对数据库进行操作。云存储云存储:开发者可以在智能小程序前端直接上传/下载文件,无需自建存储。云函数云函数:云函数是指在云端可执行的代码,开发者无需服务器的管理成本,可在开发者工具中对云函数进行开发、部署、同步。https:/ 支持端到云直达的连接能力,确保开源APP下使用方式一致性实现任何开源小程序APP端安全使用 swan.cloud API调用.联盟APPSwan-CloudSDKBDTLS SDK百度公有云云函数BDTLS SDK云开发 小程序Swan.cloud云数据库云存储APIGateWay集成https权限验证+数据签名http+BDTLS