写点什么

Envato 不停机迁移边缘网络提供商

2018 年 4 月 15 日

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

CDN 提供商 Envato 通过迁移边缘网络,将旗下分布式拒绝服务(DDoS)和Web 应用程序防火墙(WAF)系统整合至同一个供应商的平台上,并通过基于测试的自动化方法将基础架构变更与监视和持续反馈机制相结合,借此进行回归测试,实现零停机顺利迁移。

Envato 主要提供内容交付网络(CDN)服务。与其他 CDN 提供商类似,他们也有一个由边缘服务器组成的网络。边缘网络可用于从距离用户地理位置最近的地方向用户交付内容。它可以看作是一种代理缓存,首先从实际承载了内容的源服务器获取内容,随后交付给就近用户。包括Envato 在内的大部分CDN 厂商都会为边缘网络实施相应的安全措施,以防范DDoS 和其他类型的攻击。

Envato 的边缘网络服务器会进行 DDoS 清洗,同时可充当 WAF 。借此确保在边缘位置,而非源基础架构位置缓解安全威胁。此外这种方式还可将源位置与此类攻击隔离。这样的 WAF 通常是基于规则的,而规则源自对以往历史请求的分析结果。面对潜在攻击,需要通过拦截等方式降低请求速度,或强制进行人工介入,例如必须输入正确的验证码才能访问。包括 CloudFlare Akamai Fastly 在内很多 CDN 厂商都使用了类似的技术。DDoS 清洗需要检测并缓解可能的 DDoS 流量。根据 Akamai 的最新互联网安全态势报告( PDF ),过去一年里,全球范围内 DDoS 和 WAF 攻击的数量分别增长了 14% 和 10%。

Envato 原本以菊花链的形式部署了这些系统,用户请求首先需要遍历 DDoS 清洗,随后遍历 WAF 系统,接下来才能抵达源位置。


图片来源: https://webuild.envato.com/blog/migrating-edge-providers/

针对所有这些系统,调试、新部署的推出、自动化机制方面的差异以及统一预警能力的缺失等因素使得 Envato 希望迁移为某种统一系统,通过一个系统实现 DDoS 清洗和 WAF。在请求 ID 的生成以及潜在安全事件的预警等方面,这两个系统存在较大差异,这也使得调试工作变得更加困难。由于底层服务提供商各异,只有部分系统可以实现基础架构自动化,兼容性的实现变得极为困难,推出新的变更时需要付出巨大的精力。

对最终用户来说,迁移过程不能停机。迁移团队计划准备好测试套件,将变更发布给一组有限的测试用户,并在将这一过程中出现的所有问题顺利修复后,再全面发布给所有用户。使用测试套件主要是为了防止基础架构功能退化,具体做法与应用程序代码的升级和发布完全类似。他们使用了基于 Ruby 的框架 RSpec 实现行为驱动的开发(BDD),这种方式已被 Envato 工程团队广泛使用。该团队编写了一个名为 HttpSpec 的库,这个库运行在 RSpec 框架下,可处理 HTTP 交互(请求 / 响应)。此外他们还使用了 Spotify 的开源库 rspec-dns 。这一过程还使用了另一个名为 ServerSpec 的周边项目,该项目可以通过编写 RSpec 测试对服务器配置进行声明式测试。另外,他们还使用了一款内部工具对不同提供商的 API 调用响应进行转换,借此简化不同提供商之间的迁移操作。

最终,他们通过对不同流量以及对客户的潜在影响划分优先级,分阶段完成了迁移操作,并通过循环不断的自动化测试确保整个迁移过程顺利结束。

阅读英文原文 Migrating Edge Network Providers at Envato Without Downtime

2018 年 4 月 15 日 19:004757
用户头像

发布了 283 篇内容, 共 84.6 次阅读, 收获喜欢 34 次。

关注

评论

发布
暂无评论
发现更多内容

云原生时代 容器持久化存储的最佳方式是什么?

京东智联云开发者

数据库 云存储

「深度解析」告诉你如何选择容器存储

焱融科技

Kubernetes 云原生 焱融科技 容器存储 分布式文件存储

爬虫“学前班”,记住这些不踩坑!

华为云开发者社区

爬虫 数据 搜索

小程序云开发实战:从0搭建科技爱好者周刊小程序

薛定喵君

微信小程序 小程序云开发 云开发

接口测试工具

测试人生路

接口文档 接口测试

数字货币钱包开发,去中心化钱包源码搭建

135深圳3055源中瑞8032

以A.I.之力打破方言沟通障碍 科大讯飞重磅发布智慧翻译系统

Talk A.I.

java安全编码指南之:文件IO操作

程序那些事

java安全编码 java安全 java安全编码指南 java代码规范

我服了,难倒无数程序员的源码面试,就这样被轻轻松松讲透彻

小Q

Java 学习 源码 架构 面试

分布式文件存储QoS硬核黑科技,真香

焱融科技

高性能 存储 HPC 分布式文件存储 QoS

个人计算机、工作站、服务器的主要区别

德胜网络-阳

最近程序员频繁被抓,如何避免面向监狱编程!?

Java架构师迁哥

来自朋友最近阿里、腾讯、美团等P7岗位面试题

艾小仙

Java 阿里巴巴 程序员 腾讯 面试

openEuler开源下一代全场景虚拟化平台StratoVirt

openEuler

开源 虚拟化 openEuler stratovirt

USDT支付入金系统开发搭建,跨境USDT支付系统开发

135深圳3055源中瑞8032

云开发·多次订阅一次性订阅消息后定时发送

Yukun

微信小程序 小程序云开发 消息推送 订阅消息

API生态的发展与机遇:从5000组数据看中国API生态与开发者现状

华为云开发者社区

华为 API

基于阿里云容器的CI/CD落地实践

LorraineLiu

阿里云 k8s Helm jenkins CI/CD

uni-app支持PC宽屏适配

崔红保

uni-app 前端框架

如何生成 Flink 作业的交互式火焰图?

Apache Flink

flink

你用过宏##粘贴函数,然后用函数指针查找执行吗?今天就给你说道说道

良知犹存

c c++

数字货币交易所开发,去中心化交易所平台搭建

WX13823153201

数字货币交易所开发

合约一键智能跟单软件,跟单平台开发

135深圳3055源中瑞8032

anyRTC与京东智联云市场达成战略合作,携手音视频平台

anyRTC开发者

ios 音视频 WebRTC RTC 安卓

搜狗搜索或成为企鹅号流量入口:腾讯欲实现自己的流量闭环

石头IT视角

WebSocket-技术专题-服务器端消息推送

李浩宇/Alex

程序员不愿意说的秘密!Java进阶架构师必看:架构完美设计+程序员三门课+架构修炼之道

Java架构追梦

大企程序员亲身经历告诉你,CRM系统,自己的才是最好的

Learun

敏捷开发

币币交易所开发,区块链交易系统源码

135深圳3055源中瑞8032

架构师训练营第六周作业

Geek_4c1353

MySql从青铜到王者晋级之路,阿里大牛经验总结让牛少走弯路!

Java架构之路

Java 程序员 架构 面试 编程语言

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

Envato不停机迁移边缘网络提供商-InfoQ