NTTDATA 汽车行业数字营销平台微服务化实践q=servicecomb servicecomb.apache.org 朱小卫 NTTDATA中国上海分公司Digital Marketing部门开发经理 15年+研发经验,有丰富的电商、CRM等产品化实践经验 近三年专注于汽车整车的数字化转型解决方案 自我介绍 3 github.com/apache?q=servicecomb servicecomb.apache.org 聚焦汽车数字营销布局 线上传 及标准化化运营 活动数据,消费者数据,媒体 数据,车联网数据等,全渠道 数据收集追踪,建立数据分析 模型,辅助业务的决策优化 大数据分析 及应用 线上数字化布局 线下数字化布局 车联网及线下店端消费者旅程与线上消费 者旅程相结合,设计多种跨渠道跨屏互动, 引导进店消费者通过扫码,配车,留资等 行为整合线上数据 利用人脸识别等多种技术及平台,通过可 配置用户聚类评级模型和数据处理算法, • 智能客服 智能化 • 移动端优先、用户体验优先 • 易使用、培训便利化 • 管理多级可视化 • 系统易维护、易扩展开发 便利化 数字营销平台 6 github.com/apache?q=servicecomb servicecomb.apache.org 功能架构 线上渠道 主机厂/经销商入口 业务 中台 (核心) 其他系统 DMS 第三方 电商 会员体系 安全体系0 码力 | 11 页 | 2.25 MB | 1 年前3
消费者云CSE微服务实践语言特定的序列化机制、发布泛型、抽象接口等 微服务框架技术选型-灵活和轻量级架构 当前业务服务端都是非Web应用,所以丌需要运行在Web容器中, 需要类似Main函数可以直接拉起来的Standalone模式 服务框架要足够轻量级,可以按需加载类库,防止不当前业务的 三方库发生冲突 启停速度要快(秒级弹性伸缩)、资源占用要合理 微服务框架技术选型-微服务安全 Boot等框架集成 微服务框架技术选型-高性能、低时延 硬件成本已经是白菜价,软件性能丌重要? 消费者云业务服务集群规模大,单点的性能提升能够带来巨大收益 从用户体验看,端到端时延非常重要,分布式乊后带来的时延增加,是一个很大的挑戓 丌是所有业务都有苛刻的性能需求,丌同业务对性能的诉求丌同, 可以按需选择协议和传输方式,服务不传输协议、序列化方式解耦 微服务框架技术选型-成熟 YAML定义API 服务端和客户端都基于API定义,通过CSE提供的工具生成丌同语言的类库, 客户端可以丌导入服务端的类库定义,双方互相解耦 始终以在线的API定义为准,防止服务端私自修改接口代码(例如增减字段、 修改字段类型) 每日微服务流水线构建,及时发现接口丌兼容问题 CSE 消费者 提供者 模 拟 桩 服务 端 Mock 框架 客户 端 Mock 框架0 码力 | 22 页 | 1.39 MB | 1 年前3
张波-虎牙直播在微服务改造中的实践负载均衡服 务弹性能力的要求较高,在业务高峰如果不能快速扩容,容易出现全网故障 传统配置下发方式 负载均衡配置固话在配置文件中, 节点操作需要人工上系统操作增减 节点 配置中心监听方式 客户端主动监听配置更新,配置秒 级生效,新扩容服务主动拉取全量 配置,流量接入时长缩短3分钟+ 配置名字服务 配置IP方式 服务端下发文件更新配置,更新配 置生效时间长,由于需要预先知道 负责均衡集群的机器信息,扩缩容 负载均衡节点对接名字服务 虎牙负载均衡部署的机器一台机器上可能存在数百的配置,每次节点生效需要重新 reload配置,且节点新增或删除需人工上系统操作配置,配置生效对服务会有中断 配置IP方式 配置名字服务 客户端主动监听名字服务更新,节 点变更秒级生效 负载均衡配置固话在配置文件中, 节点操作需要人工上系统操作增减 节点 基于Nginx dyups模块的动态上下线 • 基于名字服务感知节点变化快速变更节点 dyups模块实现节点变更秒级生效 微服务架构中基于DNS的服务注册与发现 背景 公司内部注册中心比较多,常见的有zookeeper、 ectd、consul、eureka等。服务注册通常有三种: 自注册、第三方注册、注册中心主动同步,异构微 服务相互调用困难;公共DNS不稳定,解析结果生 效慢,解析失败率高;DNS无法提供内网环境的就 近接入能力,内部服务调用无法实现就近访问。 目标 DNS解析成功率0 码力 | 27 页 | 1.03 MB | 1 年前3
Metrics in ServiceComb 1.0.0-m1Actuator 计数器(Monitor)的实 现 性能相对高效 功能相对丰富 较弱,但是支持使用 Dropwizard Metrics集成实现 强化 数据发布 Push模式,自带三种 Observer Pull或Push,自带几种 Reporter Pull或Push,自带两种 Repository 框架相关 无框架绑定 无框架绑定(不绑定 Dropwizard) 侵入性 有,需要自己打点 有,需要自己打点 按需,Http自动记录基本信 息,也可以自己打点 易集成 是 是 是(限Spring Boot中启用) • 通过上面的比较可以看出,三种Metrics对于微服务的支持都很弱,例如微服务包含若干个 Operation,不写代码无法全面获取每一个Operation的各类指标(调用数、TPS、Latency等 等)。 ServiceComb 基本的资源使用状态 Consumer端 Latency、CallCount、TPS 包含操作级别和微服务实例级别 Producer端 waitInQueue、lifeTimeInQueue、 executionTime、Latency、 CallCount、TPS 包含操作级别和微服务实例级别 • 对于时延类的Metrics,都包含max、min、average三个指标 数据发布格式的选择0 码力 | 18 页 | 938.89 KB | 1 年前3
Apache ServiceComb 开源微服务社区减少基础设施运 维工作量 为解决微服务化痛点而生 在同一个业 务领域的微 服务中使用 了多种不同 语言进行开 发部署 使能多微服 务技术栈开 发的微服务 应用之间协 同工作和共 同治理 使能满足第三 方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 多语言运行环境 服务中心异构通信 财政数据统一呈现,业务全盘管控 基于先进研发理念,标准化研发环境和工具, 开发效率高,财政需求上线快 解除ISV绑定 降低业务监管难度 新需求上线快 案例:助力S省财政厅数字化转型 综控端 无人机管理系统 (单体架构) 地面站 无人机 地面站 地面站 无人机 无人机 无人机 无人机管理系统 (微服务架构) 网关 遥感勘测 航路规划 用户管理 设备控制 分量分析 移、降级熔断,提升复 杂分布式系统运维效率 系统性能大幅提升 • QPS提升2倍+ • 时延降低45% • CPU使用率下降56% 全自动化微服务流水线 • 个人、团队、项目组三级 • 从设计到上线,端到端全自 动化 案例:助力华为消费者云服务运营更敏捷 体质指数 :https://github.com/apache/servicecomb-java-chassis/tree/master/samples/bmi0 码力 | 15 页 | 2.86 MB | 1 年前3
ServiceComb在华为消费者云的亿级用户微服务实践用,专职的团队支撑 微服务框架 RPC框架 跨语言: gRPC Thrift ServiceComb Java语言: Dubbo Motan LB 内置LB: 客户端负载均 衡 外置LB: Nginx、 Ribbon SLB 注册中心 配置服务: Zookeeper etcd 缓存方案: Redis 数据库方案: DB + MQ 服务治理 遵循OpenAPI Specification,消费端、提供端只依赖API API描述:无论Rest API,或者RPC Highway API,统一使用Swagger YAML定义API 微服务代码生成:服务端和客户端都基于API定义,通过 ServiceComb提供的工具生成不同语言的类库,客户端可以不导入服务 端的类库定义,双方互相解耦 微服务接口测试:测试基于流水线的API定义生成自动化测试用例, Gitter: https://gitter.im/ServiceCombUsers/Lobby 不一刀切,根据业务实际需要选择同步或者异步微服务调用 微服务消费端 业务 线程 池 异步 I/O线 程池 NIO异步通信 微服务提供端 NIO异步通信 业务线程阻塞, 同步等待 唤醒等待的业务线程, 获取响应 1 2 微服务同步调用问题: 1、同步服务调用:业务线程将请求消息交给I/O线程之后,0 码力 | 15 页 | 1.15 MB | 1 年前3
Service Mesh在华为公
有云的实践Service Mesh在华为公 有云的实践 ⽥田晓亮 华为架构师 ⽥田晓亮 华为 架构师 8年软件⾏行业经验,曾就职于三星,2012年进⼊入云计算领域,对PaaS, DevOps,APM有深⼊入的研究和实践经验。⽅方案⽀支撑近千台VM中应⽤用部署管理监 控 2016年加⼊入华为担任架构师,负责微服务的Go语⾔言开发框架及Service Mesh设计 和落地,Go语⾔言微服务框架被华 Circuit Breaker Rate Limiting Config Center Scheduler 调⽤用场景1 • 透明TLS传输能⼒力,⽤用户可托管⾃自⼰己的证书 • 提供者可获得服务端限流能⼒力和处理链功能 ServiceA Mesher Mesher ServiceB https://10.100.2.3:30101 http://127.0.0.1:8080 http://127 Transfer Http Request Grpc Request Thrift Request Forward Service Registry • 负责发现注册 • 插件化注册中⼼心客户端 Registry Service center File System Kubernet es Consul Eureka 动态治理 • 对接华为公有云微服务引擎的Service0 码力 | 52 页 | 4.37 MB | 1 年前3
ServiceComb设计揭秘:标准与开发ServiceComb设计揭秘:标准与开发 华为CloudBU PaaS微服务引擎开发团队 代码阅读 • 一、系统架构解读 • 二、系统模块解读 • 三、框架的启劢不停止 • 四、框架运行时请求发送不处理过程 ServiceComb 开发框架 通信模型 (restful、 highway) 编程模型 (jaxrs、pojo、 ID可以拥有多个微服务实例; 系 统 模 块 图 框架的启劢不停止 框架运行时请求发送不处理过程 业务调用 构造请求元数据 消费端handlers 编码传输 请求解码 生产端handlers 业务代码映射 业务代码处理 服务消费端 服务提供端 如何参不到ServiceComb社区 • 线上: 关注微信公众号获取信息 加入微信群进行交流 通过邮件列表参不讨论0 码力 | 9 页 | 831.77 KB | 1 年前3
微服务创新新品发布servicecomb.apache.org 在同一个业 务领域的微 服务中使用 了多种不同 语言进行开 发部署 使能多微服 务技术栈开 发的微服务 应用之间协 同工作和共 同治理 使能满足第三 方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 分布式系统配置中心 Kubernetes - Docker - VM - Bare metal 4 github.com/apache?q=servicecomb servicecomb.apache.org 用户输入 第三方 输出 OpenAPI规范契约文件 契约与代码一致性校验报告 契约(接口)文档 异构微服务项目工程 (ServiceComb 或 SpringCloud) 遗留应用代码 (SpringMVC/POJO/JAX-RS) 的权限配置,相辅相成。 • 第三方认证支持:采用Open ID协议,对接微信、微博等三方认证系统。 • 安全高效:混合Token模式和Session模式,满足性能和安全性的最佳组合。 https://github.com/apache/servicecomb-fence 微服务鉴权 多种应用 场景支持 对接第三方认 证鉴权服务 多种认证 模式支持 简化模式 授权码模式 密码模式 客户端模式 灵活架构0 码力 | 12 页 | 2.96 MB | 1 年前3
Apache ServiceComb 微服务创新项目解读q=servicecomb 面对用户痛点持续创新 在同一个业 务领域的微 服务中使用 了多种不同 语言进行开 发部署 使能多微服 务技术栈开 发的微服务 应用之间协 同工作和共 同治理 使能满足第三 方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 多语言运行环境 服务中心异构通信 一键生成基于流行微服务框架的微服务工程 • 快速入门 https://github.com/apache/servicecomb-toolkit/blob/master/samples/README-ZH.md 用户 第三方 输出 遵循OpenAPI规范 API文件 代码与API 一致性比较报告 API文档 基于ServiceComb/SpringCloud 微服务工程 用户交互 转换 微服务开发框架 全的微服务认证鉴权能力 • 项目地址:https://github.com/apache/servicecomb-fence 多种应用 场景支持 对接第三方认 证鉴权服务 多种认证 模式支持 简化模式 授权码模式 密码模式 客户端模式 灵活架构 模式 纯Session模式 纯Token模式 混合模式 • 开箱即用:提供了默认的Authentication Server、Edge0 码力 | 13 页 | 1.24 MB | 1 年前3
共 32 条
- 1
- 2
- 3
- 4













