B端大数据应用的架构实践与思考

微风

2019/03/24 发布于 技术 分类

文字内容
1. B端大数据应用的架构实践和思考 何恺铎 国双科技 (Nasdaq:GSUM)
3. • 什么是B端大数据 • B端大数据架构:核心技术盘点 • B端大数据架构:多租户 • B端大数据架构:多态 • B端大数据架构:环境选择与适配 • B端大数据的未来展望
4. 什么是B端大数据? • 背景:企业数字化转型 • 企业自身的发展升级需要 • 企业软件、咨询与服务生态助力 • • 生产与制造 管理 决策 收集分析更细粒度、更大范围的数据 面向企业的大数据应用崛起 • 经典企业应用的大数据化 • 新型数据类企业应用进入视野 营销与销售 客户与服务
5. 什么是B端大数据? • • 常见的B端大数据领域 • 广告大数据 • 行为大数据 • 舆情大数据 • 工业大数据 • 经营大数据 • …… 业务价值:数据分析与决策 • 从无到有 • 从慢到快 • 从粗到细
6. • 什么是B端大数据 • B端大数据架构:核心技术盘点 • B端大数据架构:多租户 • B端大数据架构:多态 • B端大数据架构:环境选择与适配 • B端大数据的未来展望
7. B端大数据:核心技术盘点 • B端大数据受益于大数据生态圈的技术发展和成熟 • Hadoop事实标准 • 云端生态的兴起 实时引擎 Spark Streaming Kafka Streams 分布式队列 KafKa RabbitMQ RocketMQ 大数据处理 MapReduce Spark 大数据查询 Hive, Impala, Presto, Kylin AWS Redshift, Azure SQL DW 大数据存储 HDFS, Ceph, AWS S3, Azure Blob Storage 列存储 Parquet, ORC, Kudu, Proprietory Formats NOSQL数据库 MongoDB Redis Neo4j ElasticSearch AWS Aurora Azure CosmosDB
8. • 什么是B端大数据 • B端大数据架构:核心技术盘点 • B端大数据架构:多租户 • B端大数据架构:多态 • B端大数据架构:环境选择与适配 • B端大数据的未来展望
9. B端大数据架构:多租户 • 多租户是B端核心设计挑战之一 • 指同时服务多个客户,也即同时分析处理多个数据集合 • SaaS应用程序的经典架构问题 • • 大数据时代:更大的客户数量,更大的客户规模差异 多租户需要解决的问题实质 • 数据隔离与数据安全 • 性能隔离与调优 • 成本控制:资源成本与维护成本
10. B端大数据架构:多租户 • 常见方法 • 一租户一数据库:隔离性好,成本高 • 共享单一数据库:隔离性差,成本低 • 可否两者兼得、灵活控制? 数据访问层 DB DB Tenant ID DB Item ID Tenant-3 Data3240 Store Tenant-5 7222 DB ItemCol XXX XXX DB
11. • 多租户实践 Data Access Layer 数据访问层 DB Tenant ID Tenant-3 Tenant-5 Item ID ItemCol Data Lake 3240 XXX 7222 XXX DB DB DB DB
12. B端大数据架构:多租户 • 架构实践:基于“池”的多租户架构 • 池:资源集中和互相隔离的基本单位 • • 可按需容纳一个或多个租户 • 池内共享计算存储资源 • 应用实现租户到池的动态路由策略 数据访问层 Metadata 基于池的多租户架构的优势 • 在隔离和集中寻找平衡 • 可灵活掌控池的粒度以对应业务 • 以行业划分池 • 以性能级别划分池 • 以租户规模划分池 Pool1 Tenant 1,2,3 Pool2 Tenant 4 Pool3 Tenant 5,6
13. B端大数据架构:多租户 • 池的实现思路 • 池的架构实践 • 数据库选型 • 大数据集群 • 可共享的计算资源 • 高配单机 (with HA) • 可扩展的存储资源 • 云端选择 • 池内隔离性考量 • Azure SQL DW, AWS Redshift 单库vs多库 • Azure SQL Elastic Pool,AWS Aurora •
14. • 什么是B端大数据 • B端大数据架构:核心技术盘点 • B端大数据架构:多租户 • B端大数据架构:多态 • B端大数据架构:环境选择与适配 • B端大数据的未来展望
15. B端大数据架构:多态 • • 企业应用与生俱来的“多态”需求 • “多态”定义:业务抽象对不同用户在不同场景下的动态实现 • 产品角度:设置中心选项,支持逻辑、流程、展现的自定义 • 技术角度:可配置性,动态计算与查询 “多态”的解读 • “多态”反映了企业业务的复杂性:行业特点、规模大小、组织架构等 • “多态”是“开箱即用”的更高级形态:能力的暴露、调整和编排 • “多态”对技术架构提出了挑战
16. B端大数据架构:多态 • 架构实践:配置元数据是多态架构设计的核心 • 元数据深度参与和定义数据采集、计算、分析、查询等各个环节 • 需要考虑元数据的迭代和兼容 • NoSQL数据库的“甜区” 采集 计算 { "_id" : ObjectId("59538c7f09e1e2224846b988"), "SchemaVersion" : "v2", "ProfileName" : "XX汽车", 元数据中心 "ProfileType" : "WebAnalytics", MetadataDB "ProfileGroup" : "Auto", "Edition" : "Standard-Edition", "ExtraFeatures" : [ "AttributionModel", "RealtimeAnalytics" ], "Logics" : { 查询 展现 "ChannelLogic" : "Gridsum2018", "BounceCheckLogic" : "v3", } }
17. B端大数据架构:多态 • • 架构实践:计算时多态 • if-else, virtual function, dynamic params, strategy pattern, dataflow • 性能考量:partition-level polymorphism,动态代码生成 架构实践:存储与查询多态 • • • Schema:基准与扩展、预聚合 路由信息 动态查询层 • 动态路由 • 动态条件 多态实践:前端多态 • 业务查询 动态加载、布局与渲染 TenantI D 多态查询服务 全局过滤 SQL表达式生成 维度指标 StdCol Pool … ExtCol-n 元数据中心 Pool Pool
18. • 什么是B端大数据 • B端大数据架构:核心技术盘点 • B端大数据架构:多租户 • B端大数据架构:多态 • B端大数据架构:环境选择与适配 • B端大数据的未来展望
19. B端大数据架构:环境选择与适配 • SaaS环境:基础设施选择 • • 核心考量因素:规模、人员、成本、架构 SaaS环境:三种落地方式的权衡 • 自建机房和自购硬件 • 公有云 • • 先成为云的专家 • 看清云的趋势和路线图 混合云 • 颇为适合已有自建机房积累的情况
20. B端大数据架构:环境选择与适配 • • 本地部署:B端应用的重要形态 • 部署、实施、运维、服务整个生命周期 • 难点:不可选择的运行环境、定制化需求 本地部署:架构思考 • • 大数据集群仍然较笨重 • 应对:架构抽象和组件可替换性 • 应对:轻量化/容器化、软硬一体化 定制开发与版本碎片化 • 应对:核心代码复用,扩展代码可插拔 • 应对:架构对更新友好,勤作升级
21. • 什么是B端大数据 • B端大数据架构:核心技术盘点 • B端大数据架构:多租户 • B端大数据架构:多态 • B端大数据架构:环境选择与适配 • 未来展望
22. 未来展望 • • • 展望之一:融合大趋势 多层面数据集成与开放,帮助客户建立第一方数据中心 • 数据融合:B端系统间数据同步与互通,消除数据孤岛 • 能力融合:B端系统间能力集成和解决方案一体化 • 可能诞生行业标准 • PaaS与业务中台可能迎来更大发展 展望之二:云计算的崛起 适配云端,广泛合作,把握先机 • 越来越多的企业将采纳云作为核心基础设施 • B端应用需要兼容适配各种云的运行环境,充分利用云的弹性特点 最后:服务B端,大有可为 • 质量与效率背后的社会价值 加入B端,共创中国企业服务未来 J