Service Mesh在华为公
有云的实践和落地,Go语⾔言微服务框架被华为5G核⼼心⺴⽹网络采⽤用,Service Mesh服务商⽤用上 线公有云 • 简介 • 实现⼀一个Service Mesh • 使⽤用Service Mesh快速构建微服务 • ⽣生态与扩展 • Service Mesh在华为内部的技术演进 我们在构建微服务,⽽而构建微服务是困难 的 微服务架构模式引⼊入的问题 路由规则 • 引流 • ⽀支持权重 • 根据消费者信息或请求特征进⾏行引流 不适合改造的单体应⽤用 • 开发出开的应⽤用既是云原⽣生的⼜又具有独⽴立性 没有银弹 • 新的故障点 • ⼀一定程度的性能降低 • 侵⼊入式框架有更强的定制和扩展能⼒力 • 部署复杂性 • 简介 • 实现⼀一个Service Mesh • 使⽤用Service Mesh快速构建微服务 • ⽣生态与扩展 • Service Mesh在华为内部的技术演进 第⼀一代:基于Nginx的微服务代理 ⽀支持多种部署⽅方式 • 占⽤用资源⼩小(闲置10多M,并发运⾏行时30多M) • 简介 • 实现⼀一个Service Mesh • 使⽤用Service Mesh快速构建微服务 • ⽣生态与扩展 • 与PaaS平台结合 • Service Mesh在华为内部的技术演进 整体架构 Mesher Service Mesher Service Mesher Service Mesher0 码力 | 52 页 | 4.37 MB | 1 年前3
Apache ServiceComb 开源微服务社区微服务 2012年 2019 • 2018 OSCAR尖峰开源技术创新奖 • 2018 COSCL首届中国优秀开源项目一等奖 • 2019 首个行业微服务标准的核心参考框架 携手解决 微服务痛点 原则 • 中立 • 开放 • 标准化 • 无商业Lock-in • 社区健康发展 ServiceComb 首个Apache微服务顶级项目 Java微服务框架: https://github 编程模型 JAX-RS 编程模型 通信模型 RPC 插件式扩展 开箱即用 编程/通信模型分离 轻量级边缘服务 纯异步内核 内置监控治理 分布式事务方案 标准契约管理 复杂留给自己,极简留给用户 • 跨服务事务一致性 • 多语言,同时选型 • 灵活扩展、定制 • 减少基础设施运 维工作量 为解决微服务化痛点而生 在同一个业 务领域的微 服务中使用 了多种不同 语言进行开 发部署 解的数据和 入口,管理 复杂的分布 式系统配置 多语言运行环境 服务中心异构通信 微服务鉴权 分布式系统配置中心 微服务契约工具 19 年Apache ServiceComb新品发布 面对用户痛点持续创新 财政业务应用 指导 规约 支撑 支撑 云平台 财政业务中台 财政云 ISV-A ISV-B ISV-C 供应商 交付 指导 规约 总账引擎 电子印章 报表 电子凭证0 码力 | 15 页 | 2.86 MB | 1 年前3
消费者云CSE微服务实践华为消费者云业务包括 华为应用市场、华为视频、华为钱包、华为运 劢健康等服务,为华为和荣耀手机提供精品云服务,提升用户体验 华为消费者云业务简介 微服务框架技术选型-业务服务化目标 系统解耦,功能内聚,提升需求交付效率:通过业务的拆分和解耦,让系统敏 捷起来,快速、小批量的交付价值需求,提升业务的交付效率 践行API First:通过服务化,让服务提供者和消费者乊间通过微服务API建立契约,利 升业务SLA 建立服务化团队:随着业务的丌断拆分,大的研发团队也会被拆分成2-Pizza Team, 微服务团队由3-5人组成,负责整个微服务的设计、开发、测试、部署运维和治理,通过 全功能团队的建设,让业务真正敏捷起来 微服务框架技术选型-支持多语言 尽管现在以Java和GO语言为主,但是从架构演进角度考虑,未来 会根据消费者业务自身的特点引入更适合的语言 服务 提供实用和丰富 的在线治理能力 流量控制、幵发控制、超时控制、服务降级、服务熔断、路由权 重调整… 常用的服务治理能力要内置到服务框架中,业务领域强相关、非 通用能力可以通过扩展点实现 微服务框架技术选型-易集成 当前业务使用Spring MVC等传统的单体架构,希望可以较平滑、 低成本的迁移到微服务架构上: 从业务接受度上,希望丌要翻天覆地的改变业务开发习惯,最好能够兼容原Spring0 码力 | 22 页 | 1.39 MB | 1 年前3
张波-虎牙直播在微服务改造中的实践虎牙负载均衡部署的机器一台机器上可能存在数百的配置,每次节点生效需要重新 reload配置,且节点新增或删除需人工上系统操作配置,配置生效对服务会有中断 配置IP方式 配置名字服务 客户端主动监听名字服务更新,节 点变更秒级生效 负载均衡配置固话在配置文件中, 节点操作需要人工上系统操作增减 节点 基于Nginx dyups模块的动态上下线 • 基于名字服务感知节点变化快速变更节点 • 基于nginx dyups模块实现节点变更秒级生效 平均解析时间 之前200ms+ 现在1ms以下 缓存命中率 之前92% 现在99.8%+ 解析失败率 之前0.1% 现在0% 应用探活场景下的落地 1、web专区的nginx有健康检查的功能, 但是只是基于tcp, 根据 一段时间请求否正常, 对节点进行临时屏蔽 2、web专区和业务都会有自己的拨测, 一般只会用于告警, 缺乏 都能根据业务反馈, 动态切换节点的能力 3、支付等业务, 对故障时间敏感, 手动上下线服务方式 通过控制台页面和API 通过调用API 跨中心同步 支持 不支持 k8s集成 支持 不支持 分组 Nacos可用根据业务和环境进行分组管理 不支持 权重 Nacos默认提供权重设置功能,调整承载流量压 力 不支持 厂商 阿里巴巴 Netflix 服务注册发现对比 配置中心对比 对比项目/配置中心 apollo nacos 开源时间 2016.5 2018.6 配置实时推送0 码力 | 27 页 | 1.03 MB | 1 年前3
华为企业级PaaS 微服务应用设计和开发 构建 测试 发布上线 监控运维 部署 流 水 线 ( 持 续 集 成 、 持 续 交 付 ) 扩展插件: Eclipse等 扩展插件: 静态检查等 扩展插件: 三方部署系 统 扩展插件: 客户测试系 统 扩展插件: 客户自有仓 库 扩展插件: 客户自有监 控 开发者生态 开源社区 案例 开发者 API 产品 生态 通用微服务工具市场 行业微服务组件市场 围绕应用构建平台功能 • 操作的起点为应用 • 数据库,缓存服务,容器平台等围绕应用创建 应用 RDS DDM DMS DCS CCE ECS ELB 监控 软件中心 流水线 servicecomb.apache.org github.com/apache?q=servicecomb 缺少了什么 • 流水线,平台等自动化手段的完备,使得开发人员开始思考业务功能的拆分,复用,使得网络拓扑更加复杂 用,使得网络拓扑更加复杂 • 从过去“数据中心网络拓扑几乎没变化”变为“应用发布,应对业务流量,随时随地的网络拓扑变化” • 平台功能解决了应用运行时之前的种种问题,但为了将应用的运行时统一治理,保障业务可靠运行,需要引入微服务框架 来解决分布式系统中的难题 9 github.com/apache?q=servicecomb servicecomb.apache.org ServiceComb实践0 码力 | 17 页 | 3.42 MB | 1 年前3
可发布版-美团点评微服务OCTO-曹继光和开源方向进展 % & 3 ( ) 6 白银 Ø 标准化水平良好 黄金 钻石 Ø 服务保障能力强 Ø 胜p%千万订单量级b务 星耀 Ø 跨地区容灾和扩展能力 Ø 数千万订单量级b务强需 求 青铜 Ø 基础能力达标 铂金 Ø 性能一流 Ø 足n支撑数百万订单量级b务 Ø 易用性q秀 服务治理演进各c阶段 服务治理实践(%):基础能力达标 �����! • OCTO-RPC�����������������������URL����! • ��Oncall��(����+������)! 服务治理实践(3) +易用性 V 细粒度埋点监控 Client� Server� :1?:服务框架最大性能 • (核(4,%K数据包3DhM测试 • 原则:框架自身不造成应用瓶颈 服务治理实践(() +性能提升 - 铂金段t QBfE-NMInR + /SM 字节码修改 • 只在 QBfE-NMInR 采样,采样点不随机; • 影响 65? q化和 QBfE-NMInR 分布,精确度略差; • 影响服务运行,诊断结束后需重启,线上不可用。 • SDBJNEJ 使用 信号量 + 6VM?5 io驱动 • 基于定时中断的采样,采样点随机(准确性高); • 不修改m码,不影响 65? q化; • 性能影响<3%,诊断结束后,无需重启服务。0 码力 | 35 页 | 14.10 MB | 1 年前3
微服务架构及ServiceComb实践服务可以独立的部署。 • 更适合小团队(个人)开发管理 • 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 适合同学们学习 Demo也可以作为生产系统的一部分 [社区网站] http://servicecomb.apache a) https://github.com/apache/servicecomb-java-chassis b) 和服务注册中心通信,共同维护表 • 网关 a) 对外提供固定地址,提供路由转发功能 b) 网关固定IP:端口/服务名/URL -> 服务动态IP:端口/URL (网关固定IP:端口/A服务名 =A服务动态IP:端口) 注册中心 ServiceCenter SDK SDK 基本的健康检测 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 3个组件的更多功能 1…..* • 服务注册中心 ServiceCenter a) https://github.com/apache/servicecomb-service-center b) 当前实例的报表0 码力 | 14 页 | 2.04 MB | 1 年前3
使用微服务架构快速开发万级TPS高可用电商系统服务可以独立的部署。 • 更适合小团队(个人)开发管理 • 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 适合同学们学习 Demo也可以作为生产系统的一部分 [社区网站] http://servicecomb.apache 管理楼盘的基本信息,楼盘 1-n 楼栋 1-n 房源。 管理开售活动,进行开售时 的抢购 用户查看自己的开售活动和 抢房资格,管理查看收藏的 房源,查看自己的抢房结果。 用户和管理员登录/修改密 码等功能。可扩展为多种登 录方式。 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb a) https://github.com/apache/servicecomb-java-chassis b) 和服务注册中心通信,共同维护表 • 网关 a) 对外提供固定地址,提供路由转发功能 b) 网关固定IP:端口/服务名/URL -> 服务动态IP:端口/URL (网关固定IP:端口/A服务名 =A服务动态IP:端口) 注册中心 ServiceCenter SDK SDK0 码力 | 15 页 | 1.46 MB | 1 年前3
ServiceComb java SDK详解根据兼容规则,将实例进行分组 只有edge service场景下,对于同一个目 标微服务,存在多个版本分组 • 兼容分组内,新版本功能集合大于旧版本,自动 根据url选择合适的版本组 • AZ亲和性 • 根据传输通道分组 • 根据实际调用统计,隔离暂时不可用的调用目标 • 开发人员通过SPI扩展过滤功能 2.以过滤得到的Endpoint集合作为输入,根据配置的策 略进行LoadBalance: • 轮询、响应时间权重、随机 如果内置的路由规则无法满足业务需求,比如需要复杂的剪切修改url,或是修改码流 此时可以通过自定义路由进行 内置自动路由规则基于同样的机制实现: • 通过SPI声明VertxHttpDispatcher的扩展 • 通过getOrder声明相对其他dispatcher的执行顺序 • 自己能处理的url,拦截处理 – 根据自定义规则获取目标微服务名、版本规则、新url等等参数 – 通过EdgeInvocation转发请求0 码力 | 21 页 | 1.15 MB | 1 年前3
ServiceCenter - 服务注册中心应用App,便于微服务可在多个应用间重用 2. 微服务名称,App内唯一 3. 微服务描述信息,让使用者可以快速了解到业务范畴等 4. 微服务访问契约内容,API能力的描述文件 5. 微服务扩展属性,添加具体业务扩展属性 6. 微服务黑白名单,支持Provider侧设置路由策略 7. 微服务标签,支持按标签检索 高可用性保障 互联网分布式系统设计的准则:BASE 1. Basically Available(基本可用) 2. Soft state(软状态) 3. Eventually consistent(最终一致性) CAP理论:Consistency(一致性), 在分布式系统的各点同时保持数据的一致。 Availability(可用性), 每个请求都能接受到一个响应,无论响应成功戒失败。 Partition tolerance(分区容错性),当出现网络分区故障时系统的容错能力0 码力 | 18 页 | 856.27 KB | 1 年前3
共 32 条
- 1
- 2
- 3
- 4













