微服务架构与领域驱动设计 - 王磊微服务架构与领域驱动设计 王磊磊 华为 - 2012技术专家 ThoughtWorks - Lead Consultant Sybase - Tech Leader �2 关于我 • 丰富的持续交付/微服务架构/DevOPS经验 • 《微服务架构与实践》作者 • 《DevOps实践指南》译者 • 中国⾸首批EXIN DevOps Master教练 • ⻄西安DevOps 微服务架构 �7 什什么是领域驱动设计 领域驱动设计 �8 领域驱动设计解决的两个核⼼心问题: 1.业务架构如何合理理的设计划分? 2.技术架构与业务架构保持⼀一致? 领域驱动设计是⼀一种设计⽅方法,围绕业务概念构建领域模型, 并通过分离技术实现的复杂性,从⽽而控制软件演化的复杂度。 Tacking Complexity in the heart of software �9 微服务架构与领域驱动设计? Layer Entity - 实体对象 • ⼀一个对象通过ID被唯⼀一标识 Value Object - 值对象 • 通过值确定对象的等价性 Domain Services - 业务逻辑 Aggregate - 聚合(根) • ⼀一组实体对象和值对象的集合 • 外部对聚合的访问通过聚合根 Factories - 对象⼯工⼚厂 Repository - 存储机制 Tactical-战术建模0 码力 | 28 页 | 1.84 MB | 1 年前3
ServiceComb 的前世今生微服务引擎开发团队 议题 • 企业应用微服务化的趋势和动机 • 面临的问题 • 解决思路和设计方案 • 从软件到服务 3 企业IT技术应用曲线 • 微服务在2016年成为仅次于 物联网和认知计算的第三热 门技术 • 2014年被很多人认为是企业上 云元年 • 2014年几乎企业应用都没有 考虑的Docker在2015年就已 经被所有人纳入应用计划 option.com/ 传统企业应用开发模式 开发 产品发布计划 开发 集成开发 运维人员替换 部 署 旧 版 本 开发 开发 测试/发布 • 技术实现单一,需要想办法用一种技术解决所有问题 • 只能按大颗粒系统发布版本,响应周期长 (小特性版本3-6个月,每年1个大版本) • 无法做到永远在线,大版本升级时,要停机中断服务 微服务化的应用构建和发布 protobuf3 多语言多框架代 码生成器 多语言Protobuf3对象 编码库 Java 微服务编程框架 Go 框架 其他 框架 Spring MVC JAX-RS POJO Martini Mux Java protobuf对象 Go protobuf对象 编辑 生成 生成 生成 提取 转换 生成 Restful0 码力 | 16 页 | 1.45 MB | 1 年前3
Service Mesh在华为公
有云的实践Mesh服务商⽤用上 线公有云 • 简介 • 实现⼀一个Service Mesh • 使⽤用Service Mesh快速构建微服务 • ⽣生态与扩展 • Service Mesh在华为内部的技术演进 我们在构建微服务,⽽而构建微服务是困难 的 微服务架构模式引⼊入的问题 路由规则 • 引流 • ⽀支持权重 • 根据消费者信息或请求特征进⾏行引流 Consumer 0.2 Provider cookie:version=0.2 Consumer 0.2 Chassis 语⾔言开发框架 Go-micro Go-kit 还有其他解题思路么? • 多语⾔言SDK⽀支持 • 学习曲线 • 绑定特定技术栈,不容易切换⽅方案 • ⽼老旧单体应⽤用 抽象 L7 SpringMVC,VertX,beego L6 Json, Protobuf, XML L5 Http 1/2, grpc L4 • Service Mesh在华为内部的技术演进 第⼀一代:基于Nginx的微服务代理 • 2013年,微服务开发平台中的组 件,公司内部某电信业务 • 400多个微服务,800左右实例, 200多个数据中⼼心 Sidecar模式 • 基于容器的分布式系统设计模式 • 容器可以共享存储与⺴⽹网络的能⼒力 应⽤用程序容器 ⽇日志同步⼯工具容器 存储卷 Sidecar优势 • 以容器0 码力 | 52 页 | 4.37 MB | 1 年前3
微服务架构及ServiceComb实践什么是微服务架构? 一个既“简单”的又“强大” 的后端架构模式。 简单: • 每个服务相对较小并比较容易开发维护。 • 服务可以独立的部署。 • 更适合小团队(个人)开发管理 • 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 ] https://github.com/apache?q=servicecomb 从Weather微服务应用谈起—简单性 表 内容 关键字段 regions 存储地区信息 id, regionName weathers 存储当前时间的天气信息,包括,气温,风向…. id, temperature, pressure… 1…..* 接口 内容 currentWeather 返回当前天气 11.7w PV 电商“抢购”“场景中企业中遇到的困难 1. 性能要求不断优化,和不能引入Bug之间的矛盾。 2. “变态”级别的高可用性要求。 3. 声誉和法律风险。 4. 抢购体验 商家的技术能力 产品质量。 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb0 码力 | 14 页 | 2.04 MB | 1 年前3
Metrics in ServiceComb 1.0.0-m1Metrics技术细节 Metrics是什么 • 直译是“度量”,不同的领域定义有所区别,在微服务领域中的 定义: “对微服务的某个指标给予一个可量化程度的测量” • Metrics应该具备的特性: • Comparative(可对比):指标能够在不同的微服务或同一个微服务的多 个实例之间比较; • Understandable(易理解):指标所衡量的对象、计算方法和输出的结果 衡量Metrics实现 优劣的标准: • 关键指标覆盖 全 • 计量准确 • 高性能低资源 占用 • 无侵入或低侵 入 Metrics的分类 • Metrics有很多种分类方式,在技术实现上我们偏向以取值方式区 分为两种: • 1. 直接取值 • 任何时候都能够立刻获取到最新值,例如资源使用率,包括CPU使用率,线程数, Heap使用数据等等,还有调用累加次数,当前队列长度等等。 _ metrics_producer_executionTime_total 0.0 • 经过权衡,我们最后决定发挥ServiceComb契约的优势,直接返回 RegistryMetric实体对象 使用固定统计周期 劣势: • 由于是预设,很有可能与查询(抓取)间隔不同。例如你设置了统 计间隔为15秒,但是使用Prometheus作为监控系统设置抓去间隔为 5秒,那么Prome0 码力 | 18 页 | 938.89 KB | 1 年前3
NTTDATA 汽车行业数字营销平台微服务化实践线上数字化布局 线下数字化布局 车联网及线下店端消费者旅程与线上消费 者旅程相结合,设计多种跨渠道跨屏互动, 引导进店消费者通过扫码,配车,留资等 行为整合线上数据 利用人脸识别等多种技术及平台,通过可 配置用户聚类评级模型和数据处理算法, 实现消费者深度洞察,提高销售线索质量 及转化率,助力经销商销售 新媒体营销数字化布局 从微信营销及小程序开始布局其他新兴媒体渠道,如抖 servicecomb.apache.org 汽车数字营销平台微服务化转型 打造集中化、标准化、智能化、便利化的汽车品牌数字营销平台 支持数字营销快速、多样、变化的业务场景,避免系统分散重复,将技术投资回报最大化。 以智能化,可持续发展思路,打造车企C2B2C用户体验优化闭环。 可配置适应业务生长,帮助企业更快速、灵活地应对不断变化的市场需求,随时调整业务模式快速配置,以最低成本适应弹性的数据需求。 协同平台 价值体系 流程体系 第三方渠道 展会 数字 展厅 PC门户 企业微信 官网 短信 小程序 公众号 标准体系 标签体系 数据 中台 …… 存储服务 安全服务 接口网关服务 日志服务 网络服务 …… 短信服务 技术 中台 ……. 消费者互动数据 消费者账号 消费者基础信息 消费者交易数据 消费者服务数据 ….. 人 人车关系数据 车况数据 车辆维修保养数 据 …0 码力 | 11 页 | 2.25 MB | 1 年前3
Apache ServiceComb 开源微服务社区提供一站式的微服务开源解决方案,致力于帮助企业、用户和开发 者将应用轻松微服务化上云,实现对微服务应用的高效运维管理 华为开始实践 微服务 2012年 2019 • 2018 OSCAR尖峰开源技术创新奖 • 2018 COSCL首届中国优秀开源项目一等奖 • 2019 首个行业微服务标准的核心参考框架 携手解决 微服务痛点 原则 • 中立 • 开放 • 标准化 • 无商业Lock-in 跨服务事务一致性 • 多语言,同时选型 • 灵活扩展、定制 • 减少基础设施运 维工作量 为解决微服务化痛点而生 在同一个业 务领域的微 服务中使用 了多种不同 语言进行开 发部署 使能多微服 务技术栈开 发的微服务 应用之间协 同工作和共 同治理 使能满足第三 方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 电子凭证 工作流 标准存储 数据交换 …… 财政微应用 预算 编制 指标 管理 …… 财务微应用 会计 核算 项目 库 …… 统一基础 数据规范 统一财政 业务数据 标准存储 统一应用 支撑平台 总账结构 统一纵向 层级交换 机制 统一信息 安全体系 软件开发服务 ServiceStage 大数据服务 系统集成服务 IaaS(计算、存储、网络、安全) 中间件服务0 码力 | 15 页 | 2.86 MB | 1 年前3
微服务的设计原则与⽣态系统 - 王磊微服务的设计原则 与⽣生态系统 王磊磊 华为公司技术专家 ThoughtWorks⾸首席咨询师 Sybase Tech Leader • 《微服务架构与实践》作者 • 《DevOps Handbook》中⽂文译者之⼀一 • 国内较早倡导和实践微服务的先⾏行行者 • 对于⾃自动化测试、持续交付、DevOps有丰富的实践经验 • ⻄西安DevOps Meetup 联合发起⼈人 什什么是演进式架构? ⽀支持增量量式变更更作为第⼀一原则 什什么是演进式架构? • 演进是动态平衡 • 痛苦的事情提前做 • 运维意识是关键 演进式架构 拥抱变化 动态平衡 业务 技术 团队 架构的演进基于业务、技术和团队的平衡 - 动态的平衡 演进式架构 - 痛苦的事提前做 识别问题并⽤用⾃自动化的⼿手段消除痛苦 演进式架构 - 运维意识是关键 架构只是抽象,直到真正投⼊入运维产⽣生价值 康威定律律:组织产⽣生的设计成果等同于组织内的协作结构 微服务架构的设计原则 • 竞争能⼒力力平衡 • 围绕业务构建 • “去”中⼼心化 • ⾃自动化“⼀一切” 去“中⼼心化” - ⽤用合适的技术解决问题 数据库作为集成点 去“中⼼心化” - 业务持有数据 ⽤用户会话 Redis 会话服务 上下⽂文 购物⻋车 购物⻋车 产品数据 Mongo 产品服务 上下⽂文 上下⽂文0 码力 | 62 页 | 6.65 MB | 1 年前3
ServiceComb 微服务框架ServiceComb 微服务框架 杨波 ServiceComb 社区 / 华为开源软件能力中心 全栈生态:具有完整开源生态技术栈的解决方案,完全无商业Lock-in,支持平滑上云 配置中心生态 Others…… 微服务生态 ServiceComb 微服务解决方案 处理链 ServiceComb微服务解决方案 Java编程 (POJO/SpringM VC/JAX-RS) ServiceComb子系统 Saga 分布式事务解决方案 服务中心 Java微服务SDK Go微服务SDK ServiceMesh ServiceCenter 是一个使用Go构造的、建立在etcd存储上的高性能、高 可用服务中心。 Java Chassis是一个由编程模型、运行模型、通信模型和服务契约四个 部分组成的微服务框架。 Saga 是一个微服务数据一致性解决方案。 ServiceComb的开放性设计 基于Pack模型的新构架 由 Alpha 和 Omega组成 •Alpha充当协调者的角色,主要负责对事务的 事件进行持久化存储以及协调子事务的状态,使 其最终得以与全局事务的状态保持一致,即保证 事务中的子事务全执行,或全不执行。 •Omega是用户程序侧代理,负责对网络请求 进行拦截并向Alpha上报事务事件,并在异常情0 码力 | 11 页 | 668.81 KB | 1 年前3
庖丁解牛:华为云微服务工具解放开发者Confidential 3 微服务架构的优势 因素 单体架构 微服务架构 交付速度 较慢 较快 故障隔离范围 线程级 进程级 整体可用性 较低 更高 架构持续演进 困难 简单 沟通效率 低 高 技术栈选择 受限 灵活 可扩展性 受限 灵活 可重用性 低 高 实现业务复杂性分解难度 困难 容易 产品创新复杂度 困难 容易 一致性实现成本 低 高 时延 低 高 资源成本 低 高 关联查询复杂度 应用上云 + IaaS 应用微服务改造 + PaaS 业务创新 如AI 拆表 拆界面及业务逻辑 微服务化改造典型流程 挑战:强业务相关, 必须业务+微服务专 家介入,投入大、时 间长; 关键技术:应用微服 务化改造工具套件 根据sql、日志、代码实现微服务拆分,并修改相关代码。 Huawei Confidential 7 微服务拆分工具-表自动分库 SQL 语句 SQL 语句 SQL algorithm (greedy/clustering/…) output 数据拆分 建议文件 解析代码,搜集sql语句 开发时预处理:通过 Antlr4工具生成java可识 别的解析规则的对象, 埋入源码 生成sql语句集(Mysql 或其他DB的方言) mysql/oracle 的规则文件 生成表关联关系list 计算权重,生成图 输出权重图, 选择、调用 指定算法 贪婪/谱聚类算法0 码力 | 14 页 | 1.54 MB | 1 年前3
共 37 条
- 1
- 2
- 3
- 4













