庖丁解牛:华为云微服务工具解放开发者
庖丁解牛:华为云微服务工具解放开发者 部门:应用平台服务 作者:王启军 日期:20190920 Security Level: 目录 1. 微服务拆分工具 2. 契约管理工具 Huawei Confidential 3 微服务架构的优势 因素 单体架构 微服务架构 交付速度 较慢 较快 故障隔离范围 线程级 进程级 整体可用性 较低 更高 架构持续演进 困难 简单 沟通效率 产品创新复杂度 困难 容易 一致性实现成本 低 高 时延 低 高 资源成本 低 高 关联查询复杂度 简单 复杂 远程调用 不涉及 涉及 服务治理 不涉及 涉及 对开发人员的要求 低 高 对工具的依赖 较低 较高 运维复杂度 低 高 Huawei Confidential 4 微服务架构的第一大问题——如何拆分微服务? •影响因素 >团队大小 >交付周期 >业务方向 >故障范围 >现有数据规模 >服务数量爆炸,运维复杂 >服务数量太少,不够灵活 >一个user story影响众多服务 >接口频繁变更 >大量关联查询 >系统架构复杂度提升 Huawei Confidential 6 通过微服务拆分工具解放开发者 支撑活动 方法论 • ThoughtWorks五步十一阶 • DDD聚合 • 事件源Event Sourcing • 命令查询责任分离CQRS 现有做法 业务改造 投入大0 码力 | 14 页 | 1.54 MB | 1 年前3ServiceComb 的前世今生
生成工具 框架 代码 框架 代码 框架 代码 接口 文档 接口 文档 接口 文档 生成 生成 • 面向契约而不是逻辑 • 解耦服务提供者和消费者的开发顺序 • 契约定义为语言中立 • 规范化系统接口,让实现与文档的同 步成为必须 • 通过工具简化整个过程 API First 增速微服务开发 --- 工具支持 OpenAPI OpenAPI (Swagger) 定义 编辑器:在线编辑,语法提示, 错误检查 文档生成器:生成HTML与符合 华为规范文档 Mock生成器:生成Mock工具, 用于测试微服务 现有代码提取 OpenAPI工具 与RPC的IDL互 转工具 protobuf3 多语言多框架代 码生成器 多语言Protobuf3对象 编码库 Java 微服务编程框架 Go 框架 ServiceMesh 容 错 & 熔 断 限 流 降 级 服 务 隔 离 容 量 预 测 微 服 务 安 全 工具链生态 契约开发 工具 代码自动 生成 文档自动 生成 自动测试 工具 本地远程 调试 微服务 流水线 资源管理 容器编排 & 调 度 应用管理 弹性伸缩 灰度发布 监控运维APM Go语言0 码力 | 16 页 | 1.45 MB | 1 年前3微服务创新新品发布
帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 分布式系统配置中心 服务中心异构通信 多语言运行环境 微服务鉴权 微服务契约工具 Apache ServiceComb 面对用户痛点持续创新 3 github.com/apache?q=servicecomb servicecomb.apache.org 服务网格-Mesher 划分微服务 (含依赖关系) 定义契约 (接口和模型) 发布契约 ServiceComb 契约开发工具 开发微服务 测试微服务 客户+集成商 软件开发商 部署微服务 契约仓库 微服务 运行环 境 验收微服务 协同企业遗留系统微服务化快速改造,实现基于契约的数据、服务标准化管控 微服务契约工具 https://github.com/apache/servicecomb-toolkit ServiceComb com/apache/servicecomb-service-center/tree/master/syncer Syncer是一个多服务中心的同步工具,专为大型微服务架构设计,实现不同的微服务技术栈实现的微服务业务可以进行数 据通信,未来可支持跨云的数据通信支持。 •对应用程序透明。同步工具启停,不应该对应用程序的原有流程产生影响。 •为多服务中心提供对等网络。他们之间是松耦合的,成员可以自由加入与退出。 •对异构0 码力 | 12 页 | 2.96 MB | 1 年前3Apache ServiceComb 微服务创新项目解读
帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 多语言运行环境 服务中心异构通信 微服务鉴权 分布式系统配置中心 微服务契约工具 Apache ServiceComb [Website] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb [Github ] https://github.com/apache?q=servicecomb ServiceComb Toolkit Toolkit - 遵循OpenAPI的微服务开发、改造工具 提供遵循OpenAPI规范的API、代码、文档相互转换和校 验的能力,帮助用户快速构建基于流行微服务框架和编程 模型的微服务脚手架工程,提升遗留系统重构、开发效率 • 项目地址 https://github API提取 代码生成 文档生成 ServiceComb ServiceComb toolkit 划分微服务 (含依赖关系) 定义契约 (接口和模型) 发布契约 ServiceComb 契约开发工具 开发微服务 测试微服务 客户+集成商 软件提供商 部署微服务 契约仓库 微服务 运行环 境 验收微服务 协同实现基于契约(API)的数据、服务标准化管控 划分微服务 (含依赖关系)0 码力 | 13 页 | 1.24 MB | 1 年前3Apache ServiceComb 开源微服务社区
com/apache/servicecomb-pack 集中式事务协调器: https://github.com/apache/servicecomb-saga-actuator 微服务契约开发工具:https://github.com/apache/servicecomb-toolkit 案例集:https://github.com/apache/servicecomb-samples Github入口:https://github.com/apache?q=servicecomb ServiceMesh 服务通信规范 配置 流行微服务框架 可视化监控 分布式追踪 遗留应用转型 全新微服务开发 开发工具 代码自 动生成 契约自 动提取 契约校验 文档自 动生成 微服务脚手架 快速入门 案例代码库 用户手册 社区网站 开源异构微服务兼容 内核 服务中心 微服务开发框架 TCC&Saga 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 多语言运行环境 服务中心异构通信 微服务鉴权 分布式系统配置中心 微服务契约工具 19 年Apache ServiceComb新品发布 面对用户痛点持续创新 财政业务应用 指导 规约 支撑 支撑 云平台 财政业务中台 财政云 ISV-A ISV-B ISV-C0 码力 | 15 页 | 2.86 MB | 1 年前3NTTDATA 汽车行业数字营销平台微服务化实践
人车关系数据 车况数据 车辆维修保养数 据 ….. 库存物流数据 组织架构数据 活动渠道数据 …… 厂 营销中台 销售中台 内容管理 活动管理 …… 线索管理 客户管理 渠道管理 活动工具管理 公众号矩阵管理 标签管理 个性化推荐引擎 工单管理 线索管理 销售助手 权限管理 客服 中台 电话客服 在线客服 业务 分析 主数据管理 …… 用户行为分析 销售转化分析 活动分析 github.com/apache?q=servicecomb servicecomb.apache.org 微服务化数据逻辑设计CRM接口库. 接口数据库 <营销活动工具> 营销活动工具 数据库 CRM ETL Server (kettle) CRM业务库 1. 系统管理 CRM业务库 2. 线索库 CRM业务库 3. 工单库 CRM业务库 4. 0 码力 | 11 页 | 2.25 MB | 1 年前3微服务的设计原则与⽣态系统 - 王磊
测试策略略与契约测试 • 持续交付流⽔水线 • 基础设施(私有云/公有云) • 持续集成/持续部署流⽔水线 • 团队的敏敏捷/⼯工程化实践 • 端到端的⼯工具链 • API⽹网关 • 服务开发框架 • 测试验证框架 • 部署运维⼯工具 系统化的⼯工程 框架层出不不穷 多维度互相依赖 为什什么需要⽣生态系统? 微服务⽣生态系统 API⽹网关/Edge Service ⽀支撑层 基础设施 使⽤用OpenAPI的⽅方式定义契约 运⾏行行模型 - 服务发现/熔断/负载均衡/跟踪 通信模型 - ⾼高效的序列列化机制/传输协议 华为ServiceComb 持续交付流⽔水线 端到端⼯工具链 ⼯工程化实践 测 部 运 发 开 •独⽴立代码库 •服务说明⽂文件 •易易于本地运⾏行行 •测试⾦金金字塔 •契约测试 •组件测试 •基础设施即代码 •⼀一键部署(环境/⽅方式)0 码力 | 62 页 | 6.65 MB | 1 年前3ServiceComb 介绍
提供用户支持也不太方便 Java Go 服务 契约 生成工具 框架 代码 框架 代码 框架 代码 接口 文档 接口 文档 接口 文档 生成 生成 • 面向接口契约而不是逻辑 • 解耦服务提供者和消费者的开发顺序 • 契约定义为语言中立 • 规范化系统接口,让实现与文档的同步 • 通过工具简化整个过程 API First & Code First0 码力 | 16 页 | 1.26 MB | 1 年前3微服务环境下的系统治理与容错
第一,要记住微服务不是解决所有问题的万能 “银弹”。 n 第二,编写整洁的代码和使用自动化测试至关重要,因为这是现代软件开发的基础。 n 第三,关注微服务的本质,即服务的分解和定义,而不是技术,如容器和其他工具。 n 第四,确保你的服务松耦合,并且可以独立开发、测试和部署,不要搞成分布式单体,那将会是巨大的灾难。 n 第五,也是最重要的,不能只是在技术上采用微服务架构。拥抱DevOps的原则和实践,在组织结构上实现跨 同步调用下-线程池隔离实现方法 快速失败-超时 快速失败-时间窗口 快速失败-超时重试次数 区分部署和上线 常规系统保障流程 没有不出问题的系统 什么是混沌工程 混沌工程 故障注入 故障测试的区别 总结 工具 知识 经验 参考书籍0 码力 | 45 页 | 16.09 MB | 1 年前3华为企业级PaaS 微服务应用
开发环境 测试环境 预验证环境 灰度环境 生产环境 商业生态(aPaaS/SaaS) 行业 (政府、教育、医疗、零售、……) 伙伴 (软通、中软、幸宜、博思、医 信、……) 工具(CPE) 设计和开发 构建 测试 发布上线 监控运维 部署 流 水 线 ( 持 续 集 成 、 持 续 交 付 ) 扩展插件: Eclipse等 扩展插件: 静态检查等 扩展插件: 扩展插件: 三方部署系 统 扩展插件: 客户测试系 统 扩展插件: 客户自有仓 库 扩展插件: 客户自有监 控 开发者生态 开源社区 案例 开发者 API 产品 生态 通用微服务工具市场 行业微服务组件市场 虚机(ECS) servicecomb.apache.org github.com/apache?q=servicecomb 基础设施 Build, ship and0 码力 | 17 页 | 3.42 MB | 1 年前3
共 20 条
- 1
- 2