微服务环境下的系统治理与容错微服务环境下的系统治理与容错 王新栋 • 《架构修炼之道》作者,《决战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/ 什什么是微服务架构? • 微服务架构是⼀一种架构模式, 识别问题并⽤用⾃自动化的⼿手段消除痛苦 演进式架构 - 运维意识是关键 架构只是抽象,直到真正投⼊入运维产⽣生价值 议题 • 微服务架构的核⼼心 • 微服务架构设计原则 • 微服务架构⽣生态系统 It is about architecture, BUT not only architecture…… 微服务架构的设计原则 • 竞争能⼒力力平衡 • 围绕业务构建 • “去”中⼼心化0 码力 | 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.apache.org [Github ] https://github 的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID) 2. 关注对性能的要求 举例:客户维护和订单是2个微服务,订单系统对性能有较高要求,所以可以考虑把购房资格信息从客户维护微服务同步到订单系统,改同步动作 对性能没有要求,对事务性有要求。 常见的服务间通信模式:同(异)步通信,API组合,基于MQ的异步通信 事务性: saga, 事务性消息发布(一次仅一次),分布式事务等0 码力 | 15 页 | 1.46 MB | 1 年前3
 华为企业级PaaS 微服务应用以资源为中心: • AWS EC2,S3,Route53 • OpenStack • CloudStack • 混合云 以应用为中心: • Heroku • GAE • CloudFoundry 容器时代: • Docker • Kubernetes • CaaS • Container Instance in cloud provider • DockerHub What’s Next servicecomb.apache.org github.com/apache?q=servicecomb ServiceStage overall ServiceStage 微服务解决方案 容器云平台(CCE) Serverless云平台(CCI) 微服务咨询 现状分析 适用性评估 试点实施 效果评估 经验固化 目标设定 培 训 ( 理 论 、 案 例 、 实 战 演 练 ) org github.com/apache?q=servicecomb 基础设施 Build, ship and run in any infrastructure • 开发者不需要知道应用部署到容器还是虚机中,只需要像过去一样开发应用 • Java,Go,Nodejs等语言可部署到ARM,x86不同的基础设施中 • 完善的自动化促使组织能够管理大规模,快速的部署应用实例,应对业务流量,需求的变化0 码力 | 17 页 | 3.42 MB | 1 年前3
 Service Mesh的思考及在华为云的实践Lobby Mesher Design Goal • 侵入式与非侵入式可结合使用 • 不绑定基础设施 • 服务可视化 • 高性能,轻量 • 尽最大可能插件化各功能模块 • 透明的产品体验:整合容器平台,微服务引擎,API 网关,指标监控,日志审计等云上服务,封装为微服 务平台,让用户感知不到背后的复杂 Website: http://servicecomb.incubator.apache Request 请求特征: • Service Name • Headers • Consumer metadata Resolve 决定要访问的服务名后即可开 始匹配路由规则,比如 • 系统中稳定运行着A服务, 版本是1.0,最近新上线了 1.1版本,你希望只让一部分 用户进行体验,那么你可以 定义Header带有device- os=android就将95%流量转 移版本为1.0的实例中,5% 独立监听端口 • 微服务健康 • mesher版本 • 路由信息 • Prometheus格式Metric数据 6/30/2018 透明的平台体验 • 部署容器应用时只需勾选以启用Mesher 6/30/2018 背后发生了什么? • 为应用容器设置环境变量http_proxy • 为mesher设置CSE地址(注册中心, 配置中心) • 为mesher对接APM 日志收集 • 为mesher对接APM0 码力 | 29 页 | 1.55 MB | 1 年前3
 ServiceComb在Service Mesh的
探索与思考1. Service mesh在华为的演进之路 2. Mesher实践 3. Mesher如何帮助企业快速转型微服 务架构 Huawei Confidential 我们需要微服务系统,但构建微服务系统是困难的 正文是微软雅黑14—32号字80%的灰色 3 Huawei Confidential Service Mesh - 2017年由William Morgan提出 - 一 Router使用统一配置模型,支持插件对接不同生态 请求特征: • Service Name • Headers • Consumer metadata Resolve 决定要访问的服务名后即可开 始匹配路由规则,比如 • 系统中稳定运行着A服务, 版本是1.0,最近新上线了 1.1版本,你希望只让一部 分用户进行体验,那么你可 以定义Header带有device- os=android就将95%流量转 移版本为1.0的实例中,5% 11 ServiceComb Service Center架构演进 - 支持多注册中心 - 拥抱混合云架构 - 同时支持客户端自注册与平台注册 - 打通k8s与虚机等基础设施,可实现VM向容器平滑迁移 Service Center k8s adaptor etcdadaptor Service center adaptor Registry k8s k8s Service center0 码力 | 21 页 | 8.48 MB | 1 年前3
 ServiceComb在华为消费者云的亿级用户微服务实践性能:支持原生的Reactive模式(EventLoop),相比于传 统的同步服务调用,性能更高(吞吐量N倍+提升、时延降低 为原来的50%-)  轻量级、易集成:可以方便的与Spring MVC、Tomcat等 已有技术和容器集成,支持轻量级的standalone部署  服务治理:可商用的服务治理能力  成熟和商用支持:Apache孵化项目,公司内部大规模使 用,专职的团队支撑 微服务框架 RPC框架 跨语言: 不导入服务 端的类库定义,双方互相解耦  微服务接口测试:测试基于流水线的API定义生成自动化测试用例, 防止开发本地随意修改API  微服务API依赖关系:通过微服务流水线编译、打包和系统集成 测试,识别并展示微服务API之间的依赖关系(我依赖谁、谁依赖我)  API变更管控:API变更邮件通知和审批,每日微服务流水线构建, 及时发现接口不兼容问题 实践-不同的微服务开发风格 联关 系,无论是同步服务调用还是异步服务调用,I/O通信都 可以采用异步非阻塞模式 同步服务调用的几个缺点: 1、业务线程利用率低:线程资源是系统中比较重要的资源, 在一个进程中线程总数是有限制的。提升线程的使用率,就能 够有效提升系统的吞吐量。在同步服务调用中,如果服务端没 有返回响应,客户端业务线程就会一直阻塞(wait),傻等期 间,无法处理其它业务消息。 2、纠结的超时时间:服务的超时时间配置是个比较纠结的事0 码力 | 15 页 | 1.15 MB | 1 年前3
 杨钦民-唯品会微服务架构演进之路v0.2���� ���� ���� ����Proxy��� ��������� � ��������� ��� ���� ����� 全链路监控/eIcLIO功能d绍 ü 监控大盘快速展现系统问题 ü 秒级实时告警第一时间报告 cIAKAcaD AssLes ü 分钟级准实时告警周期性检测 指标规则 ü e告警事i快速定o根源问题 ü 灵活方t的多级告警策略定义 ������ ���� ���� Kubernets���� 云平台 存储 主机层 宿主机管理 网络 容器层 Docker Docker Noah������Docker���� ���� kubernetes���� ������ 0oah容器云镜x存储h及分发 ��IDC� CI���� Harbor A� IDC1� Harbor B1� VOS� 海量S高可用的镜x存储 多机房分发 0oah容器云KLbeIFeKes容器编排 ���� • ���CPU��� • �� ”��” ��������� ����� • �� / Health Check URL ���� • ������������ • ������������ 0oah容器云自动扩缩容QH2A算法) TargetNumOfPods0 码力 | 43 页 | 3.89 MB | 1 年前3
 消费者云CSE微服务实践微服务框架技术选型-业务服务化目标  系统解耦,功能内聚,提升需求交付效率:通过业务的拆分和解耦,让系统敏 捷起来,快速、小批量的交付价值需求,提升业务的交付效率  践行API First:通过服务化,让服务提供者和消费者乊间通过微服务API建立契约,利 用Swagger OpenAPI规范,最终将微服务API规范化、标准化、在线化。系统从传统单体 应用的黑盒调用(本地Java方法调用)转变成透明的API契约调用 服务框架丌要绑定具体的语言实现,例如内部通信协议使用某种 语言特定的序列化机制、发布泛型、抽象接口等 微服务框架技术选型-灵活和轻量级架构  当前业务服务端都是非Web应用,所以丌需要运行在Web容器中, 需要类似Main函数可以直接拉起来的Standalone模式  服务框架要足够轻量级,可以按需加载类库,防止不当前业务的 三方库发生冲突  启停速度要快(秒级弹性伸缩)、资源占用要合理 选型试用时,大家对CSE的接受度比较高,使用CSE改造已有的Spring MVC代码相对较 容易些  华为内部的平台,无论是新需求接纳,还是技术支撑,各方面保障都比较给力  天生支持Docker容器不华为公有云,降低业务云化成本 CSE在消费者云业务的实践-API First API 接口 契约 消费者1 消费者2 消费者...N 提 供 者 1、接口定义0 码力 | 22 页 | 1.39 MB | 1 年前3
 Service Mesh在华为公
有云的实践400多个微服务,800左右实例, 200多个数据中⼼心 Sidecar模式 • 基于容器的分布式系统设计模式 • 容器可以共享存储与⺴⽹网络的能⼒力 应⽤用程序容器 ⽇日志同步⼯工具容器 存储卷 Sidecar优势 • 以容器作为基础打包单元,可以分给不同的团队进⾏行开发测试 • 可重⽤用 • 以容器作为错误边界,使服务能够正确推出 • 独⽴立回滚与更新 第⼆二代:HSA SideCar Infrastructure as Code—开发者⾃自⾏行选型 • 命令⾏行注⼊入⼯工具—Mesher开发团队定制 • 编排服务⾃自动注⼊入—最完整的产品体验 应⽤用与Mesher集成最佳实践 • 使⽤用容器,容器⺴⽹网络与编排调度平台 • 业务代码监听在本地端⼝口,并且不要暴露业 务服务端⼝口。使⽤用Mesher端⼝口对外提供服务 • 使⽤用SideCar部署模式 • 将服务提供者地址写在配置⽂文件中,在本地0 码力 | 52 页 | 4.37 MB | 1 年前3
共 39 条
- 1
 - 2
 - 3
 - 4
 













