庖丁解牛:华为云微服务工具解放开发者
庖丁解牛:华为云微服务工具解放开发者 部门:应用平台服务 作者:王启军 日期: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 年前3开源开发者的一天 - Apache ServiceComb
q=servicecomb 软件发展史 商业软件 自由软件 开源软件 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 一种思想运动 用户可以自由地运行,拷贝,分 发,学习,修改并改进该软件 一旦在该软件基础上修改,则必 须保证修改后的软件也“自由” 开源发展第一阶段 开源发展第一阶段 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 自由软件和商业软件 之间的折中 遵循版权前提下,可以自由访问、使 用、改变和共享,也可用做商用目的 开源发展第二阶段 [社区网站] http://servicecomb.apache.org [Github 开源的定义 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 开源软件基金会兴起 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb Contributor0 码力 | 31 页 | 2.02 MB | 1 年前3ServiceComb 的前世今生
微服务引擎开发团队 我们一直在很认真地做微服务 华为CloudBU PaaS 微服务引擎开发团队 议题 • 企业应用微服务化的趋势和动机 • 面临的问题 • 解决思路和设计方案 • 从软件到服务 3 企业IT技术应用曲线 • 微服务在2016年成为仅次于 物联网和认知计算的第三热 门技术 • 2014年被很多人认为是企业上 云元年 • 2014年几乎企业应用都没有 http://enterpriseitadoption.com/ 传统企业应用开发模式 开发 产品发布计划 开发 集成开发 运维人员替换 部 署 旧 版 本 开发 开发 测试/发布 • 技术实现单一,需要想办法用一种技术解决所有问题 • 只能按大颗粒系统发布版本,响应周期长 (小特性版本3-6个月,每年1个大版本) • 无法做到永远在线,大版本升级时,要停机中断服务 生成工具 框架 代码 框架 代码 框架 代码 接口 文档 接口 文档 接口 文档 生成 生成 • 面向契约而不是逻辑 • 解耦服务提供者和消费者的开发顺序 • 契约定义为语言中立 • 规范化系统接口,让实现与文档的同 步成为必须 • 通过工具简化整个过程 API First 增速微服务开发 --- 工具支持 OpenAPI0 码力 | 16 页 | 1.45 MB | 1 年前3华为企业级PaaS 微服务应用
q=servicecomb 华为企业级PaaS 微服务应用 2019-6 田晓亮 servicecomb.apache.org github.com/apache?q=servicecomb 个人介绍 10年软件⾏业经验,2012年进⼊云计算领域,对PaaS, DevOps, APM等有深⼊的研究和实践经验。 负责华为公司微服务框架的设计,开发和落地,微服务引擎云服务商⽤ 上线公有云,开发国内首个Go语言微服务框架与Service 配置中心 治理中心 全局事务 契约管理 监控大屏 智能分析 环境管理 开发环境 测试环境 预验证环境 灰度环境 生产环境 商业生态(aPaaS/SaaS) 行业 (政府、教育、医疗、零售、……) 伙伴 (软通、中软、幸宜、博思、医 信、……) 工具(CPE) 设计和开发 构建 测试 发布上线 监控运维 部署 流 水 线 ( 持 续 集 成 、 持 续 交 付 付 ) 扩展插件: Eclipse等 扩展插件: 静态检查等 扩展插件: 三方部署系 统 扩展插件: 客户测试系 统 扩展插件: 客户自有仓 库 扩展插件: 客户自有监 控 开发者生态 开源社区 案例 开发者 API 产品 生态 通用微服务工具市场 行业微服务组件市场 虚机(ECS) servicecomb.apache.org github.com/apache?q=servicecomb0 码力 | 17 页 | 3.42 MB | 1 年前3微服务环境下的系统治理与容错
[程序架道],对高并发、高可用系统有持续不懈的追求; 个人微信号 技术公众号 • 微服务架构 • 容错 • 总结 • 治理 微服务架构 架构 架构 架构是为应用程序服务的 软件系统应用程序的需求 软件系统的价值维度 架构师是什么样的人 架构的终极目标 研发团队的持续斗争 研发团队必须从公司长远利益出发与其他部门抗争 -- Robert C. Martin 多种架构思想的本质 微服务的忠告 n 第一,要记住微服务不是解决所有问题的万能 “银弹”。 n 第二,编写整洁的代码和使用自动化测试至关重要,因为这是现代软件开发的基础。 n 第三,关注微服务的本质,即服务的分解和定义,而不是技术,如容器和其他工具。 n 第四,确保你的服务松耦合,并且可以独立开发、测试和部署,不要搞成分布式单体,那将会是巨大的灾难。 n 第五,也是最重要的,不能只是在技术上采用微服务架构。拥 同步调用下-线程池隔离实现方法 快速失败-超时 快速失败-时间窗口 快速失败-超时重试次数 区分部署和上线 常规系统保障流程 没有不出问题的系统 什么是混沌工程 混沌工程 故障注入 故障测试的区别 总结 工具 知识 经验 参考书籍0 码力 | 45 页 | 16.09 MB | 1 年前3走进开源 - Apache ServiceComb
q=servicecomb 软件发展史 开源软件 自由软件 商业软件 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 一种思想运动 用户可以自由地运行,拷贝,分 发,学习,修改并改进该软件 一旦在该软件基础上修改,则必 须保证修改后的软件也“自由” 开源发展第一阶段 开源发展第一阶段 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 自由软件和商业软件 之间的折中 遵循版权前提下,可以自由访问、使 用、改变和共享,也可用做商用目的 开源发展第二阶段 [社区网站] http://servicecomb.apache.org [Github 开源的定义 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 开源软件基金会兴起 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb Contributor0 码力 | 28 页 | 1.92 MB | 1 年前3消费者云CSE微服务实践
消费者云CSE微服务实践 李林锋 关于我 9年电信软件平台中间件开发、设计、架构经验 精通Netty、Mina等网络通信框架 华为软件 短信/彩信/WAP网关平台SGP、API开放集成网关API Fabric首席设计师 华为软件分布式服务框架DSF首席设计师 《Netty权威指南》、《分布式服务框架原理不实践》作者 微博、微信:Nettying 迁移、降级熔断等,保障微服务的运行质量,提升业务SLA 建立服务化团队:随着业务的丌断拆分,大的研发团队也会被拆分成2-Pizza Team, 微服务团队由3-5人组成,负责整个微服务的设计、开发、测试、部署运维和治理,通过 全功能团队的建设,让业务真正敏捷起来 微服务框架技术选型-支持多语言 尽管现在以Java和GO语言为主,但是从架构演进角度考虑,未来 会根据消费者业务自身的特点引入更适合的语言 发习惯,最好能够兼容原Spring MVC开发模式 从集成角度看,希望可以灵活的不Spring Boot等框架集成 微服务框架技术选型-高性能、低时延 硬件成本已经是白菜价,软件性能丌重要? 消费者云业务服务集群规模大,单点的性能提升能够带来巨大收益 从用户体验看,端到端时延非常重要,分布式乊后带来的时延增加,是一个很大的挑戓 丌是所有业务都有苛刻的性能需求,丌同业务对性能的诉求丌同,0 码力 | 22 页 | 1.39 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 文档生成 ServiceComb ServiceComb toolkit 划分微服务 (含依赖关系) 定义契约 (接口和模型) 发布契约 ServiceComb 契约开发工具 开发微服务 测试微服务 客户+集成商 软件提供商 部署微服务 契约仓库 微服务 运行环 境 验收微服务 协同实现基于契约(API)的数据、服务标准化管控 划分微服务 (含依赖关系) 定义契约 (接口和模型)0 码力 | 13 页 | 1.24 MB | 1 年前32-4-禚娴静-微服务你玩得起吗
API)。每个服务都围绕着具体业务进⾏行构建,并且能够被独⽴立的部署到 ⽣生产环境、类⽣生产环境等。另外,应当尽量避免统⼀一的、集中式的服务管理机 制,对具体的⼀一个服务⽽而⾔言,应根据业务上下⽂文,选择合适的语⾔言、⼯工具对其进 ⾏行构建。 为什么要采⽤用微服务架构? - Rebecca Parsons 让系统尽可能快的响应变化! 初衷 • 服务足够小 • 独立运行 • 轻量级通信机制 ⽆无法快速有效定位问题,⽆无法 快速有效知晓服务运⾏行状态, 服务资源浪费。 回到问题 3.服务拆分 微服务的附加成本 3.服务⾃自演进 2 1 2 3 划分合适的业务边界 进⾏行合适模块化 可测试的 4 拒绝跨上下⽂文的 数据表连接 交付畅通 环境⼿手⼯工维护,频频出错 缺乏有效监控 服务过⼤大,堵塞交付 快速增⻓长的结果导致服务过⼤大 或者服务过⼩小。⽽而过⼤大的服务 导致整个提交流⽔水线堵塞,测 设计⼀一个系统的任何组织所产⽣生 的设计和架构都等价于其组织间的 沟通结构。 —Melvyn Conway, 1967 康威逆定律 逐渐改进你的团队和组织结构 来促进你所渴望的软件系统架构。 —Sam Newman • 服务足够小 • 独立运行 • 轻量级通信机制 • 独立的部署 • 去中心化 微服务架构特性 API设计指导原则 容错性0 码力 | 51 页 | 8.18 MB | 1 年前3
共 32 条
- 1
- 2
- 3
- 4