进击的 Traefik | 云原生边缘路由器探秘Docker、Kubernetes、Marathon 、Rancher、FileEntryPointsRouters匹配器Services • Services 负责配置最终处理传入请求 的实际服务。 • 负载均衡(针对应用实例):轮询( 目前支持)、session 亲和性 • 带权重的轮询:仅可用于在 Service 之间,并且目前只支持 File Provider • Mirror:将发送到服务的请求镜像复 containerPort: 443 hostPort: 443 - name: redis containerPort: 6379 hostPort: 6379 args: - --entrypoints.web.Address=:80 - --entrypoints.websecure.Address=:443 - --entrypoints.redis.Address=:6379 - --providers.kubernetescrd us/v1alpha1 kind: IngressRouteTCP metadata: name: redis spec: entryPoints: - redis routes: # 特定的域名需要指定对应的TLS证书 - match: HostSNI(`*`) services: - name: redis port: 6379More Info https://docs.traefik.io/谢谢0 码力 | 35 页 | 8.58 MB | 6 月前3
陌陌Service Mesh架构实践微服务体系的其他产品也均为自研方案6/24 MOA 1.0微服务体系整体架构 注册中心 • Redis作为底层存储 • 跨语言地址发现服务Lookup • 中心化存活检测 多语言支持 • Java、PHP、Python、Go、NodeJs • Redis传输协议 / 复用Redis客户端 • 服务发布Proxy / 并行调用Proxy 服务治理 • 服务治理平台、配置中心 异步调用、压测7/24 流量代理机制 PHP服务发布入流量代理 PHP并行调用出流量代理 16年起开始使用流量代理机制解决跨语言服务治理问题8/24 分享主题:字号 分享嘉宾 发布服务数 2000+ 注册实例数 2万+ 全天调用量 3500亿 微服务体系规模 服务量级的增长使得Java应用的服务治理问题 也逐渐暴露出来9/24 问题 /02 借助Service Mesh解决现有架构痛点10/240 码力 | 25 页 | 1.25 MB | 6 月前3
大规模微服务架构下的Service Mesh探索之路(Open Policy Agent) • rbac(连接到Istio CA) ü 实现Quota的Adapter • Memquota (基于单机内存) • Redisquota (基于外部redis) ü 实现Report的Adapter • Circonus • Cloudwatch • Dogstatsd • Fluentd • Prometheus • Solarwinds 同意视为基础设置, 甚至可能集成更多, 这里的抽象隔离是 我们认可的 但是这些??更应该 视为基本能力,直接 做成Mesh内置功能 List backend Redis for Quota memquota List backend Redis for Quota Istio现有的Mixer Adapter: list redisquota 同步阻塞 同步阻塞 异步批量 同步阻塞 2@cluster2 edge-sidecar : 8.8.8.3@cluster2 Service-B@zone2 4. Edge sidecar执行服务发现并 转发请求给Service-B的实例7月底北京,第二次Service Mesher线下Meetup 下回分解:增强版Pilot和Edge Sidecar开源策略 Open Source 3蚂蚁金服,开源开放 ü 从 4 月份开始逐步开源金融级分布式架构中的各个组件:0 码力 | 37 页 | 7.99 MB | 6 月前3
Service Mesh的实践分享依赖用户手工配置参数(超时时间、限流) • 服务实例的差异导致配置相当复杂,容易 配置不合理 • 无法动态根据系统指标调整阈值 • 目标 • 用户无需拍脑袋设值,服务治理中心根据 历史指标进行推荐,对不合理的设置进行 建议,如 • 根据应用的历史延迟时间推荐超时设置 • 根据应用的历史流量数据推荐限流设置 • 根据动态指标自动调整配置 • 如单个实例内指标异常(超时率、cpu异常等) 动态调整限流值或直接降级 为写失败了下游却写成功了) • 目标 • 实时上下游超时治理 • 通过传递剩余超时时间,让下游可以判断是否 继续一些重量级操作 • 实时上下游限流治理 • 下游资源异常(DB调用超时、redis超时等)动 态调整上游限流值或直接降级 • 智能路由 • 根据实时数据优化不合理的跨机房调用 Proxy App 服务调用 (带超时时 间) Proxy App Proxy App0 码力 | 30 页 | 4.80 MB | 6 月前3
Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?虚拟机? 托管式实例组:效仿容器和k8s的方式来管理虚拟机 容器的硬件配置 实例模版的硬件配置 硬件 镜像文件的基础镜像 实例模版的操作系统配置 操作系统 镜像文件 自动启动脚本 创建应用 启动业务容器 按照实例模版启动虚拟机+应用 启动应用 k8s replicaset 通过实例模版设置实例数 管理实例副本(固定) k8s HPA或者serverless 通过实例模版设置自动伸缩 管理实例副本(伸缩) 管理实例副本(伸缩) 更改镜像文件 更改实例模版 应用版本升级 容器/k8s 虚拟机(托管式实例组)Part 3:ServiceMesh灵魂拷问三:要不要支持虚拟机? Traffic Director:效仿k8s/Istio的方式来管理服务 k8s service Google Traffic Director 服务 服务定义 通过 k8s 在控制台手工创建 创建服务 通过k8s自动注册 通过k8s自动注册 手工关联服务和托管实例组 服务注册 k8s进行健康检查 通过托管式实例组配置健康检查 健康检查 通过Istio支持 通过托管式实例组支持 灰度发布 流量劫持+ Sidecar(envoy) 流量劫持+ Sidecar(envoy) 服务调用 通过Istio Pilot 下发(xDS协议) 通过 Traffic Director(xDS协 议) 服务发现 k8s Traffic DirectorPart0 码力 | 43 页 | 2.90 MB | 6 月前3
函数计算在双11小程序场景中的应用优化后 200ms 10ms~60000ms 预留实例 0ms 0ms函数计算-弹性伸缩 C1 C1 C2 C1 C2 时间 t1 t2函数计算-预留实例 • 预留实例:性能好 • 按量实例:按需使用函数计算-预留实例 预留实例 按量实例 效果 0 0 禁止调用 10 0 只使用预留实例,固定费用 0 10 只使用按量实例,按需付费 10 5 混合模式,兼顾性能和成本函数计算0 码力 | 13 页 | 6.95 MB | 6 月前3
Service Mesh Meetup #3 深圳站alk is cheap, Show me the code!• 当使用一个客户端实例和多个后端实例进行部署时,所有的调用仅 路由到单个后端实例。当部署第二个客户端时,它可能被路由到另 一个后端实例。这不是所需的那种负载均衡,因为它不允许独立地 扩展客户端和服务器。当客户端实例比服务器实例少时,一些服务 器实例将处于空闲状态,所以 Kubernetes Service 不太适合 gRPC 负 载均衡。—摘自:http://www0 码力 | 45 页 | 18.62 MB | 6 月前3
Service Mesh 高可用在企业级生产中的实践响应超时19/总页数 治理策略 & 高可用 • 微服务高可用 设计手段 服务高可用 服务限流 方法容错 负载均衡+ 实例容错 柔性化/异步化 服务冗余 服务分流 存储高可用 熔断20/总页数 治理策略 & 高可用 • 微服务高可用设计手段 • 限流 • 熔断 • 负载均衡+实例容错 Spring Cloud Service Mesh Config Server SDK Sidecar21/总页数 Hystrix 运作方式 黑盒方式 白盒方式 熔断粒度 实例级别 实例级别+方法级别 半开状态 不支持 支持 最大熔断比例 支持 不支持 fallback 不支持 支持31/总页数 治理策略 & 高可用 • 微服务高可用设计手段:Istio vs Hystrix Istio Hystrix 运作方式 黑盒方式 白盒方式 熔断粒度 实例级别 实例级别+方法级别 半开状态 不支持 支持 最大熔断比例 微服务高可用设计手段 • 负载均衡 • 随机 (Random) • 轮询 (RoundRobin) • 响应时间权重 (WeightedResponseTime) • 环哈希 (Ring Hash) • 实例容错 • Fail-fast • Failover • Failresnd34/总页数 治理策略 & 高可用 – 总结 • 从手段看高可用 • 从架构看高可用 • 从硬件看高可用 • 从软件看高可用0 码力 | 38 页 | 1.38 MB | 6 月前3
Service Mesh 在蚂蚁金服生产级安全实践方案是通过label selector 能力选择指定范围内(批量 or 单实例)的Pod 实例,同时关 联社区现有CRD,从而实现保留在兼容社区CRD设计方面的灵活性,又能实现任意CRD的更细粒度控 制能力 以TLS 开关为例,在发布TLS开关时,先提交 ScopeConfig 通过 Pod IP 这个label 实现单实例开关控制, 在观察正常后,逐步调整ScopeConfig 的Selector0 码力 | 19 页 | 808.60 KB | 6 月前3
蚂蚁金服网络代理演进之路同一个应用,部分Mesh化 § 蚂蚁基础设施适配 § TLS加密链路平滑迁移 Localhost or Iptables 透明劫持和加速大规模问题 10万+实例 动态服务发现 运维 § 对控制平面性能,稳定性带来巨 大挑战 § 单实例数万路由节点,数千路由 规则,不仅占用内存,对路由匹 配性能也有较大影响 § SOFAMosn发布业务无感知,平 滑升级 § 海量,高频的发布订阅动作 § 发布分组策略,间隔策略平滑升级0 码力 | 46 页 | 19.93 MB | 6 月前3
共 20 条
- 1
- 2













