大规模微服务架构下的Service Mesh探索之路Mesh:istio的增强扩展版 Pilot Auth Mixer Envoy Pilot Auth Mixer Golang Sidecar Istio现有架构 Sofa Mesh架构 1. 用Golang开发 Sidecar,替代Envoy 2. Mixer被部分合 并进入Sidecar 3. Pilot/Auth 做扩展和增强 Control plane Control plane Data Data plane Data plane Mixer架构设计 Architect2Golang版Sidecar Pilot Auth Golang Sidecar Mixer XDS API Mixer Service HTTP/1.1 HTTP/2 Sofa RPC ü 参照Envoy的设计 ü 实现XDS API ü 兼容Istio ü 支持HTTP/1.1和HTTP/2 1和HTTP/2 ü 扩展Sofa/Dubbo/HSF Dubbo RPC HSF RPC最大的改变:合并部分Mixer功能 Pilot Auth Mixer Golang Sidecar Mixer ü Mixer三大功能: • Check – 同步阻塞 • Quota – 同步阻塞 • Report – 异步批量 ü 合并Check和Quota ü Report暂时保留在Mixer中0 码力 | 37 页 | 7.99 MB | 6 月前3
Service Mesh 在蚂蚁金服生产级安全实践Mesh Meetup #6 广州站基于 Secret Discovery Service Sidecar 的证书管理方案 使用可信身份服务构建敏感数据下发通道 Service Mesh Sidecar 的 TLS 生产级落地实践 分享内容基于 Secret Discovery Service Sidecar 的证书管理方案 Kubernetes Secret 证书管理流程 在 Kubernetes Secret 更新时,Sidecar 需要通过热重启方式重新加载,成本高昂基于 Secret Discovery Service Sidecar 的证书管理方案 Envoy SDS 证书管理流程 Secret Discovery Service 是 Envoy 提出的 Sidecar 证书管理方案,方案的核心流程在于引入 SDS Server 进行密钥管理和分发,Sidecar 通过 gRPC 请求获取证书,并利用 请求获取证书,并利用 gRPC stream 能力实现证书动态轮转。 当然,Sidecar 和 SDS Server 的通信也需要保证自身的通信安全,存在以下两种方案: Sidecar 与 SDS Server 采用 mTLS 通信,采用静态证书方案,通过 Secret Mount 方式获取通信证书 Sidecar 与 SDS Server 采用 UDS 方式实现纯内存通信,不需要使用证书。基于0 码力 | 19 页 | 808.60 KB | 6 月前3
蚂蚁金服Service Mesh渐进式迁移方案非k8s上 不是Service Mesh形态 部署在K8s上 非SM 部署在 非k8s上 Service Mesh (Sidecar模式) 部署在K8s上 Service Mesh (Istio模式) 部署在K8s上 Service Mesh (Sidecar模式) 部署在 非k8s上 Service Mesh (Istio模式) 应用终极形态 应用现状 1 1 1 2 2 2 3 4 4 4 比较理想,绝大部分 投入最终都将保留 Service Mesh (Sidecar模式) Service Mesh (Istio模式) 带完善的控制 平面,如Istio 只有Sidecar, 直接集成周边 不现实 Istio的非k8s支 持投入产出比 太差 背景1:原生Istio无法支撑我们的规模 背景2:k8s(Sigma3.1)将加快普及 铺开,快速会师ü 和路线1的核心差别 • 是先上k8s,还是先上Service Mesh • 而且是终极形态的Service Mesh(意味着更偏离目标) ü 好处是第一步(非k8s上向Sidecar模式演进)非常自然 • 容易落地 • 快速达成短期目标 ü 缺点是再往后走 • 由于没有k8s的底层支持,就不得不做大量工作 • 尤其istio的非k8s支持,工作量很大 • 而这些投入,在最终迁移到k8s时,又被废弃0 码力 | 40 页 | 11.13 MB | 6 月前3
Service Mesh的实践分享OSP client 服务路由 网络传输 服务元数据上报缺点 • 语言单一 • 升级困难 • 复杂代码嵌入对客户端进程影响大服务化体系2.0 - Service Mesh雏形 • 物理机、sidecar • Local & Remote,主与备 • 轻量级客户端、本地调用 • Local Proxy负责服务治理与 远程通信 • Remote Proxy负责备份和非 主流流量 JavaApp Thrift over TCP Thrift over TCP JSON over HTTP JSON over HTTP多语言服务端接入 • Registry Agent • sidecar • 注册代理 • 健康检查 • 服务端受限于Proxy支持的协 议(目前只支持HTTP 1.1) Local Proxy Web Server Service Registry API 组 件会给自定义需求带来障碍。 • 保持客户端选择proxy的自由度和灵活性,在我们的实践中好处大 于坏处胖客户端 vs. service mesh vs. cluster 胖客户端 Sidecar(物理机) Daemonset(云) Cluster(HTTP) 接入难度 容易。打入依赖包即可 容易。需依赖SDK 容易。需依赖SDK 编码难度 容易。IDL接口规范 容易。IDL接口规范0 码力 | 30 页 | 4.80 MB | 6 月前3
Service Mesh 在『路口』的产品思考与实践Service 业务逻辑 SDK 协议编解码 服务发现 负载均衡 熔断限流 服务路由 …… Service 业务逻辑 轻量级 SDK 协议编解码 Sidecar (MOSN) + 服务发现 负载均衡 熔断限流 服务路由 …… - 专注业务实现 - 无需感知Mesh - 专注服务间通讯和相 关能力 - 与业务逻辑无关 的功能剥离 混合在一个进程内, 应用既有业务逻辑, 也有各种功能, 每次升级都要重新发布应用 业务进程专注于业务逻辑 SDK 中的大部分功能, 拆解为独立进程, 以 Sidecar 的模式运行 将服务治理能力下沉到基础设施,实现独立演进,透明升级7/39 异构系统统一治理 Part 1: 为什么需要Service Mesh? 多语言、多协议 图片来源:https://www -mesh 流量控制、监控8/39 金融级网络安全 Part 1: 为什么需要Service Mesh? 身份标识/访问控制 Service (client) Sidecar Sidecar Service (server) mTLS 服务鉴权 全链路可信、加密 零信任网络9/39 二、 在当下『路口』的思考10/39 Part 2: 在当下『路口』的思考0 码力 | 40 页 | 15.86 MB | 6 月前3
36-云原生监控体系建设-秦晓辉云原生之后监控需求的变化 •相比物理机虚拟机时代,基础设施动态化,Pod销毁重建非常频繁 •原来使用资产视角管理监控对象的系统不再适用 •要么使用注册中心来自动发现,要么就是采集器和被监控对象通过sidecar模式捆绑一体 指标生命周期变短 •微服务的流行,要监控的服务数量大幅增长,是之前的指标数量十倍都不止 •广大研发工程师也更加重视可观测能力的建设,更愿意埋点 •各种采集器层出不穷,都是本着可采尽 接口,可以直接抓取 • ETCD 可以考虑使用 sidecar 模式来抓,对于运维比较简 单一些,不需要先部署 ETCD 再去配置抓取规则 • ETCD 强依赖硬盘做持久化,所以要特别关注硬盘相关的 指标,尽量用 SSD 或 NVME 的盘 • 采集方式可以参考 categraf 仓库的 k8s/deployment.yaml,如果是 sidecar 模式,就直接使 用 categraf prometheus micrometer • 埋点方案尽量要全公司一套,规范统一,在代码框架层面内置,减轻各个研发团队的使用成本 Pod内的业务应用的监控 - statsd 数据流向 • 推荐做法:如果是容器环境,Pod 内 sidecar 的方式部署 statsd;如果是物理机虚拟机环境,每个机器上部署一 个 statsd 的 agent,接收到数据之后统一推给服务端 Pod-001 业务 容器 agent Pod-0020 码力 | 32 页 | 3.27 MB | 6 月前3
在Kubernetes上部署高可用的Service Mesh监控pictureGlobal view - Sidecar ● Deployed along with each prometheus ● Serves prometheus data through gRPC-based thanos store API Prometheus Sidecar gRPC Store API TargetsGlobal view + HAUnlimited Retention ● Prometheus packs data points for two hours into a block file. ● Sidecar uploads newly created block file to object store.Retrieval from object storage ● Backing up is Deploy on kubernetes - Prom + Sidecar ● https://github.com/improbable-eng/thanos/tree/master/ kube/manifests ● Run as statefulset in a kubernetes cluster. ● Sidecar and prometheus run as two separate0 码力 | 35 页 | 2.98 MB | 6 月前3
蚂蚁金服 API Gateway Mesh 思考与实践Mesh 实践 云原生 API Gateway 的思考2/21 API Gateway Mesh 的定义 /013/21 LB\Ingress API Gateway Sidecar App POD Sidecar App POD Traffic Control Plane K8S Cluster API Gateway in Service Mesh4/21 API Gateway 硬负载(LVS、Nginx) 软负载(服务发现)5/21 Sidecar Motorcycle (MOSN/Envoy) Service Mesh is Patterns SofaRPC API Gateway MQ Client Service Code6/21 LB\Ingress API Gateway Sidecar App POD Sidecar App POD Traffic Gateway Mesh An infrastructure to expose your services as a managed APIs in the form of a decoupled sidecar proxy7/21 蚂蚁金服 API Gateway Mesh 实践 /028/21 APP Mobile Server 单体架构 Logic Logic Logic Logic0 码力 | 22 页 | 1.72 MB | 6 月前3
Service Mesh结合容器云平台的思考和实践Makefile(include了tools/istio- docker.mk)把这个dockerfile build成了 ${HUB}/proxy:${TAG}镜像,也就是 Kubernetes里跟应用放在同一个pod下的 sidecar。非Kubernetes情况下需要把 pilot-agent、envoy跟应用部署在一起,这 就有点“污染”应用的意思了。Pilot-Agent的功能介绍 在proxy镜像中,pilot-agent负责的工作包括: envoy。 而envoy负责接受所有发往该pod的网络流量,分发所有从pod中发出的网络流量。 根据代码中的sidecar-injector-configmap.yaml(用来配置如何自动化地inject istio sidecar), inject过程中,除了proxy镜像作为sidecar之外,每个pod还会带上initcontainer(Kubernetes中的概 念),具体镜像为proxy_ role.Type变量定义,类型为model.Proxy,定义在context.go文件中,允许的3个取值范围为: i. "sidecar" 默认值,可以在启动pilot-agent,调用proxy命令时覆盖。Sidecar type is used for sidecar proxies in the application containers. ii. "ingress" Ingress type0 码力 | 28 页 | 3.09 MB | 6 月前3
严选 ServiceMesh 实践K8s 一脉相承且深度融合 • K8s 提供了部署、升级和有限的运行流量管 理能力 • Istio 补齐了 K8s 在微服务治理上的短板 (限流、熔断、降级、分流等) • Istio 以 Sidecar 的形式运行在 Pod 中, 自动注入,自动接管流量,部署过程对业务 透明 • 提供了完整的 Service Mesh 解决方案 • 数据面:Envoy • 控制面:Pilot,Mixe 特性移植到 1.10.x 版本 • Envoy 优化后在低并发(<64)的情况下,容器网络 client sidecar 优于 VM 网络直连 • Envoy 优化后在高并发(>=64)的情况下 • 容器网络 client sidecar 接近 VM 网络直连 • 容器网络 client sidecar 远远优于 VM cNginx(256并发 6.707 vs 15.771)13/24 当前演进方向 严选上云 Roadmap16/24 落地关键步骤 拥抱云原生 • 大势所趋 • 容器化是微服务的最佳载体 • 容器化是 Service Mesh 高 效落地的基石 部署平台 • Sidecar 注入,业务无感知 • 加速云化 建设服务治理平台 • 无缝衔接 VM 集群和容器集 群的服务治理能力 • 最大化发挥 Service Mesh 的 优势 灰度引流 • 服务间调用灰度引流0 码力 | 25 页 | 2.07 MB | 6 月前3
共 45 条
- 1
- 2
- 3
- 4
- 5













