PowerPoint 演示文稿

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "PowerPoint 演示文稿"

Transcription

1

2 业务中台之基石 赛意微服务生态平台助力企业业务中台平稳落地 演讲人 : 研发中心总监袁海岗

3 CONTENTS/ 目录 1 软件架构演进历程 3 赛意 SAAF 平台为企业业务中台赋能 2 赛意微服务架构全貌

4 软件架构演进历程 1

5 /5 1.1/ 软件架构演进历程 - 单体架构 不同功能模块偶尔在一起 部署在一起 打包在一起 快速 试错 编译在一起

6 /6 1.2/ 软件架构演进历程 - 单体架构优势 学习成本低 开发上手快 测试 部署 运维比较方便, 甚至一个人就可以完成一个网站的开发与部署. 早期在业务规模不大 开发团队规模较小的时候, 采用单 体应用架构团队的开发和运维成本都可控.

7 /7 1.2/ 软件架构演进历程 - 业务规模扩大 有的人忘记提交代码 发布麻烦 有的人忘记打包 有的人忘记修改工程依赖到最新版本 团队人员增加 (20+) 耗费了大量精力 严重影响了整体的开发和部署效率 业务规模扩大

8 1.4/ 软件架构演进历程 - 单体架构给 IT 带来的困扰 /8 部署效率低下应用打包部署测试一次甚至需要 10 分钟以上 团队协作开发成本高 5 个人以上的开发团队一起打包测试阶段只要一个功能有问题, 就需要重新编译打包部署, 重新预览测试 系统高可用性差一个 war 包中只要一个功能出现资源问题, 会造成 JVM 内存泄露, 异常退出, 整个系统的所有功能不可用 线上发布变慢代码膨胀之后服务启动的时间会变长 有些甚至超过 10 分钟, 如果集群规模超过 100 台, 则部署成本更高

9 赛意微服务架构全貌 2

10 /10 自动部署监控预警服务补偿 + 链路中心 Pinpoint 注册中心 Eureka 熔断中心 Hystrix Devops 平台分布式应用服务平台分布式消息服务分布式缓存服务任务调度服务分布式事务管理分布式数据库服务分布式文件服务关系型数据库服务 分布式搜索服务微服务生态赛意共享平台优雅下线运维保障 API 网关 Zuul API 管理 Swagger 配置中心 Apollo 日志跟踪中心 Logback+mongo 2.1/ 赛意微服务架构全貌

11 /11 2.2/ 赛意微服务如何保障事务 - 最终一致性 1. 通过 datasource 从 Oracle 中获取数据 2. 循环获取到的数据进行统计, 逐条推送到 MQ 中 3.MQ 分为两类 : 插入 Mysql 的 MQ, 修改 Oracle 的 MQ 4. 在推送到相关 MQ 之前将消息推送到 Redis =========== 主程序执行完毕 =========== 1.Mysql 的 MQ 出队完成逻辑处理, 删除 Redis 的数据 2.Oracle 的 MQ 出队完成逻辑处理, 删除 Redis 的数据 ============ 如果出现异常 ============ 1.MQ 出队处理失败,Redis 的数据不会丢失 2. 人介入在界面上手动让 Redis 的数据重新入队 3. 程序重新回到第二段继续执行 消息恢复系统 4. 如果依然失败, 人介入检查数据的正确性, 接口的可用性 5. 手动调整数据 接口, 让 redis 的数据重新入队 6. 程序重新回到程序第二段继续执行 主业务程序 业务操作 消息存储与发送 消息确认 消息查询 实时消息服务 MQ 集群 消息消费端应用 Redis 业务数据 消息数据

12 2.3/ 赛意微服务如何保障事务 - 实时一致性 TCC 消息查询 /12 两阶段提交 阶段一 TCC try 请求多个业务方预留业务资源 主业务服务 DB try confirm cancel 业务服务 A 阶段二 confirm 确认执行每个业务方的资源操作 cancel 取消执行每个业务方的资源操作 事务管理器 事务日志 try confirm cancel 业务服务 B

13 /13 2.4/ 赛意微服务技术架构全貌 采用 Java+H5+JS+CSS3 技术, 统一构建 PC 和移动端应用 前后端分离, 提升架构前端用户体验. 让后端开发统一 简单 快速 稳定缩短系统开发周期集成内存数据库 搜索引擎让系统运行更快速 降低系统开发难度 降低系统上线运维成本采用互联网主流技术在数据存储层引入新型分布式数据库 NewSQL-TiDB 可根据系统的复杂度 用户量等对技术组件进行裁剪, 技术架构部署架构收放自如 前端 UI PC 端 Mobile 端 数据交互层 (SpringBoot)WebService Restful(json 数据格式 JWT 轻量级的授权和身份认证规范 ) SCU2018 赛意用户大会数据访问层仅供来宾交流请勿做商业用途数据存储层 Hibernate/Mybatis Spring MQ SIE Commons Guava SpringCloud FastDFS HBase MySQL Oracle 内存数据库 (Redis/MongoDB) Activity

14 技术架构组件 Nginx VIP API 管理工具 Swagger /14 辅助工具 Kafka zuul zuul zuul SpringCloud 接口访问 http https redis-session fegin+ribbon redis fegin+ribbon servera servera session serverb serverb 1. 任何一个节点不工作, 不影响用户使用 2. 有新的微服务只通过 Jenkins+maven 自动发布即可 3. 微服务集群需要增加新的节点只需发布新的端口即可 pinpoin t 链路追踪中心 pinpoin t hystri x 熔断中心 hystri x 服务注册中心 eureka eureka eureka Apollo 配置中心 Apollo 配置中心 ActiveMQ lockbak Mycat SCU2018 DAL 赛意用户大会仅供来宾交流 Active 请勿做商业用途 MQ 数据存储 Mysql SIE FastDFS FastDFS 集群 SIE Hibernate TiDB SIE Redis Redis 分片 Spring SIE 会提供完整的 API Spring Mongo MongoDB 集群 SIE Solr Solr 索引库 SIE Hbase Hbase 分布式 SIE Hibernate Mysql 中间件 Mysql 分表分库 Canal zabbix 服务器监控

15 避免单点故障 DMZ 区域 企业内网 监控服务器 第三方应用 内网应用 企业内网应用 Schedule 集群 Server Center 第三方支付 反向代理双活 消息队列服务器 消息队列数据库服务器 HR SAP 内存数据库 关系型数据库 TIDB MQ Client MQ 数据库 代理服务器 ERP PD 阿里云服务器 TIKV

16 赛意 SAAF 平台为企业业务中台赋能 3

17 基础功能调度管理流程管理 自定义表单 平台运维 /17 基于 JAVA 开源技术构建开箱即用的应用平台功能架构 登录注销 注册任务 功能管理 启动任务 菜单管理 停止任务 角色管理 调度服务 用户管理 组织管理 消息管理 权限管理 消息模板 参数管理 消息设定 SCU2018 快速编码赛意用户大会站内信 仅供来宾交流单点登录批量发送请勿做商业用途 Portal 跟踪分析 流程在线设计 待办列表流程审批流程分析自定义报表 数据源类型数据源设定报表配置器报表应用分析报表权限管理 表单在线设计 表单管理表单查询内容管理模板定义组件管理栏目管理内容发布模型管理 服务器监控 Nginx 监控数据库监控调用链路监控熔断监控自动部署管理服务注册管理 API 管理事务手动补偿 TCC 事务管理 是一个应用的开发平台, 里面内置了很多的应用系统的集成功能 : 用户管理 菜单 权限管理 数据字典 / 快码等等, 这些功能都是开箱即用, 使项目周期尽可能减短 开箱即用常用外部接口 微信集成 邮件短信 信任登录 支付集成 物流集成 快速分享

18 3/ 业务中台 - 流程中心 /18

19 3/ 业务中台 - 消息中心 定义类型 / 消息模板. 让消息推送的内容 目标更精准清晰, 消息推送的渠道更多样化 / 成本更低 /19 短信 业务节点发送消息 规则引擎获取模板 规则引擎获取发送的对象 多渠道推送消息 邮件微信私信 App 推送站内信息

20 3/ 业务中台 - 调度中心 /20

21 3/ 业务中台 - 报表中心降低报表开发的门槛 提升报表展现的效果, 采用 SAAF 框架中动态服务 +Echarts+ 菜单权限 /21

22 3/ 业务中台 - 规则引擎 /22 业务片段 A 配置业务类型配置维度配置规则表达式 获取维度 获取维度值 来自于 service 来自于 redis 模板引擎 自动生成规则表达式配置页面 配置规则执行结果 默认值 获取业务线需要的维度 请求规则服务 SCU2018 赛意用户大会仅供来宾交流接受到返回结果请勿做商业用途 继续执行 执行规则引擎 返回执行结果 维度 - 值 服务 - 参数 单个结果 多个结果

23 3/ 业务中台 - 配置中心 Apollo 支持 4 个维度管理 Key-Value 格式的配置 /23 统一管理不同环境 不同集群的配置 配置修改实时生效 ( 热发布 ) 版本发布管理 灰度发布 权限管理 发布审核 操作审计 客户端配置信息监控 提供开放平台 API

24 3/ 业务中台 - 监控中心 /24

25 3/ 赛意微服务如何保障事务 -IT 组织架构 项目组 A 产品经理 运营人员 强大的服务能力, 前端轻量化部署 /25 项目组 B 功能顾问 用户有更多的入口接触到 IT 项目组 C 开发人员 大平台, 轻部署 总架构师 产品经理 功能顾问 运营人员 开发人员 产品经理运营人员数据标准统一功能顾问开发人员, 复用率高 视觉工程师总体规划, 快速应用, 快速迭代后端平台开发组 DBA 组 前端平台开发组 后端平台开发组

26 用户端 LBS /26 Web 应用共享服务中心 Cache 中心存储中心 基础平台 htt p 营销中心 会员中心 PC WAP APP http https Nginx Nginx SSO 报表 调度 BPM 菜单 XXX 系统条码系统 XXX 系统 OA XXX 系统 http http http http http 用户中心 配置 RPC 资源中心 供应商中心 账务中心 采购中心 预算中心 权限中心 JDBC 活动中心 商品中心 支付中心 决策中心 库存中心 条码中心 订单中心 API API API API API 商品 JDBC 活动会员库存 session session canal MQ M S S

27 SAAF 平台落地项目案例 4