微服务创新新品发布servicecomb.apache.org github.com/apache?q=servicecomb 微服务创新新品发布 马彬 2019 2 github.com/apache?q=servicecomb servicecomb.apache.org 在同一个业 务领域的微 服务中使用 了多种不同 语言进行开 发部署 使能多微服 务技术栈开 发的微服务 应用之间协 同工作和共 契约提取 代码生成 文档制作 契约校验 ServiceComb SpringCloud …… ServiceComb toolkit 划分微服务 (含依赖关系) 定义契约 (接口和模型) 发布契约 ServiceComb 契约开发工具 开发微服务 测试微服务 客户+集成商 软件开发商 部署微服务 契约仓库 微服务 运行环 境 验收微服务 协同企业遗留系统微服务化快速改造,实现基于契约的数据、服务标准化管控0 码力 | 12 页 | 2.96 MB | 1 年前3
可发布版-美团点评微服务OCTO-曹继光- 钻石段t ������! 2.�� ��! 3.�� ��! 4.�� ��! 5.�� ��� ��! 6.�� ���! 1.�� ��! 链路级流量隔离 • 全链路灰度发布 • 全链路压测 • 全链路故障演练 服务治理实践(6)-星耀段t+ 异地容灾 扩展 回顾:服务治理系统的三项必备能力 % 标准化 & 易用性 3 高性能 降u服务间协作成本0 码力 | 35 页 | 14.10 MB | 1 年前3
解读ApacheVP Apache Mynewt IoTDB, Dubbo, RocketMQ,Apex项⽬导师 Apache孵化器 Apache孵化器 理解Apache之道 发展社区 建⽴许可协议 发布 Apache孵化器 Apache孵化器 需要1-2年或更久的时间 毕业成为顶级项⽬ 并⾮每⼀个项⽬都有这样 的机会 社区 社区 友善 — 友善待⼈ 尊重 — 每个⼈的意⻅都有价值 信任 A 类 - 可以依赖并包括在发布中 MIT, 2 和 3 条款 BSD B 类 - 可以依赖并且可能包括 通⽤开发和发布协议 (CDDL), Eclipse公共协议 (EPL), Mozilla公共协议 (MPL), 知识共享许可协议 (CC-A) X 类 - 不可以依赖或者包括在发⾏版中 GPL, LGPL, ⾮商业许可证, JSON 发布版本 发布版本 在法律上,是基⾦会的⾏为 需要电⼦签名 通过⼤范围的镜像系统分发 发布 发布 已签名 需要孵化免责声明 有 LICENSE 和 NOTICE ⽂件 遵循ALv2以及任何包括第三⽅软件的协议声明 源⽂件有ASF头 由未编译的源码构成 ⼆进制版本 ⼆进制版本 不是必需的 不是官⽅版本 同样需要遵守规则 毕业 毕业 展示了项⽬独⽴运作的能 ⼒: ⾃我管理 发布管理 建⽴法律框架 公开透明地运作项⽬0 码力 | 43 页 | 4.89 MB | 1 年前3
ServiceComb 的前世今生开发 产品发布计划 开发 集成开发 运维人员替换 部 署 旧 版 本 开发 开发 测试/发布 • 技术实现单一,需要想办法用一种技术解决所有问题 • 只能按大颗粒系统发布版本,响应周期长 (小特性版本3-6个月,每年1个大版本) • 无法做到永远在线,大版本升级时,要停机中断服务 微服务化的应用构建和发布 产品发布计划 产品发布计划 产品发布计划 产品发布计划 产品发布计划 开发 部署到生成 环境 部署到生成 环境 开发 开发 部署到生成 环境 部署到生成 环境 部署到生成 环境 开发 开发 bugs 旧版本持续运行 Speed & Safety 面临的问题 • 企业应用和互联网应用的不同? • 如何做到不同ISV的应用互联互通统一管理? • 怎么才能加快微服务的开发? 服务中 心实例 服务中 心实例 • 统一的路由策略管控 • 缓存以提升性能 •支持pull/push两种模式监控实例变化 • 实例动态扩容,海量的长连接或者短连接 • 支持灰度发布、服务分组等高级管理特性 微服务 ServiceComb 开发框架 通信模型 (序列化、传输协 议) 编程模型 (同步、异步、 Reactive…)0 码力 | 16 页 | 1.45 MB | 1 年前3
Metrics in ServiceComb Java Chassis 1.0.0-m1 让微服务运行状态清晰可见org Apache孵化器 • 进入ASF孵化的目的 – 学习Apache做事之道 – 构建健康发展的社区 – 完善软件许可(License) – 与Apache的基础设施集成 – 发布合规版本 12 github.com/apache?q=servicecomb servicecomb.apache.org Apache孵化器 • 进入ASF孵化的步骤 – 提起孵化提案 – PPMC – 没有在邮件列表发生的事情就没有真的发生 – 通过投票的方式进行决议 • 投票规则 voting rule • 赞成 +1, 弃权 0, 反对 -1 • 一般会持续 72小时 • 对于产品发布, 需要大于等于3票+1通过 • 反对票需要提出相应的改进建议 – 共识决策 • 决策之前要充分讨论 • 通过懒式方式达成共识 – 新的Committer或者PPMC成员是通过投票产生的 https://incubator 是否能够自主发布合规版本 https://incubator.apache.org/guides/graduation.html 15 github.com/apache?q=servicecomb servicecomb.apache.org ServiceComb(Apache 孵化之前) Service Center Java Chassis 0.1.0 正式开源版本 Service0 码力 | 18 页 | 3.12 MB | 1 年前3
走进开源 - Apache ServiceComb中国优秀开源项目 一等奖 2012 2017.6 2018.10 2018.3 2019.1 信通院《开源产业白皮书》: 安全合规业界领先, 成国内三成企业首选 2019.7 2019.8 发布5大 创新项目 2019.10 2019.4 首次接受企业 捐赠的项目 招贤纳士 壮大社区 未来 成为国际化标准、 权威评测认证… 遵循Apache Way,中立、开发、标准、无商业Lock-in、社区健康发展 https://github.com/apache?q=servicecomb ServiceComb 全球首个Apache微服务顶级项目 进入Apache基金会近两年时间,共孵化11个项目,累计发布20+软件版本,社区净增代码59.4万+行,变更代码 330万+行,共接收6800+个提交,2400+个PR,由来自Redhat、Syswin、Hyperpilot、腾讯、oneAPM、京东、 长虹、人 [Github ] https://github.com/apache?q=servicecomb 提交issue报告 • 善用Github issue • 检索是否有类似的错误 • 详细描述软件的版本和使用环境 • 描述错误详细内容 • 给出测试用例 • 登录到JIRA 或者其他的Bug管理 工具提交报告或者补丁 https://github.com/apache/servicecom0 码力 | 28 页 | 1.92 MB | 1 年前3
消费者云CSE微服务实践尽管现在以Java和GO语言为主,但是从架构演进角度考虑,未来 会根据消费者业务自身的特点引入更适合的语言 服务框架丌要绑定具体的语言实现,例如内部通信协议使用某种 语言特定的序列化机制、发布泛型、抽象接口等 微服务框架技术选型-灵活和轻量级架构 当前业务服务端都是非Web应用,所以丌需要运行在Web容器中, 需要类似Main函数可以直接拉起来的Standalone模式 微服务框架采用的技术应该是经过验证、业界主流的技术,例如网 络传输采用Netty 微服务框架本身要成熟,经过丌同业务、较长时间的验证,商用发 布的特性要稳定 无论是社区开源版本,还是购买的商用软件,戒者自己构建,技术 支持和保障一定要到位 微服务框架技术选型-结果 为什么业务最终选择CSE作为微服务框架? 无论是华为内部的DSF,还是开源的Netflix、Spring 服务 端 Mock 框架 客户 端 Mock 框架 CSE在消费者云业务的实践-Spring MVC模式开发微服务 1、配置spring mvc依赖 2、注解Service 3、发布Service 优势:除了Spring MVC开发模式,同时 还支持: JAX-RS 透明RPC CSE在消费者云业务的实践-可靠性 1、分布式服务化本身引入的潜在故障点:0 码力 | 22 页 | 1.39 MB | 1 年前3
张波-虎牙直播在微服务改造中的实践名字服务在负载均衡场景的落地 xxx.huya.com 华南IDC 华中IDC 华北IDC Nginx Nginx Nginx Web server 专线 背景 负载均衡变更需要更新配置发布后 才能生效,节点扩缩容,屏蔽操作 需要人工参与,流量接入接出时间 长 目标 流量接入接出时长低于30秒 负载均衡配置下发无状态改造 虎牙负载均衡部署的机器数百,配置下发的可靠性保障,一致性保障要求特别严格, 服务注册发现对比 配置中心对比 对比项目/配置中心 apollo nacos 开源时间 2016.5 2018.6 配置实时推送 支持(HTTP长轮询1s内) 支持(HTTP长轮询1s内) 版本管理 自动管理 自动管理 配置回滚 支持 支持 权限管理 支持 待支持 多集群多环境 支持 支持 监听查询 支持 支持 多语言 Go,C++,Python,Java,.net,OpenAPI Envoy Bonder Provider Thin SDK Istio/Pilot Envoy Provider Fat SDK 订阅 xDS xDS 发布 接入Mesh应用 未接入Mesh应用 Nacos 订阅 发布 发布 • 基于开源Istio,对接Nacos实现服 务注册与发现 • 解决多技术栈复杂性 • 解决多语言Dubbo客户端功能差异问题 在闲鱼落地: Nacos支持Service0 码力 | 27 页 | 1.03 MB | 1 年前3
ServiceComb java SDK详解将从服务中心取得的实例集合,进行过滤,得到 Endpoint集合 • 根据兼容规则,将实例进行分组 只有edge service场景下,对于同一个目 标微服务,存在多个版本分组 • 兼容分组内,新版本功能集合大于旧版本,自动 根据url选择合适的版本组 • AZ亲和性 • 根据传输通道分组 • 根据实际调用统计,隔离暂时不可用的调用目标 • 开发人员通过SPI扩展过滤功能 2.以过滤得到的Endpoint集合作为输入,根据配置的策 businessBV2: path: "/c/d/.*" microserviceName: businessB versionRule: 2.0.0-3.0.0 这些路由配置,可以从配置中心动态下发,避免要发布新微服务时,需要重启Edge Edge Service-自定义路由 如果内置的路由规则无法满足业务需求,比如需要复杂的剪切修改url,或是修改码流 此时可以通过自定义路由进行 内置自动路由规则基于同样的机制实现: 通过SPI声明VertxHttpDispatcher的扩展 • 通过getOrder声明相对其他dispatcher的执行顺序 • 自己能处理的url,拦截处理 – 根据自定义规则获取目标微服务名、版本规则、新url等等参数 – 通过EdgeInvocation转发请求 • 自己不能处理的url,放通给其他dispatcher处理 Metrics-架构 • 基于netflix spectator0 码力 | 21 页 | 1.15 MB | 1 年前3
2-4-禚娴静-微服务你玩得起吗⽆无法快速有效定位问题,⽆无法 快速有效知晓服务运⾏行状态, 服务资源浪费。 3 服务过⼤大,堵塞交付 快速增⻓长的结果导致服务过⼤大 或者服务过⼩小。⽽而过⼤大的服务 导致整个提交流⽔水线堵塞,测 试⼈人员⽆无法拿到新的版本,交 付延期 4 团队出现冲突,架构腐化严重 交付不能完成导致各⾓角⾊色间的 冲突越来越严重,为了快速上 线质量遭到牺牲。架构⽆无⼈人守 护,各种不⼀一致性,服务内部 接⼝口⼀一⽚片混乱,核⼼心⼈人员离 1 环境⼿手⼯工维护,频频出错 2 缺乏有效监控 3 服务过⼤大,堵塞交付 快速增⻓长的结果导致服务过⼤大 或者服务过⼩小。⽽而过⼤大的服务 导致整个提交流⽔水线堵塞,测 试⼈人员⽆无法拿到新的版本,交 付延期 4 团队出现冲突,架构腐化严重 交付不能完成导致各⾓角⾊色间的 冲突越来越严重,为了快速上 线质量遭到牺牲。架构⽆无⼈人守 护,各种不⼀一致性,服务内部 接⼝口⼀一⽚片混乱,核⼼心⼈人员离 2015 环境⼿手⼯工维护,频频出错 缺乏有效监控 3 服务过⼤大,堵塞交付 快速增⻓长的结果导致服务过⼤大 或者服务过⼩小。⽽而过⼤大的服务 导致整个提交流⽔水线堵塞,测 试⼈人员⽆无法拿到新的版本,交 付延期 4 团队出现冲突,架构腐化严重 交付不能完成导致各⾓角⾊色间的 冲突越来越严重,为了快速上 线质量遭到牺牲。架构⽆无⼈人守 护,各种不⼀一致性,服务内部 接⼝口⼀一⽚片混乱,核⼼心⼈人员离0 码力 | 51 页 | 8.18 MB | 1 年前3
共 33 条
- 1
- 2
- 3
- 4













