AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

逃离 AWS 后,我们将服务器的年开支省下了 80%

  • 2022-10-08
    北京
  • 本文字数:2245 字

    阅读完需:约 7 分钟

逃离AWS后,我们将服务器的年开支省下了80%

近日,skilled.dev 和 gitconnected.com 网站的创始人 Trey Huffine 采访了 Prerender.io 的首席工程师兼经理 Zsot Varga。Zsot 告诉大家,Prerender 设法摆脱了对 AWS 的依赖,并构建了内部基础设施来处理流量和缓存数据,这一做法为他们节约了 80 万美元的年开支。

 

“目标是降低成本,同时保持相同的渲染速度和服务质量。像这样的迁移工作需要周密的计划和认真的执行,因为不正确的配置或执行不力会让客户网页和社交媒体按钮挂掉,影响他们的搜索排名,并可能增加我们的流失率。”

Pretender 公司简介


Prerender 提供的服务是缓存和预渲染客户的JavaScript页面,给搜索引擎提供一个纯 HTML 文件来抓取和索引。客户只需在自己的网站上安装一个中间件就能搞定了。这个服务需要云端处理数据,所以 Pretender 选择了 AWS,之前每分钟能处理 7 万个页面,存储了 5.6 亿个页面数据,每年的 AWS 费用超过一百万美元。而三个多月的迁移工作完成后,总成本下降了 80%。

迁移计划


Pretender 在AWS的开销主要分为两部分:

 

  • 数据缓存。预渲染的页面都得存在 AWS 服务器上,然后搜索引擎爬取的时候提供静态页面,网站用户点击时提供动态 JS 页面。存储、维护费用是很高的。

  • 流量成本。把数据导入 AWS 是免费的,问题是实践中这些数据还要被经常读取,这个费用也不容小觑。

 

所以他们的解决方案也很简单,将缓存的页面和流量迁移到 Prerender 自有的内部服务器上,尽量摆脱对 AWS 的依赖。一开始 Pretender 估计成本能砍掉 40%,但除了降本,渲染速度和服务质量是不能打折的。

 

谨慎起见,Pretender 规划了三阶段的迁移计划,可以随时在客户无感知情况下回滚。不过系统性测试需要持续跑几周甚至几个月。

分阶段迁移

第 1 阶段:测试(4 到 6 周)


第 1 阶段的主要工作是设置裸金属服务器,先在容易管理的小规模集群上测试,然后再扩展上去。这个阶段需要的软件适配工作是最少的,所以团队决定跑在 Linux 上的 KVM 虚拟化环境里。

 

5 月初,第一批服务器上线,1%的 Prerender 流量被定向到新服务器。迁移两周后,日成本就已经下降了 800 美元。到月底,大部分流量负载都从AWS迁移走了,每日 chrome 渲染负载成本降低了 45%。

 

当时的服务端成本是每月 13,000 美元,综合来算开支削减了 22%。


测试阶段对后面的工作非常重要。团队在已有监控板之外还做了一个新的渲染监控仪表板来加强可观测性。之后一切顺利,第二阶段启动。


第 2 阶段:技术设置(4 周)


第二阶段时间是 6 月至 7 月初。主要工作是将缓存移动到裸金属服务器上。

 

6 月中旬,Pretender 自有的 300 台服务器缓存页面总数达到了 2 亿。注意这些服务器上都使用了 Apache Cassandra节点,这种节点是和 AWS S3 兼容的,确保平滑迁移。

 

线上迁移分为四步,每两步之间相隔一两周。团队首先测试了 Prerender 页面是否可以同时缓存在 S3 和 minio 对象存储中,显然没什么问题。之后流量逐渐从 AWS S3 转移到 minio 上。迁移完成后又节省了每天 200 美元的 S3 API 费用,缓存在 Cassandra 集群中的数据也准备删掉了。现在服务器成本从 AWS 上的 3.5 万美元每月降到了自有服务器的 1.4 万美元每月。

 

AWS 上还剩下一点数据,每天开销大约 60 美元,但过几星期这些数据就自然过时不用了。之所以不选择一次性把这些数据都迁走,是因为数据迁移出 AWS 时还要一次性浪费 5000 美元的转出流量费用。所以这里就是一个坑:数据导入 AWS 不收钱,提取出来可就不一样了。另外不同地区的流量费用可能还有差异,比如说亚太的流量费用就比北美的要高不少。很多公司都对这方面的成本稀里糊涂,莫名其妙就花了冤枉钱。还好 Pretender 算好了这部分支出,没有一激动就把数据迁走而是等它自己过期。第二阶段结束后,总成本下降幅度从第一阶段的 22%来到了 41.2%。


第 3 阶段:实施和扩展(4 到 6 周)


剩下的工作就是把其他数据都迁到自有服务器上。这一步需要迁移所有 Amazon RDS 实例,而且得一个切片(shard)一个切片移动。这一步最容易出错,不过因为剩下的数据也不多了,所以就算出问题也没什么大影响。具体的步骤是:

 

  • 在 Cassandra 集群中存储 cached_urls 表的 PostgreSQL 分片镜像;

  • 将 service.prerender.io 切换到 Cloudflare 负载均衡器,提供动态流量分配;

  • 启动新的私有重缓存服务器,位于欧洲;

  • 持续压测,解决各种性能问题。

 

最终迁移圆满成功。所有缓存页面都被重定向后,每月的服务器费用下降了 80%,远超之前 40%的预测。

迁移经验和总结


大规模迁移过程中一旦出现问题或者进度落后,都可能造成巨大风险。所以 Pretender 在每个迁移阶段都有故障安全措施,一旦出问题就会回退。另外迁移之前要先在小集群上做好测试。迁移的计划都要精心制定,每一步扩展到大规模之前都要做测试,这样风险就是可控的。

 

Zsot 还谈到了关于 Pretender 公司与他个人的一些事情。

 

  • Pretender 提供的服务能让客户把关注的焦点从网站 SEO 转移到用户体验上。这样客户想用 JS,想用 React,想用什么动态页面都不用担心影响 SEO 排名了。

  • 公司使用的技术栈就是 JS,毕竟业务就是针对 JS 页面的。针对全球部署,公司选择的是 CloudFlare;公司还选择了 DigitalOcean 来保证可用性,以及其他很多 SaaS 服务来提升效率。

  • Zsot 自己家里放了 8 台服务器,不过平时的工作都是用 Macbook 完成的。玩游戏的时候就找 Windows 笔记本,平板自然也不缺。

  • Zsot 日常主要用 VSCode,最近还在尝试新出的 Copilot。代码仓库主要用 GitHub,GitLab 也会用。消息应用主要是 Slack,这些天 Zsot 还发现了 Spike 这个电子邮件客户端很好用。主力容器工具是 Docker,K8s 也在适应中。

 

原文链接


https://levelup.gitconnected.com/how-we-reduced-our-annual-server-costs-by-80-from-1m-to-200k-by-moving-away-from-aws-2b98cbd21b46


2022-10-08 18:115928
用户头像
李冬梅 加V:busulishang4668

发布了 956 篇内容, 共 554.0 次阅读, 收获喜欢 1118 次。

关注

评论

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

蓝易云:如何在 Ubuntu 22.04 LTS 上安装分区编辑器 GParted?

百度搜索:蓝易云

云计算 Linux ubuntu 运维 GParted

跨平台混合应用:用户和开发者的新选择

没有用户名丶

分布式锁的3种实现!附代码

王磊

Java

高性能MySQL实战(三):性能优化 | 京东物流技术团队

京东科技开发者

京东云 企业号9月PK榜

Mac电脑最新2023 Xmind 激活中文版

胖墩儿不胖y

思维导图 Mac软件 mac思维导图 思维导图软件

“源聚一堂”开源技术沙龙济南站顺利举办

inBuilder低代码平台

开源 低代码

使用 NGINX Unit 实施应用隔离

NGINX开源社区

Unit 应用隔离

如何赋能企业数字化转型?华为云有妙招

YG科技

蓝易云:如何在 RHEL 8 或者 CentOS 8 上安装 MongoDB?

百度搜索:蓝易云

mongodb 云计算 centos 运维 RHEL

ARTS 打卡 第一周,初试ARTS

三掌柜

ARTS 打卡计划

苹果电脑电量显示软件 Magic Battery中文最新版

mac大玩家j

Mac 软件 电池管理工具 电池软件

Scrum Master,这九个问题你问了吗?

敏捷开发

项目管理 敏捷开发 团队协作 Scrum Master

SPI在Java中的实现与应用 | 京东物流技术团队

京东科技开发者

Java spi 京东云 企业号9月PK榜

分库表数据倾斜的处理让我联想到了AKF模型 | 京东云技术团队

京东科技开发者

数据库 京东云 企业号9月PK榜

ARTS 打卡第四周

程序员在修行

数据通信网络之IPv6以太网单臂路由

timerring

数据通信网络

星耀数字中国,先要存下宇宙山河

脑极体

存储

企业综合信息化,人力资源管理,培训考学管理,电子采购(源码系统)

金陵老街

java;

HarmonyOS Codelab 优秀样例——溪村小镇(ArkTS)

HarmonyOS开发者

HarmonyOS

云迁移?是技术问题也是团队问题

在天涯的海角

从实时监控到智能洞察:Grafana 和 CnosDB 的无限潜力

CnosDB

时序数据库 开源社区 CnosDB

2024第二十三届浙江国际智能楼宇技术与智慧安防产品展览会

AIOTE智博会

智慧楼宇展 安防展 智慧安防展

2024第八届浙江智慧城市与智能建筑产品博览会

AIOTE智博会

智慧城市展 智能建筑展

初露头角!Walrus入选服贸会“数智影响力”数字化转型创新案例

SEAL安全

企业数字化转型 数智化 企业号9月PK榜 中国国际服务贸易协会

如何实现MongoDB副本集实例间的数据迁移

NineData

数据库 mongodb 复制 迁移 NineData

828 B2B企业节,华为云如何提升生态合作伙伴的综合竞争力?

YG科技

与中小企业共生共赢,华为云B2B企业节来了

YG科技

MGR新节点RECOVERING状态的分析与解决:caching_sha2_password验证插件的影响

GreatSQL

greatsql mgr

逃离AWS后,我们将服务器的年开支省下了80%_数据库_Trey Huffine_InfoQ精选文章