陌陌Service Mesh架构实践Redis传输协议 / 复用Redis客户端 • 服务发布Proxy / 并行调用Proxy 服务治理 • 服务治理平台、配置中心 • 监控、日志、分布式跟踪 • 异步调用、压测7/24 流量代理机制 PHP服务发布入流量代理 PHP并行调用出流量代理 16年起开始使用流量代理机制解决跨语言服务治理问题8/24 分享主题:字号 分享嘉宾 发布服务数 2000+ 注册实例数 2万+ 引入Service Mesh 是否足够成熟 是否有替代方案 是否可接受成本 是否能兑现价值 观察阶段 试验阶段 评估阶段 启动阶段 思考 行动12/24 实践 /03 Service Mesh架构在陌陌的落地实践13/24 方案选型 与现有架构的兼容性 现阶段的关键需求 技术储备与原则类因素 自研数据平面与 控制平面方案 使存量服务接入Mesh 方案 对接大量内部系统 sidecar模式 • 与业务进程相同Pod不同Container 陌陌微服务容器化部署比例在80%以上 并且还在进一步推进 业务接入方式 • 研发人员:升级SDK版本 • SRE:发布系统配置发布项 sidecar模式部署17/24 数据平面升级方式 – 平滑升级机制 平滑要求 • 业务进程不重启 • 流量保持不变 方案选择 • FD迁移 vs 哨兵集群 原理 • sendmsg0 码力 | 25 页 | 1.25 MB | 6 月前3
进击的 Traefik | 云原生边缘路由器探秘Service Mesh Meetup #7 成都站 云原生边缘路由器探秘杨川胡(阳明) 知群后台负责人,原小米视频后台高级研发 ,《Prometheus 深入浅出》作者,「k8s技 术圈」社区作者,现阶段专注于云原生技术 领域,希望成为一个有产品思维的工程师1 Traefik 介绍 2 Traefik 2.0 核心概念 3 Traefik With Docker 4 Traefik With configurations are NOT compatible with the v2.X )Traefik 2.0 新特性 •TCP 支持 •中间件 •全新的 Dashboard •金丝雀发布 •流量复制 •其他功能......1 Traefik 介绍 2 Traefik 2.0 核心概念 3 Traefik With Docker 4 Traefik With KubernetesTraefik0 码力 | 35 页 | 8.58 MB | 6 月前3
金融级云原生 PaaS 探索与实践金融级云原生 PaaS 探索与实践 王成昌(晙曦)蚂蚁金服技术专家2/20 一、业务背景 二、多集群管控 三、发布运维体系 目 录 contents 目录3/20 一、业务背景 业务背景4/20 业务背景 业务架构 演进 • 容量 应用|数据库|机房 • 容灾 机房|地域5/20 业务背景 业务架构 单元化 • 高可用 • 一致性 • 可扩展 • 面向站点级别输出7/20 PaaS 能力 • 面向多租户多环境; • 基础资源管控; • 应用发布运维体系; • 业务实时监控,日志收集; • 机房级和地域级容灾能力; 业务背景业务背景 CAFÉ API Server Aggregation Layer 异地多活架构 同城双活架构 K8S API Server 基础发布运维 跨集群应用 资源管理 IaaS层(Aliyun/OpenStack/VMWare/Bare 跨集群管理 单元化能力 容器镜像管理 批次发布 原生资源管理 Pod伸缩管理 集群伸缩管理 变更管控 配额管理 运维原子操作 精细化调度 接入层流程调拨 应用层流量调拨 跨集群状态 分发/汇聚 数据层流量调拨 压测/灰度 流量管理 单元化 元数据管理 弹性流量管理 跨集群发布策略 多集群管理 跨集群网络 跨集群镜像管理 蓝绿发布 灰度分组发布 中间件变配 (DRM/Scheduler/Message)0 码力 | 20 页 | 1.71 MB | 6 月前3
蚂蚁金服网络代理演进之路3 uid转发目标zone 4 响应请求 5 写入cookie 6 再次请求app1 7 跨机房转发 50% 50% • 机房内zone随机路由 • Cookie zone转发 • 蓝绿发布 • 容灾 ØZone内容灾 Ø机房级别 Ø城市级别 • 弹性调度 • 压测 • 灰度蚂蚁金服SSL/TLS实践 合规 性能 安全软硬件一体解决方案 Intel QAT Cavium 流量镜像 流量镜像 TLS,国密 服务鉴权 流量控制 TLS,国密 服务鉴权 流量控制蚂蚁金服率先大规模落地SOFAMesh UDPA 安全 统一数据 平面API 存量连接无损迁移 提升5倍发布效率 TLS双向加密 支持国密算法 WAF 流量镜像 多协议 SOFARPC Dubbo HTTP1.1/2 平滑升级 性能 单跳CPU增加5%消耗 0.2ms RT 蚂蚁金服100+应 动态服务发现 运维 § 对控制平面性能,稳定性带来巨 大挑战 § 单实例数万路由节点,数千路由 规则,不仅占用内存,对路由匹 配性能也有较大影响 § SOFAMosn发布业务无感知,平 滑升级 § 海量,高频的发布订阅动作 § 发布分组策略,间隔策略平滑升级 l 支持新老 mosn 容器间链接、metrics 无损迁移,升级全程无重新建联 l 支持对服务中 mosn 容器进行无损平滑升级,即“给奔跑的汽车换轮胎”0 码力 | 46 页 | 19.93 MB | 6 月前3
严选 ServiceMesh 实践ServiceMesh 实践 王国云 网易资深专家 严选中台技术团队负责人/容器化负责人1/24 背景 2016.4 2016.7 2017 严选正式对外发布 技术团队规模:10+ 单体 严选初创 严选业务快速增长 RPC框架、cNginx发布 技术团队规模:50+ Service Mesh 架构试点 严选业务快速增长 服务化 技术团队规模:200+ Service Mesh 架构全面落地 CNCF 2017年4月25日 1.0Releases Linkerd 2016年9月13日 1.0Releases 2017年9月14日 加入 CNCF Envoy 2017年9月15日 发布 最新版本:0.7.1 nginmesh 2016年9月29日第一次被公开提出 Service Mesh 概念正式提出9/24 云原生 Service Mesh 框架 - Istio • Protocol(简称为 MCP,一套标准 GRPC 协议)19/24 质量保障体系 • CICD • 单元测试 • 性能基准自动测试 • 监控报警 • 版本升级机制 • Envoy 热更新机制 • 灰度发布机制:业务灰度+流量灰度 • 演练测试 • 业务回归验证20/24 一些坑 • Envoy 目前编译版本存在 Bug • 在 Istio pilot 升级到加入 accesslog 相关配置下发功能版本后,Envoy0 码力 | 25 页 | 2.07 MB | 6 月前3
Service Mesh是下一代SDN吗:从通信角度看Service Mesh的发展定制Istio组件 应用微服务 业务请求 控制流 图例说明 Pilot Mixer APP: Canary Deployment K8s API Server 管控规则 灰度发布 网格增强组件 原生组件 APP: Traffic Management APP ...产品化增强-服务注册发现 出于历史原因,我们使用了Kubernetes来部署服务,但并未使用Kubernetes内置的 Service V1 Service V1 Service V2 存量网络设备 “金丝雀”设备 消息上报 “金丝雀”用户 灰度发布应 用 运维 通过Envoy插件和Istio协议扩展来实现?产品化增强-其他 • APP:灰度发布、流量控制,更多的APP待业务场景触发 • IPV6支持增强 • 在Istio中集成方法级的调用跟踪 • 在Istio中集成Kafka调用跟踪上游开源社区参与情况0 码力 | 27 页 | 11.99 MB | 6 月前3
Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?WebAssembly (WASM) in Envoy - https://github.com/envoyproxy/envoy/issues/4272 - 计划在1.12版本提供(1.11版本发布于7月12日) - envoy-wasm项目:Playground for Envoy WASM filter - https://github.com/envoyproxy/envoy-wasm k8s 在控制台手工创建 创建服务 通过k8s自动注册 手工关联服务和托管实例组 服务注册 k8s进行健康检查 通过托管式实例组配置健康检查 健康检查 通过Istio支持 通过托管式实例组支持 灰度发布 流量劫持+ Sidecar(envoy) 流量劫持+ Sidecar(envoy) 服务调用 通过Istio Pilot 下发(xDS协议) 通过 Traffic Director(xDS协 Mesh技术的应用程序, 而无需紧密绑定到任何特定实现。”Linkerd 2.4.0: 开始支持SMI Part 4:ServiceMesh灵魂拷问四:说好的供应商不锁定呢? Linkerd 2.4.0: 发布于2019-07-11 Google This release adds traffic splitting functionality, support for the Kubernetes Service0 码力 | 43 页 | 2.90 MB | 6 月前3
七牛容器云ServiceMesh实践• 故障注入较困难(代码侵 入性强) • 测试环境不稳定,后端Pod 频繁重启 • 解决方案 • Contour产品化 • Istio的灰度发布和流量管理 • Istio的Tracing产品化落地场景—云存储系统 • 历史问题 • 灰度发布 • 预上线系统验证体系 • 系统故障隔离 • 跨集群访问 • 线上问题链路追踪 • 解决方案 • Istio南北流量分流策略产品化 • 基于Istio的QoS产品化0 码力 | 15 页 | 3.86 MB | 6 月前3
Service Mesh 在『路口』的产品思考与实践Service 业务逻辑 SDK 协议编解码 服务发现 负载均衡 熔断限流 服务路由 …… 混合在一个进程内, 应用既有业务逻辑, 也有各种功能, 每次升级都要重新发布应用 升级成本高 版本碎片化严重 中间件演进困难6/39 微服务治理与业务逻辑解耦 Part 1: 为什么需要Service Mesh? Service 业务逻辑 SDK 无需感知Mesh - 专注服务间通讯和相 关能力 - 与业务逻辑无关 将SDK客户端 的功能剥离 混合在一个进程内, 应用既有业务逻辑, 也有各种功能, 每次升级都要重新发布应用 业务进程专注于业务逻辑 SDK 中的大部分功能, 拆解为独立进程, 以 Sidecar 的模式运行 将服务治理能力下沉到基础设施,实现独立演进,透明升级7/39 异构系统统一治理0 码力 | 40 页 | 15.86 MB | 6 月前3
Service Mesh的实践分享应用直接产生影响,耦合太 重 难度小。Sidecar故障可以将流量临时切到 remote proxy解决 难度小。集群通过LVS接入,单 台机故障可以下线 升级难度 难度极大。需要客户端修改 代码、发布、上线。 难度小。切换流量到remote proxy可以实 现用户无感知的无损升级。 难度小。通过LVS摘流量滚动升 级 动态扩容难度 应用内置,无须扩容 物理机sidecar单客户端,无须扩容 难度大。Sidecar故障会影响同一个pod的业务容器,同 生共死 难度小。Sidecar故障可以将流量临时切到 remote proxy解决 升级难度 难度大。升级Sidecar需要业务容器一起发布,协调成本 高,而且全量升级sidecar对整个系统的动荡太大 难度小。切换流量到remote proxy可以实现用 户无感知无损升级。可以轻易的实现全网一月 一升级,快速的迭代、落地、反馈 动态扩容难度0 码力 | 30 页 | 4.80 MB | 6 月前3
共 19 条
- 1
- 2













