微服务环境下的系统治理与容错微服务环境下的系统治理与容错 王新栋 • 《架构修炼之道》作者,《决战618:探秘京东技术取胜之道》联合作者; • 对分布式、微服务系统有多年实战经验,所设计和研发的系统经历了多次百亿流量的验证; • 热爱分享,维护技术公众号 [程序架道],对高并发、高可用系统有持续不懈的追求; 个人微信号 技术公众号 • 微服务架构 • 容错 • 总结 • 治理 微服务架构 架构 架构 架构是为应用程序服务的 软件系统应用程序的需求 软件系统的价值维度 架构师是什么样的人 架构的终极目标 研发团队的持续斗争 研发团队必须从公司长远利益出发与其他部门抗争 -- Robert C. Martin 多种架构思想的本质 分层架构思维到六边形架构思维 业务领域代码 基础设施代码 再看六边形架构 治理 微服务到底需要多“微” 微 微服务的“微”暗示了服务的大 微服务的“微”暗示了服务的大小,但实际上微服务架构对构成的服务实例并没有大小方面的要求。 微服务的微 微服务的两个“谬论” n 服务之间是强隔离的。 n 微服务是大型系统的唯一选择。 解耦合 独立开发部署 架构、组织、流程 微服务架构定义“三步法” 微服务拆分方法 微服务拆分-指导原则 拆服务-单体重构的节奏 服务分解的四大障碍 1、网络延迟 2、同步通信降低了可用性 3、跨服务的数据一致性 4、上帝类0 码力 | 45 页 | 16.09 MB | 1 年前3
微服务的设计原则与⽣态系统 - 王磊微服务的设计原则 与⽣生态系统 王磊磊 华为公司技术专家 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/ 什什么是微服务架构? • 微服务架构是⼀一种架构模式, Architecture Conference 2017.4 https://www.continuousdelivery.com/ • 缩短交付周期 • 降低发布⻛风险 • 质量量内嵌 组织协同 环境管理理 数据管理理 松耦合架构 反馈验证 持续集成/部署 内建质量量 微服务架构是松耦合架构机制的⼀一种实现 为什什么基于DevOps? ● Communication ● Automation0 码力 | 62 页 | 6.65 MB | 1 年前3
使用微服务架构快速开发万级TPS高可用电商系统http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 使用微服务架构快速开发万级TPS高可用电商系统 git clone https://github.com/alec-z/servicecomb-samples cd servicecomb-samples/houserush/script/docker • 服务可以独立的部署。 • 更适合小团队(个人)开发管理 • 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 适合同学们学习 Demo也可以作为生产系统的一部分 [社区网站] http://servicecomb 抢到先得。 客户管理 customer- manage 楼盘管理 realestate 抢购/下订单 house-order 用户中心 user-center 认证鉴权 login 管理客户的基本信息, 录 入客户的选房资格。 管理楼盘的基本信息,楼盘 1-n 楼栋 1-n 房源。 管理开售活动,进行开售时 的抢购 用户查看自己的开售活动和 抢房资格,管理查看收藏的 房源,查看自己的抢房结果。0 码力 | 15 页 | 1.46 MB | 1 年前3
微服务创新新品发布同工作和共 同治理 使能满足第三 方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 分布式系统配置中心 服务中心异构通信 多语言运行环境 微服务鉴权 微服务契约工具 Apache ServiceComb 面对用户痛点持续创新 3 github.com/apache OpenAPI规范契约文件 契约与代码一致性校验报告 契约(接口)文档 异构微服务项目工程 (ServiceComb 或 SpringCloud) 遗留应用代码 (SpringMVC/POJO/JAX-RS) 契约文件 (符合OpenAPI规范) 用户交互 转换 微服务工程构建 CLI命令行 Maven/Gradle 插件 契约提取 代码生成 文档制作 契约校验 ServiceComb SpringCloud 验收微服务 协同企业遗留系统微服务化快速改造,实现基于契约的数据、服务标准化管控 微服务契约工具 https://github.com/apache/servicecomb-toolkit ServiceComb toolkit 提供契约、代码、文档相互转换和校验的能力,帮助用户快速构建基于流行微服务框架和编程模型 的微服务工程,降低微服务学习成本,使能用户聚焦业务开发,提升遗留系统重构、开发效率。0 码力 | 12 页 | 2.96 MB | 1 年前3
Apache ServiceComb 微服务创新项目解读使能满足第三 方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 多语言运行环境 服务中心异构通信 微服务鉴权 分布式系统配置中心 微服务契约工具 Apache ServiceComb [Website] http://servicecomb.apache.org [Github ServiceComb Toolkit Toolkit - 遵循OpenAPI的微服务开发、改造工具 提供遵循OpenAPI规范的API、代码、文档相互转换和校 验的能力,帮助用户快速构建基于流行微服务框架和编程 模型的微服务脚手架工程,提升遗留系统重构、开发效率 • 项目地址 https://github.com/apache/servicecomb-toolkit • 开发计划 - - 支持API生成Spring Cloud微服务工程 - 支持OAI V3 - 支持toolkit plugin集成到Eclipse&Intellij 接口层 API提取 文档制作 API校验 代码解析 微服务开发框架层 ServiceComb SpringCloud …… 实现层 插件 命令行 …… …… 脚手架服务 [Website] http://servicecomb0 码力 | 13 页 | 1.24 MB | 1 年前3
华为企业级PaaS 微服务应用演 练 ) 应用管理平台(CAS) 生命周期管理 部署/卸载 启动/停止 升级/回滚 灰度发布 弹性伸缩 微服务运维 应用告警 日志分析 全链路拓扑 SQL分析 调用链 立体监控 方法追踪 事务洞察 微服务治理 负载均衡 限流/降级 熔断/容错 错误注入 黑白名单 微服务管理 注册中心 配置中心 治理中心 全局事务 契约管理 监控大屏 智能分析 智能分析 环境管理 开发环境 测试环境 预验证环境 灰度环境 生产环境 商业生态(aPaaS/SaaS) 行业 (政府、教育、医疗、零售、……) 伙伴 (软通、中软、幸宜、博思、医 信、……) 工具(CPE) 设计和开发 构建 测试 发布上线 监控运维 部署 流 水 线 ( 持 续 集 成 、 持 续 交 付 ) 扩展插件: Eclipse等 扩展插件: 静态检查等 infrastructure • 开发者不需要知道应用部署到容器还是虚机中,只需要像过去一样开发应用 • Java,Go,Nodejs等语言可部署到ARM,x86不同的基础设施中 • 完善的自动化促使组织能够管理大规模,快速的部署应用实例,应对业务流量,需求的变化 源码 软件中心 流水线 构建 归档 部署 配置中心 java python go nodejs php war jar 压缩包0 码力 | 17 页 | 3.42 MB | 1 年前3
ServiceComb 的前世今生开发 产品发布计划 开发 集成开发 运维人员替换 部 署 旧 版 本 开发 开发 测试/发布 • 技术实现单一,需要想办法用一种技术解决所有问题 • 只能按大颗粒系统发布版本,响应周期长 (小特性版本3-6个月,每年1个大版本) • 无法做到永远在线,大版本升级时,要停机中断服务 微服务化的应用构建和发布 产品发布计划 产品发布计划 企业应用和互联网应用的不同? • 如何做到不同ISV的应用互联互通统一管理? • 怎么才能加快微服务的开发? • 微服务化后如何保证性能? • 如何进行统一的路由控制? 企业应用和集成 Java 注册中心、治理中心 Go 服务 契约 生成工具 框架 代码 框架 代码 框架 代码 接口 文档 接口 文档 接口 文档 生成 生成 • 面向契约而不是逻辑 解耦服务提供者和消费者的开发顺序 • 契约定义为语言中立 • 规范化系统接口,让实现与文档的同 步成为必须 • 通过工具简化整个过程 API First 增速微服务开发 --- 工具支持 OpenAPI (Swagger) 定义 编辑器:在线编辑,语法提示, 错误检查 文档生成器:生成HTML与符合 华为规范文档 Mock生成器:生成Mock工具, 用于测试微服务 现有代码提取0 码力 | 16 页 | 1.45 MB | 1 年前3
ServiceComb 介绍企业业务逻辑复杂,如何进行跨团队协同开发? • 大量老旧系统代码,如何支持其服务化改造? • 云化应用面临的监控已经分布调用追踪问题? 企业应用微服务开发面临的问题 ServiceComb 为什么需要服务契约 • 作为服务消费者 • 需要明确知道如何调用服务? • 需要知道服务调用参数有哪些? • 需要知道传输的内容是什么? • 作为服务提供方 • 提供详细描述的文档很难 • 提供和维护标准的SDK也很难 Java Go 服务 契约 生成工具 框架 代码 框架 代码 框架 代码 接口 文档 接口 文档 接口 文档 生成 生成 • 面向接口契约而不是逻辑 • 解耦服务提供者和消费者的开发顺序 • 契约定义为语言中立 • 规范化系统接口,让实现与文档的同步 • 通过工具简化整个过程 API First & Code First 服务契约定义 Event-Loop Process R R W W 线 程 池 • 框架以事件驱劢为基础 • 异步操作提升应用处理效率 • 支持Restful以及RPC 异步事件操作保证系统性能 分布式调用追踪 • 支持标准追踪协议 • Zipkin • 支持@span扩展事务追踪 • 提供调用追踪扩展 • 可以配置自定义的追踪处理器 • 支持适配自定义追踪格式0 码力 | 16 页 | 1.26 MB | 1 年前3
Apache ServiceComb 开源微服务社区人及孵化器候选项目 管理与监督基金会商 务与日常事务 IPMC Apache软件基金会 LC3大会 正式开源 2017.06 2017.11 2018.10 捐赠给Apache 进入孵化器 成为Apache 顶级项目 首个Apache微服务顶级项目 提供一站式的微服务开源解决方案,致力于帮助企业、用户和开发 者将应用轻松微服务化上云,实现对微服务应用的高效运维管理 华为开始实践 微服务 q=servicecomb ServiceMesh 服务通信规范 配置 流行微服务框架 可视化监控 分布式追踪 遗留应用转型 全新微服务开发 开发工具 代码自 动生成 契约自 动提取 契约校验 文档自 动生成 微服务脚手架 快速入门 案例代码库 用户手册 社区网站 开源异构微服务兼容 内核 服务中心 微服务开发框架 TCC&Saga 分布式事务框架 认证框架 配置中心 多语言方案 • 问题定位困难 • 资源利用率低 • 对现有系统改动小 • 提升性能和硬件 利用率 • 提升定位问题效率 Apache ServiceComb 插件式处理链 SpringMVC 编程模型 限流 负载均衡 分布式追踪 动态配置 服务注册 服务度量 通信模型 REST 边缘服务 熔断/容错 安全认证 分布式事务 标准契约管理 微服务脚手架 配置治理中心 POJO 编程模型0 码力 | 15 页 | 2.86 MB | 1 年前3
Metrics in ServiceComb Java Chassis 1.0.0-m1 让微服务运行状态清晰可见com/apache?q=servicecomb servicecomb.apache.org ServiceComb 项目介绍 • Java Chassis 高性能的微服务框架,提供服务注册发现以及动态配置管理,以及限流降级, 容错熔断等服务治理功能 • Service Center 基于Etcd高性能,高可用服务注册中心 • Pack (Saga) 微服务事务最终一致性问题解决方案,提供一个集中式的事务协调器,协调微 按照ASF的要求准备第一个release 13 github.com/apache?q=servicecomb servicecomb.apache.org Apache孵化器 • 构建完善的社区 – 成立孵化项目管理委员会 PPMC – 没有在邮件列表发生的事情就没有真的发生 – 通过投票的方式进行决议 • 投票规则 voting rule • 赞成 +1, 弃权 0, 反对 -1 • 一般会持续 72小时 github.com/apache?q=servicecomb servicecomb.apache.org Apache孵化器毕业 • 社区成熟度模型评估 – 代码,发版,共识决策 • Board决议文档撰写 – PMC成员,PMC Chair,项目章程 • 通过投票的方式进行决议 – PPMC投票 – IPMC投票 • 是否构建了有生命力的社区 • 是否能够自主发布合规版本 https://incubator0 码力 | 18 页 | 3.12 MB | 1 年前3
共 44 条
- 1
- 2
- 3
- 4
- 5













