微服务的设计原则与⽣态系统 - 王磊微服务的设计原则 与⽣生态系统 王磊磊 华为公司技术专家 ThoughtWorks⾸首席咨询师 Sybase Tech Leader • 《微服务架构与实践》作者 • 《DevOps Handbook》中⽂文译者之⼀一 • 国内较早倡导和实践微服务的先⾏行行者 • 对于⾃自动化测试、持续交付、DevOps有丰富的实践经验 • ⻄西安DevOps Meetup 联合发起⼈人 联合发起⼈人 关于我 议题 • 微服务架构的核⼼心 • 微服务架构设计原则 • 微服务架构⽣生态系统 Are you using microservices? Are you using microservices? https://www.nginx.com/resources/library/app-dev-survey/ 什什么是微服务架构? • 微服务架构是⼀一种架构模式, https://www.supinfo.com/articles/single/3652-what-is-devops 架构⼀一旦确定,很难改变 什什么是演进式架构? ⽀支持增量量式变更更作为第⼀一原则 什什么是演进式架构? • 演进是动态平衡 • 痛苦的事情提前做 • 运维意识是关键 演进式架构 拥抱变化 动态平衡 业务 技术 团队 架构的演进基于业务、技术和团队的平衡 - 动态的平衡0 码力 | 62 页 | 6.65 MB | 1 年前3
微服务环境下的系统治理与容错微服务的两个“谬论” n 服务之间是强隔离的。 n 微服务是大型系统的唯一选择。 解耦合 独立开发部署 架构、组织、流程 微服务架构定义“三步法” 微服务拆分方法 微服务拆分-指导原则 拆服务-单体重构的节奏 服务分解的四大障碍 1、网络延迟 2、同步通信降低了可用性 3、跨服务的数据一致性 4、上帝类 微服务的忠告 n 第一,要记住微服务不是解决所有问题的万能 “银弹”。 容器和其他工具。 n 第四,确保你的服务松耦合,并且可以独立开发、测试和部署,不要搞成分布式单体,那将会是巨大的灾难。 n 第五,也是最重要的,不能只是在技术上采用微服务架构。拥抱DevOps的原则和实践,在组织结构上实现跨 职能的自治团队,这必不可少。 还必须记住:实现微服务架构并不是你的目标。你的目标是加速大型复杂应用程序的开发。 --Chris Richardson 容错 故障和问题 同步调用下-无线程池隔离 同步调用下-线程池隔离实现方法 快速失败-超时 快速失败-时间窗口 快速失败-超时重试次数 区分部署和上线 常规系统保障流程 没有不出问题的系统 什么是混沌工程 混沌工程 故障注入 故障测试的区别 总结 工具 知识 经验 参考书籍0 码力 | 45 页 | 16.09 MB | 1 年前3
解读ApacheApache项⽬还没有涉猎的领域[Yet] 机器⼈ ⾃动驾驶 星际探索 区块链 也有可能是你的项⽬ ASF 提供了项⽬的治理 ASF 提供了项⽬的治理 Apache之道 “Apache之道” 核⼼原则 “Apache之道” 核⼼原则 粗略的共识和可以⼯作的代码 ⼩的可逆步骤(进⾏探索) 任何建设性的贡献都可以获得功绩… … ⽽企业从属关系和资 历却没有 功绩不会过期 功绩不给你权威; 它可以让你有⾏使权⼒威信 提交会议议题, 发布介绍⽂章 与下游项⽬建⽴合作 授之于⻥与授之于渔 帮助开发者成为代码提交者 对发布进⾏投票 对发布进⾏投票 邮件列表中可以进⾏投票,投票开放72⼩时 发布需要遵循ASF原则 需要 3 +1 投票, +1 票⽐ -1 票更多 ⼀个 -1 票 (反对票) 不会阻⽌发布 -1 需要充实的理由 每个⼈可以重新投票 如果投票通过,接下来就是IPMC对发布进⾏投票 如 包含了不兼容协议的软件 LICENSE和NOTICE⽂件问题 版权问题 没有ASF头 包含加密软件 实践创造完美 实践创造完美 开始未必是完美的 协议⼗分复杂 可能对政策不太熟悉 更多的是指导原则,很少有绝对的规则 添加项⽬正在完善中的声明 提早发布和频繁发布 每⼀个发布都⽐上⼀个更好 从Apache孵化器毕业 从Apache孵化器毕业 完成(或者签署)孵化项⽬状态⽂件中的任务 保证项⽬和产品有合适的名称0 码力 | 43 页 | 4.89 MB | 1 年前3
微服务创新新品发布输出 OpenAPI规范契约文件 契约与代码一致性校验报告 契约(接口)文档 异构微服务项目工程 (ServiceComb 或 SpringCloud) 遗留应用代码 (SpringMVC/POJO/JAX-RS) 契约文件 (符合OpenAPI规范) 用户交互 转换 微服务工程构建 CLI命令行 Maven/Gradle 插件 契约提取 代码生成 文档制作 契约校验 toolkit 提供契约、代码、文档相互转换和校验的能力,帮助用户快速构建基于流行微服务框架和编程模型 的微服务工程,降低微服务学习成本,使能用户聚焦业务开发,提升遗留系统重构、开发效率。 • 契约生成微服务工程:一键生成基于ServiceComb/SpringCloud的微服务工程。 • 代码提取契约:一键从基于SpringMVC/POJO/JAX-RS编程模型开发代码提取OpenAPI契约。0 码力 | 12 页 | 2.96 MB | 1 年前3
Apache ServiceComb 微服务创新项目解读文档相互转换和校 验的能力,帮助用户快速构建基于流行微服务框架和编程 模型的微服务脚手架工程,提升遗留系统重构、开发效率 • 项目地址 https://github.com/apache/servicecomb-toolkit • 开发计划 - 支持API生成Spring Cloud微服务工程 - 支持OAI V3 - 支持toolkit plugin集成到Eclipse&Intellij 一键生成基于流行微服务框架的微服务工程 • 快速入门 https://github.com/apache/servicecomb-toolkit/blob/master/samples/README-ZH.md 用户 第三方 输出 遵循OpenAPI规范 API文件 代码与API 一致性比较报告 API文档 基于ServiceComb/SpringCloud 微服务工程 用户交互 转换 微服务开发框架0 码力 | 13 页 | 1.24 MB | 1 年前3
庖丁解牛:华为云微服务工具解放开发者成表关联关系加权图 Step6:采用图切割算法并配合启发式规则将表分 割到不同库中 原则:低耦合,高内聚 耦合度:微服务划分后,微服务与微服务连接的边的权重之和 内聚度:微服务划分后,微服务内部表与表之间的边权重之和 采用图搜索算法划分微服务的启发式规则(规则可自定义): 规则1:贪婪原则 规则2:完全独立的表可归属任意微服务,也可独立成微服务 规则3:归属同一微服务的表数量不低于5(作为参数可配置)0 码力 | 14 页 | 1.54 MB | 1 年前3
ServiceComb在华为消费者云的亿级用户微服务实践apache.org/ Gitter: https://gitter.im/ServiceCombUsers/Lobby 大兵团作战,统一认识,组织赋能 微服 务化 架构目标 质量 属性 架构原则 关键 技术 选型 架构师 设计&开发&测试骨干 架构培训 关键 技术 培训 服务化培训 服务化培训 案例 培训 研发&运维团队 微服务划分 微服务 开发 微服务测试 微服 技术方案试点、案例分享、 ServiceComb统一预警体系,不 同业务部门之间的合作和协同 服务化地图:业务部署上线后,对业务微服务API进行基 线化,并发布服务化地图,涵盖微服务的划分原则、微服务 流水线地址、微服务SLA指标等 总体策略-技术选型 Website: http://servicecomb.incubator.apache.org/ Gitter: https://gitter0 码力 | 15 页 | 1.15 MB | 1 年前3
Metrics in ServiceComb Java Chassis 1.0.0-m1 让微服务运行状态清晰可见2019-6 姜宁 2 github.com/apache?q=servicecomb servicecomb.apache.org 关于我 • 目前就职于华为开源能力中心 • 前红帽软件主任软件工程师 • Apache软件基金会会员 • 参与Apache软件基金会多个Java 中间件项目 3 github.com/apache?q=servicecomb servicecomb.apache 0-m2 提升etcd弹性伸缩 边缘服务网关优化 支持文件流上传下载 用户自定义访问日志 Service Center Java Chassis 1.0.0 正式稳定版本发布 自动生成脚手架工程 支持Http2协议 自定义ping机制 Saga 0.1.0 分布式Pack原型 Pack 0.3.0 优化后台性能 支持多种分布式协调机制 多语言框架Omega 2017年12月0 码力 | 18 页 | 3.12 MB | 1 年前3
Linux Con Workshop Quick Start Demo 殷湘 姜宁Company Linux Con Workshop Quick Start Demo 殷湘 姜宁 • 为了用户能更容易理解微服务架构原则,了解ServiceComb 的功能以及如何用其快速开发微服务; • 所以提供大家耳熟能详的例子,降低学习曲线的同时,增加 趣味性,加深用户的理解 。 Manager (网关) Doorman (认证服务) Worker (运算服务) Bulletin0 码力 | 12 页 | 2.10 MB | 1 年前3
Java Chassis通信处理详解 - 通信优化实践丌同于消费者,生产者主要的工作就是等待消费者 的请求,在处理之后,返回应答 在这一端我们更加关注:“如何高效地接收和处理 数据”这件事情 同步模式下,业务逻辑不IO逻辑分离,且根据 “隔离仓”原则,为了保证整个系统更加稳定和高 效地运行,业务逻辑本身也需要在丌同的隔离的区 域内迚行。而这些区域,就是线程池。 所以构建生产者,就需要对线程池迚行精细的管理。 下面是针对线程池的各种管理方式。0 码力 | 17 页 | 2.22 MB | 1 年前3
共 16 条
- 1
- 2













