红帽白皮书新鲜出炉!点击获取,让你的云战略更胜一筹! 了解详情
写点什么

eBay 是如何将 Envoy 作为边缘代理的:将硬件负载均衡器替换为软件解决方案

  • 2019-01-20
  • 本文字数:1696 字

    阅读完需:约 6 分钟

eBay是如何将Envoy作为边缘代理的:将硬件负载均衡器替换为软件解决方案

在美国西雅图举行的首届EnvoyCon会议上,来自 eBay 的工程团队讨论了如何将 Envoy 作为网络边缘,以替代基于硬件的负载均衡器。他们的关键经验包括,测试至关重要,这样能够验证跨一系列真实场景的性能特征;必须从组织和技术的角度仔细控制新旧边缘系统之间的迁移;“可编程的边缘”会带来很多的优势,但是也有一些挑战。


Bala Madhavan 和Qiu Yu是来自 eBay 的技术人员,均为软件工程师,他们首先讨论了 eBay 在美国的数据中心,但是他们要在全球范围内运行连接点(points of presence,PoP)以减少延迟,从而为终端用户提供更好性能。他们使用了“软件支撑的基础设施”,在每个 PoP 上部署了一个 Kubernetes 集群,并且在每个集群的边缘上有一个“north-south”网关,用来管理所有针对外部的传入和传出流量。



eBay 的边缘团队在每个 Kubernetes 集群中将 Envoy 运行在多个容器里面。针对就绪(readiness)和存活(liveness)状态的探针会确保容器能够按照预期的方式运行,并确保所有动态恢复过程都能顺利完成。7 层路由和部署控制是由一个定制Kubernetes Custom Resource Definitions (CRDs)来进行管理的,他们还使用Ingress注解实现自定义特性的规范。除此之外,他们还实现了一个自定义的发现服务,用于处理如下的 Envoy 管理xDS API,并负责进行部署和路由:路由发现服务(routing discovery services,RDS)、监听器发现服务(listener discovery service,LDS)、端点发现服务(endpoint discovery service,EDS)以及集群发现服务(cluster discovery service,CDS)。


从基于硬件的负载均衡器到 Envoy 支撑的边缘解决方案的迁移是渐进式的。在迁移过程中,第一步就是识别和实现已有方案和新 Envoy 方案之间的差异,eBay 团队已经将相关的代码贡献给了上游的Envoy开源项目。另外,他们还添加了对专有证书管理系统集成的支持,并且对 data plane 进行了一些定制(这些定制功能还没有往上游贡献)。它们会处理连接预取(prefetching),根据特定的需求丢弃请求或者将请求重置到特定的路由,而且提供了一个“默认的上游集群”来优雅地进行错误处理。支持BBR,同时添加了对谷歌新TCP流控制算法的支持,以及尚未明确说明的“SSL 和 TCP 优化”。


Madhavan 和 Yu 展示了响应时间的图表,用以说明新的基于 Envoy 的实现要比之前传统的硬件负载均衡器表现更好。它们还以 Envoy HTTP 过滤器的方式实现了一个额外的缓存层,这个缓存层支持动态对象缓存,能够使用外部缓存存储和Envoy的RingHash负载均衡器在多个缓存存储之间共享缓存的数据,首字节响应时间(time-to-first-byte,TTFB)提高了一个数量级。



在可观察性方面,在每个 PoP 上会运行一个Prometheus集群,另外还有一个中心化的Grafana用来实现可视化。告警是使用Alertmanager和外部检查来实现的,还包括用来进行异常探测的静态和动态阈值。整个边缘技术栈是通过Helm Chart在 Kubernetes 中进行安装和配置的,Helm Chart 会作为部署的唯一来源。


总结一下所学习到的经验,最重要的就是需要进行测试。硬件和软件的交叉校验是非常重要的,为了确保用户不会遇到性能下降的问题,实时用户监控(real user monitoring,RUM)是必不可少的。DC 和 PoP 的故障恢复要进行测试,还需要运行额外的混沌(chaos)试验。“平滑工作负载迁移”的经验包括建议进行跨功能(团队)的规划和验证,以可控的方式在边缘解决方案之间切换流量,同时密切观察运维指标。


他们提到的挑战包括运行新系统时增加 PoP 的数量所带来的运维操作、跨 PoP 探测配置漂移以及为集群管理提供工具支持。通过 API 驱动 Envoy 代理的方式实现“可编程的边缘”会提供很多的优势,但是也遇到了很多的挑战。例如,control plane 是“自行构建还是集成”、与已有的(遗留)组件进行集成、如何操作指标和相关的性能数据,以及硬件专家所组成的运维团队如何调试和解决基于软件的方案。


演讲幻灯片的 PDF 版本可以在 EnvoyCon Sched 页面上“Running Envoy as an Edge Proxy”下载,演讲的录像可以在 CNCF YouTube 频道观看。


查看英文原文:Running Envoy as an Edge Proxy at eBay: Replacing Hardware Load Balancers with a Software Solution


2019-01-20 09:007441

评论 1 条评论

发布
用户头像
mark
2019-01-22 13:27
回复
没有更多了
发现更多内容

7 步提升私有化部署的极狐GitLab 实例安全等级

极狐GitLab

DevOps 安全 SSH DevSecOps 密钥

人脸识别图像技术的原理及其应用

来自四九城儿

生态共建丨崖山数据库系统与杉岩分布式存储系统完成兼容互认证

YashanDB

数据库

WePY小程序框架如何使用

Onegun

小程序 小程序框架

C4D必备的7个素材网站,很多爆款素材!

Finovy Cloud

C4D

军事领域关系抽取:UIE Slim最新升级版含数据标注、serving部署、模型蒸馏等教学,助力工业应用场景快速落地

汀丶人工智能

人工智能 自然语言处理 知识图谱 关系抽取 命名实体识别

Python潮流周刊#4:Python 2023 语言峰会

Python猫

Python

Server版支持即将到期,Jira和Confluence如何迁移?(2)

龙智—DevSecOps解决方案

云原生 迁移 云 原生云 CTO 迁移上云 迁移计划

Idea 社区版创建 Web 项目

Andy

Zilliz @ GOTC:大模型的记忆体——向量数据库的现在与未来

Zilliz

Milvus AIGC 向量数据库 zillizcloud cvpstack

当 Serverless 遇上 AI,锁定年度最佳 CP,这场论坛满足你的好奇心

阿里巴巴云原生

阿里云 Serverless 云原生

黄仁勋盛赞英特尔下一代制造工艺,有望委托代工英伟达 AI 芯片

E科讯

Django笔记三十九之settings配置介绍

Hunter熊

Python django session database setting

C语言编程—字符串

攻城狮Wayne

6 月 优质更文活动

崖山数据库系统YCA认证,首发期限时免费!

YashanDB

数据库

探索 Web 管理之路,OpenYurt 社区 UI/CLI SIG 正式启动

阿里巴巴云原生

阿里云 开源 云原生 openyurt

对线面试官-线程池(一)

派大星

面试

嘉为蓝鲸荣登广东软件风云榜,获评新技术应用最受欢迎产品TOP10

嘉为蓝鲸

软件 新技术 应用程序

Generative AI 新世界 | 大语言模型(LLMs)在 Amazon SageMaker 上的动手实践

亚马逊云科技 (Amazon Web Services)

机器学习

全面预算管理可以从科技发展中得到什么?

智达方通

全面预算管理 信息孤岛

APP出海的现状与挑战​

MobTech袤博科技

为什么数字化转型就应该选择低代码?一文详解

加入高科技仿生人

低代码 数字化转型

生态共建丨YashanDB与金蝶软件完成兼容互认证

YashanDB

数据库

软件测试/测试开发丨学习笔记之App自动化用例录制、结构分析

测试人

程序员 软件测试 自动化测试 测试开发 appium

深度学习进阶篇[7]:Transformer模型长输入序列、广义注意力、FAVOR+快速注意力、蛋白质序列建模实操。

汀丶人工智能

人工智能 自然语言处理 深度学习 Transformer 注意力机制

2023-05-31:给定一个整数数组 A,你可以从某一起始索引出发,跳跃一定次数 在你跳跃的过程中,第 1、3、5... 次跳跃称为奇数跳跃 而第 2、4、6... 次跳跃称为偶数跳跃 你可以按以下

福大大架构师每日一题

golang 算法 rust 福大大

独立游戏开发:掌握成功的五大关键技巧

龙智—DevSecOps解决方案

游戏开发 独立游戏 独立游戏开发

靠AI自动生成视频撸自媒体收益,月入5000+

派大星

ChatGPT4

【LLM for SE】顶会ICSE-2023发布LIBRO技术,利用大模型技术进行缺陷重现,自动重现率(33%)实现业界突破

华为云PaaS服务小智

云计算 华为云

文心一言 VS 讯飞星火 VS chatgpt (27)-- 算法导论5.1 2题

福大大架构师每日一题

福大大 ChatGPT 文心一言 讯飞星火

是 CI 也是阿拉伯飞毯——腾讯云 CODING CI 3.0 云原生构建

CODING DevOps

云原生 持续集成 CODING DevOps

eBay是如何将Envoy作为边缘代理的:将硬件负载均衡器替换为软件解决方案_语言 & 开发_Daniel Bryant_InfoQ精选文章