 ServiceComb 开源微服务框架技术演进之路 巨震ServiceComb 开源微服务框架技术演进之路 巨震 软件工程师,华为 • 服务形态演进 • 基于SDK的传统微服务框架 • 何为Service Mesh • 演进:从SDK到Service Mesh • 拥抱Service Mesh开源生态 • 相关资源 #微服务 #Service Mesh #Sidecar #云原生 #SDK #数据面,控制面 #数据面,控制面 大纲 服务形态的演进 SDK SDK SDK SDK proxy proxy proxy proxy • 单体应用 • 业务模块划分 • 程序模块间调用 • 独立应用模块 • 通信:协议、队列 • SDK引用 • 通信:http、 RPC… • 服务治理 • 透明代理 • 通信:通用协议 • 服务治理 • Cloud Cloud Native部署 ServiceComb 一个基于SDK的“传统”微服务框架 Service Center service Java chassis Config Center service Go chassis Registration & Discovery configuration SDK架构 编程模型 运行模型0 码力 | 20 页 | 861.58 KB | 1 年前3 ServiceComb 开源微服务框架技术演进之路 巨震ServiceComb 开源微服务框架技术演进之路 巨震 软件工程师,华为 • 服务形态演进 • 基于SDK的传统微服务框架 • 何为Service Mesh • 演进:从SDK到Service Mesh • 拥抱Service Mesh开源生态 • 相关资源 #微服务 #Service Mesh #Sidecar #云原生 #SDK #数据面,控制面 #数据面,控制面 大纲 服务形态的演进 SDK SDK SDK SDK proxy proxy proxy proxy • 单体应用 • 业务模块划分 • 程序模块间调用 • 独立应用模块 • 通信:协议、队列 • SDK引用 • 通信:http、 RPC… • 服务治理 • 透明代理 • 通信:通用协议 • 服务治理 • Cloud Cloud Native部署 ServiceComb 一个基于SDK的“传统”微服务框架 Service Center service Java chassis Config Center service Go chassis Registration & Discovery configuration SDK架构 编程模型 运行模型0 码力 | 20 页 | 861.58 KB | 1 年前3
 微服务和Service Mesh 在多个行业落地实践微服务和Service Mesh 在多个行业落地实践 www.163yun.com 阶段一:单体架构群,多个开发组,统一运维组 www.163yun.com 阶段二:组织服务化,架构SOA化,基础设施云化 www.163yun.com 阶段三:组织DevOps化,架构微服务化,基础设施容器化 www.163yun.com Hailo Amazon Netflix cer/ Kaola 微服务成为互联网化架构的典型特征 www.163yun.com 微服务化设计要点 www.163yun.com 设计要点一:持续集成 www.163yun.com 设计要点二:接入层设计 www.163yun.com 设计要点三:无状态化 www.163yun.com 设计要点四:服务拆分与服务发现 www.163yun.com com 设计要点十:日志中心 www.163yun.com 设计要点十一:全链路监控 www.163yun.com 设计要点十二:全链路压测 www.163yun.com 微服务平台总览 容器平台 (多集群基础设施) Pod & Deployment 网络 Calico, OVS 存储 Ceph 滚动更新 弹性伸缩 日志中心 基础设施监控 开0 码力 | 39 页 | 3.06 MB | 1 年前3 微服务和Service Mesh 在多个行业落地实践微服务和Service Mesh 在多个行业落地实践 www.163yun.com 阶段一:单体架构群,多个开发组,统一运维组 www.163yun.com 阶段二:组织服务化,架构SOA化,基础设施云化 www.163yun.com 阶段三:组织DevOps化,架构微服务化,基础设施容器化 www.163yun.com Hailo Amazon Netflix cer/ Kaola 微服务成为互联网化架构的典型特征 www.163yun.com 微服务化设计要点 www.163yun.com 设计要点一:持续集成 www.163yun.com 设计要点二:接入层设计 www.163yun.com 设计要点三:无状态化 www.163yun.com 设计要点四:服务拆分与服务发现 www.163yun.com com 设计要点十:日志中心 www.163yun.com 设计要点十一:全链路监控 www.163yun.com 设计要点十二:全链路压测 www.163yun.com 微服务平台总览 容器平台 (多集群基础设施) Pod & Deployment 网络 Calico, OVS 存储 Ceph 滚动更新 弹性伸缩 日志中心 基础设施监控 开0 码力 | 39 页 | 3.06 MB | 1 年前3
 领域驱动设计&中台/微服务的容器化实践0 码力 | 19 页 | 1.86 MB | 1 年前3 领域驱动设计&中台/微服务的容器化实践0 码力 | 19 页 | 1.86 MB | 1 年前3
 领域驱动设计&中台/DDD促进传统架构微服务转型0 码力 | 42 页 | 8.85 MB | 1 年前3 领域驱动设计&中台/DDD促进传统架构微服务转型0 码力 | 42 页 | 8.85 MB | 1 年前3
 领域驱动设计&中台/可视化的遗留系统微服务改造03 可视化的划分遗留留系统 04 可视化的拆解遗留留系统 引⾔言 遗留留系统、微服务架构 任何⼈人类的设计都会腐化 软件当然也不不例例外 拆成微服务 微服务架构的九⼤大特征 •通过服务进⾏行行组件化 •围绕业务能⼒力力组织 •做产品⽽而不不是做项⽬目 •智能端点与傻⽠瓜管道 •去中⼼心化地治理理技术 •去中⼼心化地管理理数据 •基础设施⾃自动化 •容错设计 •演进式设计 可视化的划分遗留留系统 领域驱动设计、事件⻛风暴暴⼯工作坊、服务画布 好的设计 低耦合 如果做到了了服务之间的松耦 合,那么修改⼀一个服务就不不 需要修改另⼀一个服务。⼀一个 松耦合的服务应该尽可能少 地知道与之协作的那些服务 的信息。 ⾼高内聚 就是把相关的⾏行行为聚 集在⼀一起,把不不相关 的⾏行行为放在别处。如 果你要修改某个服务 的⾏行行为,最好只在⼀一 处修改。 领域驱动设计 都是在明确边界 微服务设计原则 1. 对⻬齐限界上下⽂文 2. 业务变更更频率与相关度 3. 系统⾮非功能性需求 4. 组织结构和康威定律律 5. 团队规模 6. 技术异构和现有系统复杂度 服务画布 已可视化 阿 ⼠士⼤大 1. 买家 2. 商户 1. 买家创建订单 2. 商户履履⾏行行订单 订单 商品 1. 订单 2. 商品 3. *** 明确服务的范围 明确核⼼心模型0 码力 | 54 页 | 3.85 MB | 1 年前3 领域驱动设计&中台/可视化的遗留系统微服务改造03 可视化的划分遗留留系统 04 可视化的拆解遗留留系统 引⾔言 遗留留系统、微服务架构 任何⼈人类的设计都会腐化 软件当然也不不例例外 拆成微服务 微服务架构的九⼤大特征 •通过服务进⾏行行组件化 •围绕业务能⼒力力组织 •做产品⽽而不不是做项⽬目 •智能端点与傻⽠瓜管道 •去中⼼心化地治理理技术 •去中⼼心化地管理理数据 •基础设施⾃自动化 •容错设计 •演进式设计 可视化的划分遗留留系统 领域驱动设计、事件⻛风暴暴⼯工作坊、服务画布 好的设计 低耦合 如果做到了了服务之间的松耦 合,那么修改⼀一个服务就不不 需要修改另⼀一个服务。⼀一个 松耦合的服务应该尽可能少 地知道与之协作的那些服务 的信息。 ⾼高内聚 就是把相关的⾏行行为聚 集在⼀一起,把不不相关 的⾏行行为放在别处。如 果你要修改某个服务 的⾏行行为,最好只在⼀一 处修改。 领域驱动设计 都是在明确边界 微服务设计原则 1. 对⻬齐限界上下⽂文 2. 业务变更更频率与相关度 3. 系统⾮非功能性需求 4. 组织结构和康威定律律 5. 团队规模 6. 技术异构和现有系统复杂度 服务画布 已可视化 阿 ⼠士⼤大 1. 买家 2. 商户 1. 买家创建订单 2. 商户履履⾏行行订单 订单 商品 1. 订单 2. 商品 3. *** 明确服务的范围 明确核⼼心模型0 码力 | 54 页 | 3.85 MB | 1 年前3
 领域驱动设计&中台/架构分层模型适配前端应⽤用 API服务 业务领域 基础设施 为前端应⽤用提供API服务,关注事务和分布式等技术性问题 领域模型和领域逻辑,关注业务概念。 访问外界系统(调⽤用外界系统)的技术相关实现。 后台服务 前端应⽤用 分层依据: ⼲干系⼈人和技术点 DDD分层参考架构 - 前端应⽤用 DDD重点关注后台业务服务,不不解决前端交互问题 前端界⾯面 API服务 业务领域 基础设施 ⼈人机交互设计和实现 UX关注的层 DDD分层参考架构 为前端和第三⽅方应⽤用提供API服务,关注服务编排,事务和 分布式等 前端应⽤用 应⽤用服务 业务领域 基础设施 ⼲干系⼈人: 应⽤用开发⼈人员 诉求: 灵活易易使⽤用的API 技术点: 性能,事务,分布式,安全等⾮非功能性需求 API服务 ⼯工作内容: • 接收外部请求并响应: 如HTTP请求, 消息处理理 • 事务管理理 技术⼈人员关注的层 腐化案例例: ⼤大量量业务逻辑堆积 模型: • View Object • Resource Model DDD分层参考架构 领域模型和领域逻辑,关注业务概念。 前端应⽤用 API服务 领域模型 基础设施 ⼲干系⼈人: 业务领域专家,业务领导 诉求: 表现业务概念和实现业务价值 要点: 业务建模和复杂性管理理 ⼯工作内容: • 建⽴立业务模型,并体现在代码上0 码力 | 39 页 | 2.54 MB | 1 年前3 领域驱动设计&中台/架构分层模型适配前端应⽤用 API服务 业务领域 基础设施 为前端应⽤用提供API服务,关注事务和分布式等技术性问题 领域模型和领域逻辑,关注业务概念。 访问外界系统(调⽤用外界系统)的技术相关实现。 后台服务 前端应⽤用 分层依据: ⼲干系⼈人和技术点 DDD分层参考架构 - 前端应⽤用 DDD重点关注后台业务服务,不不解决前端交互问题 前端界⾯面 API服务 业务领域 基础设施 ⼈人机交互设计和实现 UX关注的层 DDD分层参考架构 为前端和第三⽅方应⽤用提供API服务,关注服务编排,事务和 分布式等 前端应⽤用 应⽤用服务 业务领域 基础设施 ⼲干系⼈人: 应⽤用开发⼈人员 诉求: 灵活易易使⽤用的API 技术点: 性能,事务,分布式,安全等⾮非功能性需求 API服务 ⼯工作内容: • 接收外部请求并响应: 如HTTP请求, 消息处理理 • 事务管理理 技术⼈人员关注的层 腐化案例例: ⼤大量量业务逻辑堆积 模型: • View Object • Resource Model DDD分层参考架构 领域模型和领域逻辑,关注业务概念。 前端应⽤用 API服务 领域模型 基础设施 ⼲干系⼈人: 业务领域专家,业务领导 诉求: 表现业务概念和实现业务价值 要点: 业务建模和复杂性管理理 ⼯工作内容: • 建⽴立业务模型,并体现在代码上0 码力 | 39 页 | 2.54 MB | 1 年前3
 领域驱动设计&中台/演进式架构的平台化落地产品研发⽅方法的践⾏行行与推⼴广,对从业务探索、产品与 服务设计、演进式架构、敏敏捷开发、持续交付、数据 运营等端到端数字化业务的⽅方法与实践及其规模化应 ⽤用有深⼊入研究和丰富实践经验。 ⽬目前致⼒力力于帮助各⾏行行业客户实现数字化转型,建⽴立数 字时代的精益研发体系,提升规模化创新能⼒力力。近两 年年来,研究的重点放在数字化业务管理理的组织治理理与 动态投资组合管理理,最⼤大化投资成效。 2 component component component 分层单例例架构 微内核与插件架构 std std std std std std 事件驱动架构 Broker Meditator 微服务架构 checkout module module database ship module module database inventory module module compatible) Production 微服务研发平台落地 落地优秀实践,守护架构,降低微服务 研发学习成本 企业研发⼯工具链⽣生态 敏敏捷协作平台 部署发布 平台 持续交付流⽔水线平台 ⾃自动测试 平台 微服务系统设计,研发与运维管理理 微服务 /API设 计 代码 ⽣生成 契约 服务 架构 演进 微服务 运维治 理理 部署架 构 设计 统⼀一协作平台0 码力 | 42 页 | 2.95 MB | 1 年前3 领域驱动设计&中台/演进式架构的平台化落地产品研发⽅方法的践⾏行行与推⼴广,对从业务探索、产品与 服务设计、演进式架构、敏敏捷开发、持续交付、数据 运营等端到端数字化业务的⽅方法与实践及其规模化应 ⽤用有深⼊入研究和丰富实践经验。 ⽬目前致⼒力力于帮助各⾏行行业客户实现数字化转型,建⽴立数 字时代的精益研发体系,提升规模化创新能⼒力力。近两 年年来,研究的重点放在数字化业务管理理的组织治理理与 动态投资组合管理理,最⼤大化投资成效。 2 component component component 分层单例例架构 微内核与插件架构 std std std std std std 事件驱动架构 Broker Meditator 微服务架构 checkout module module database ship module module database inventory module module compatible) Production 微服务研发平台落地 落地优秀实践,守护架构,降低微服务 研发学习成本 企业研发⼯工具链⽣生态 敏敏捷协作平台 部署发布 平台 持续交付流⽔水线平台 ⾃自动测试 平台 微服务系统设计,研发与运维管理理 微服务 /API设 计 代码 ⽣生成 契约 服务 架构 演进 微服务 运维治 理理 部署架 构 设计 统⼀一协作平台0 码力 | 42 页 | 2.95 MB | 1 年前3
 领域驱动设计&中台/淘宝应用架构升级——反应式架构的探索与实践load ⾼高 • 资源利利⽤用率 应⽤用本身的解决⽅方案? 并⾏行行度有限 • ⽆无法纯业务依赖并发 • 微服务化让问题更更凸 显 • RT 累积 RT 与 ⽤用户增⻓长 RT 累积带来成本 • 过早引⼊入 cache • 每个服务都在设置超 时 维护成本、业务实现复 杂化 天⽣生异步的架构 流 Stream / Flow / Flux 什什么是流 ������ �������� �������� �����P�I� ��������� ������ ������ �������� ��A� 流引⽤用可被远程化 系统级的流式贯通 架构治理理能⼒力力加强: • 回压 • 三⻆角模式透传 • 业务快速截⾯面创新 • … 流的概念分层 业务编程框架(⾯面向业务) • 核⼼心概念:流 • 业务涉及的⼤大量量/强⼤大操作 (RxJava/RxJS/RxSwift) Project Reactor Akka Stream 特点 * 出现早(7年年前)、已发布 V2 * 在 Android ⼴广泛使⽤用,有⽤用户基础 * 全栈:客户端 + 服务端 + 前端 * 活跃度:RxJava Github Java 排名 No. 2 出现较晚(3年年) Spring 加持,有发展前景 Scala,⽤用户基础 少、普及难度⼤大 稳定性 ?0 码力 | 27 页 | 1.13 MB | 1 年前3 领域驱动设计&中台/淘宝应用架构升级——反应式架构的探索与实践load ⾼高 • 资源利利⽤用率 应⽤用本身的解决⽅方案? 并⾏行行度有限 • ⽆无法纯业务依赖并发 • 微服务化让问题更更凸 显 • RT 累积 RT 与 ⽤用户增⻓长 RT 累积带来成本 • 过早引⼊入 cache • 每个服务都在设置超 时 维护成本、业务实现复 杂化 天⽣生异步的架构 流 Stream / Flow / Flux 什什么是流 ������ �������� �������� �����P�I� ��������� ������ ������ �������� ��A� 流引⽤用可被远程化 系统级的流式贯通 架构治理理能⼒力力加强: • 回压 • 三⻆角模式透传 • 业务快速截⾯面创新 • … 流的概念分层 业务编程框架(⾯面向业务) • 核⼼心概念:流 • 业务涉及的⼤大量量/强⼤大操作 (RxJava/RxJS/RxSwift) Project Reactor Akka Stream 特点 * 出现早(7年年前)、已发布 V2 * 在 Android ⼴广泛使⽤用,有⽤用户基础 * 全栈:客户端 + 服务端 + 前端 * 活跃度:RxJava Github Java 排名 No. 2 出现较晚(3年年) Spring 加持,有发展前景 Scala,⽤用户基础 少、普及难度⼤大 稳定性 ?0 码力 | 27 页 | 1.13 MB | 1 年前3
 《58到家技术架构快速规划与落地》 - 沈剑实践 总结 1. 服务化 2. 监控平台 3. 调用链跟踪 4. 服务治理 58集团技术专场 一、初创公司技术架构体系建设 常见问题 58集团技术专场 初创公司技术体系常见问题 体系割裂 系统耦合 DB耦合 出问题不知道 查问题麻烦 定位问题周期长 一团麻 没人 58集团技术专场 二、 技术体系快速规划与 落地实践 58集团技术专场 1. 服务化-服务化之前高可用架构 � 服务化前系统架构 (1)端 (2)反向代理 (3)应用 (4)数据 58集团技术专场 1. 服务化-问题:代码拷贝 58集团技术专场 1. 服务化-问题:复杂性扩散 58集团技术专场 1. 服务化-问题:库耦合 58集团技术专场 1. 服务化-问题:DB耦合 58集团技术专场 1. 服务化-问题:SQL质量无保障 58集团技术专场 1. 服务化-解决方案:服务化 58集团技术专场 1. 服务化-58到家最佳实践 � 统一服务框架(D-SF) � 统一数据访问层(D-Dao) � 配置中心(D-Confcenter) � 消息总线(D-MQ) � 统一监控(D-Monitor) � 调用链跟踪(D-Tracker) � 服务治理(D-Watcher) 58集团技术专场 2. 监控平台 案例 问题 � 群内反馈 � 客服投诉 � 用户先感知0 码力 | 42 页 | 1.52 MB | 1 年前3 《58到家技术架构快速规划与落地》 - 沈剑实践 总结 1. 服务化 2. 监控平台 3. 调用链跟踪 4. 服务治理 58集团技术专场 一、初创公司技术架构体系建设 常见问题 58集团技术专场 初创公司技术体系常见问题 体系割裂 系统耦合 DB耦合 出问题不知道 查问题麻烦 定位问题周期长 一团麻 没人 58集团技术专场 二、 技术体系快速规划与 落地实践 58集团技术专场 1. 服务化-服务化之前高可用架构 � 服务化前系统架构 (1)端 (2)反向代理 (3)应用 (4)数据 58集团技术专场 1. 服务化-问题:代码拷贝 58集团技术专场 1. 服务化-问题:复杂性扩散 58集团技术专场 1. 服务化-问题:库耦合 58集团技术专场 1. 服务化-问题:DB耦合 58集团技术专场 1. 服务化-问题:SQL质量无保障 58集团技术专场 1. 服务化-解决方案:服务化 58集团技术专场 1. 服务化-58到家最佳实践 � 统一服务框架(D-SF) � 统一数据访问层(D-Dao) � 配置中心(D-Confcenter) � 消息总线(D-MQ) � 统一监控(D-Monitor) � 调用链跟踪(D-Tracker) � 服务治理(D-Watcher) 58集团技术专场 2. 监控平台 案例 问题 � 群内反馈 � 客服投诉 � 用户先感知0 码力 | 42 页 | 1.52 MB | 1 年前3
 大规模分布式系统架构下调测能力构建之道大规模分布式系统架构下调测能力构建之道 李鑫 大纲 分布式环境下开发的调测效率问题 应对之道 远程应用服务 契约测试 分布式消息服务 分布式缓存 分布式服务的“租户”隔离策略 总体调测框架实践 分布式环境下调测方法论 单体应用 服务化 微服务 小中型规模应用+小型团队 中大型规模应用+多团队协同 Cache DB NFS Load Balancer (超)大型规模应用+契约协同 应用的发展演变历史 服务化后的问题 多团队协同的分布式环境下,不仅环境“重”,而且外部的服务是别的团队开发 的,你很难得到一个稳定、快速的外部服务提供环境,在此背景下进行功能/接口 调测存在如下困难: 开发依赖重 联调成本高 变动把控困难 拆 应用拆分 数据拆分 团队拆分 分布式服务 API Gateway 分布式文件 分布式缓存 分布式消息 我依赖一个远程服务,但在负责它的团队把它上线之前,我什 么也做不了 2. 我负责的功能依赖一堆的远程服务,为了本地调测,我必须从 头到尾梳理代码,再写一堆的mock语句把他们全mock掉了。 每当业务逻辑变化了,代码中要增减相应的mock语句;每当依 赖服务上线后,要把测试用例中对应的mock语句去掉。对测试 用例的修改工作贯穿于整个开发工作之中。 3. 我和某同事通过服务框架进行调用联调,结果另一同事也把同0 码力 | 19 页 | 2.74 MB | 1 年前3 大规模分布式系统架构下调测能力构建之道大规模分布式系统架构下调测能力构建之道 李鑫 大纲 分布式环境下开发的调测效率问题 应对之道 远程应用服务 契约测试 分布式消息服务 分布式缓存 分布式服务的“租户”隔离策略 总体调测框架实践 分布式环境下调测方法论 单体应用 服务化 微服务 小中型规模应用+小型团队 中大型规模应用+多团队协同 Cache DB NFS Load Balancer (超)大型规模应用+契约协同 应用的发展演变历史 服务化后的问题 多团队协同的分布式环境下,不仅环境“重”,而且外部的服务是别的团队开发 的,你很难得到一个稳定、快速的外部服务提供环境,在此背景下进行功能/接口 调测存在如下困难: 开发依赖重 联调成本高 变动把控困难 拆 应用拆分 数据拆分 团队拆分 分布式服务 API Gateway 分布式文件 分布式缓存 分布式消息 我依赖一个远程服务,但在负责它的团队把它上线之前,我什 么也做不了 2. 我负责的功能依赖一堆的远程服务,为了本地调测,我必须从 头到尾梳理代码,再写一堆的mock语句把他们全mock掉了。 每当业务逻辑变化了,代码中要增减相应的mock语句;每当依 赖服务上线后,要把测试用例中对应的mock语句去掉。对测试 用例的修改工作贯穿于整个开发工作之中。 3. 我和某同事通过服务框架进行调用联调,结果另一同事也把同0 码力 | 19 页 | 2.74 MB | 1 年前3
共 32 条
- 1
- 2
- 3
- 4













