Service Mesh的实践分享
不停的迭代、落地、反馈,打 造一系列的实用的治理功能 • 规则路由、标签路由、邻近机房 路由、Hash路由、基于权重的路 由、熔断、健康探测、超时重试、 限流降级等等 • 契约化治理,服务接口变更diff并 通知上游 • 环境无关,物理机、云、测试机 器、本机都能跑实践中踩过的坑 我是作者名称ZooKeeper的强耦合 • 初始设计没有抽象服务注册发现和服务配 置的接口,直接操作ZK并且依赖了ZK的特0 码力 | 30 页 | 4.80 MB | 5 月前3Service Mesh Meetup #3 深圳站
支;(执行单元测试,测试状态呈现 MR 中) • 4. Reviewer 对 MR 进行 code review ,批准合并之后, feature/new_branch 会合并到 develop; • 5. 部署负责人将 develop 分支代码部署到测试环境,然后再通知 QA 测试;(脚本或者人工)有什么问题? • 效率低 • 没有代码检查; • 没有自动化测试(包括单元测试); • • 沟通成本高 • 开发需要通知负责人、测试、产品等;(而且是每次构建/部署 都需要) • 依赖多较好的开发流程(流程化、自动化) • 1. 开启一个新的 feature; • 2. Devloper 从 develop 分支新建一个 feature/new_branch 来做特定 feature 的开发; • 3. 开发完成后,提交 merge request(MR)请求合并到 develop 构建成功就执行你定义的工作流:打包镜像,触发 deploy 以及其他后续的 Automation Testing 等流程; • 10 . Drone 通知工作流程情况给开发/或者交付 QA 测试;如何提升工程效率?我是作者名称2017 年 DevOps 现 状调查报告DevOpsDevOps DevOps 不是一种新工具; DevOps 不是一种新团队; DevOps 不是一种新角色;0 码力 | 45 页 | 18.62 MB | 5 月前3七牛容器云ServiceMesh实践
• 涉及K8S集群约20+集群 • 功能迭代 • 先南北,后东西 • 先原生,后二开 • 先管控面,后数据面落地场景—Spock测试平台 • 历史问题 • 分布式系统性能测试问题 定位难 • 多版本并发测试 • 故障注入较困难(代码侵 入性强) • 测试环境不稳定,后端Pod 频繁重启 • 解决方案 • Contour产品化 • Istio的灰度发布和流量管理 • Istio的 • 基于Istio的QoS产品化 • 跨集群流量调度 • 基于Istio的Tracing产品化落地场景—大数据产品 • 系统优化之路 • 多版本灰度升级 • 根据流量做横向伸缩 • 分布式系统性能测试问题 定位难 • 解决方案 • Istio南北流量分流策略产品化 • 基于Istio的QoS产品化 • 基于Istio的Tracing产品化 • 跨集群流量调度七牛容器云产品逻辑架构 Kubernetes0 码力 | 15 页 | 3.86 MB | 5 月前3严选 ServiceMesh 实践
Configuration Protocol(简称为 MCP,一套标准 GRPC 协议)19/24 质量保障体系 • CICD • 单元测试 • 性能基准自动测试 • 监控报警 • 版本升级机制 • Envoy 热更新机制 • 灰度发布机制:业务灰度+流量灰度 • 演练测试 • 业务回归验证20/24 一些坑 • Envoy 目前编译版本存在 Bug • 在 Istio pilot 升级到加入0 码力 | 25 页 | 2.07 MB | 5 月前3蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘
指标\软件 SOFAMosn Envoy QPS峰值 18000 N/A RT(avg) 12.354ms N/A MEM 100m N/A CPU 100% N/AGolang TLS单核性能测试 12 Ø环境 ü CPU: Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz ü 内存: 1.5G Ø软件 ü Nginx-1.13.8 with OpenSSL ECDHE-ECDSA-AES256-GCM-SHA384 Ø命令 ü ab -f TLS1.2 -Z $cipher -c 100 -n 200000 https://$ipGolang TLS单核性能测试 13Golang 单核加解密性能分析 14 ØGolang 对 RSA 上没有优化,并且暂无优化计划 ØGolang 对 p256 有汇编优化, p256MulInternal, p256SqrInternal等椭0 码力 | 44 页 | 4.51 MB | 5 月前3SOFAMesh的通用协议扩展
X-PROTOCOL 通用协议 • 问答SOFA MESH • 从 ISTIO 克隆并保持同步更新 • 使用 SOFA-MOSN 代替 ENVOY 作为数据平面 • 打包 • 安装 • 部署 • 测试 • 支持主流的微服务框架 • SOFA • HSF • DUBBO • SPRING CLOUD • … • 控制平面创新的地方 • MESH OPERATOR • RPC SERVICE0 码力 | 28 页 | 4.73 MB | 5 月前3Service Mesh 微服务架构设计
integrity:数据一致性难保证,面临分布式事物问题; Management:管理运维成本高,需要有成熟的DevOps平台,另外日志看查困难; Development and testing:开发测试成本高,依赖服务较多,Debug困难; Lack of governance:各服务可能技术栈不统一,不好统一管理;微服务和SOA究竟有什么区别 SOA MSASOA MSA 尽可能多的共享和复用0 码力 | 36 页 | 26.53 MB | 5 月前3Service Mesh结合容器云平台的思考和实践
Mesh中实施访问控制和使用策略。Mixer是一个可扩展组 件,内部提供了多个模块化的适配器(adapter)。 • Pilot 翻译过来是领航员,Pliot对Envoy的生命周期进行管理,同时提供了智能路由(如A/B测试、金丝雀部 署)、流量管理(超时、重试、熔断)功能。Pliot接收用户指定的高级路由规则配置,转换成Envoy的 配置,使这些规则生效。 • Istio-Auth 服务间认证和终端用户认证功能0 码力 | 28 页 | 3.09 MB | 5 月前3蚂蚁金服Service Mesh渐进式迁移方案
(100%)|628 6 同机房 400 42226 2001674 (100%)|729 7 同机房 500 42156 2001674 (100%)|1192 Bind queryperf 测试 100个域名(5s timeout)CoreDNS 的性能CoreDNS 的横向扩展 1、按照CPU 的维度 2、按照QPS 的维度(Custom Metrics)CoreDNS 的正式发布0 码力 | 40 页 | 11.13 MB | 5 月前3Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?
2:ServiceMesh灵魂拷问二:性能有了,架构怎么办? • 避免修改Envoy • 避免网络远程调用(check & report) • 通过动态装载(重载)来避免重启envoy • 隔离性 • 实时A/B测试 (内容来自”Extending Envoy with WebAssembly”)Envoy支持Web Assembly的架构 Part 2:ServiceMesh灵魂拷问二:性能有了,架构怎么办?0 码力 | 43 页 | 2.90 MB | 5 月前3
共 10 条
- 1