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

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

公众号新闻
作者 | Trey Huffine
译者 | 王强
策划 | 冬梅
大规模迁移过程中一旦出现问题或者进度落后,都可能造成巨大风险。

近日,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

今日荐文

点击下方图片即可阅读

AI绘画神器Stable Diffusion的疯狂与危险


你也「在看」吗? 👇

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
前后折腾半年,我们终于谈来了这个爆款!每个娃都必须有,一年省下几千块下一代服务器设计蓝图浮现!那些有成就的年轻人,下了班都在干什么?恭喜!纽约多位华裔赢得中期选举,将服务各主要社区为民发声燃!北美男神学长:离开Linklaters后,我进了Top红圈做合伙人!Grundy 省立公园,还得再去一次汪小菲手撕大S后,再爆私密猛料,我却看到了大S的“另一面”细颈瓶前妻评价细颈瓶以太坊合并完成后专访V神:转POS后中心化风险被”过度炒作”惊人画面!Woolworths后厨遭澳洲女子曝光,看完你还去购物吗...可能是最严重的云存储数据外泄事故之一:微软承认服务器错误配置导致全球客户数据泄露Java 无服务器函数入门 | Linux 中国匈牙利提醒欧盟:“我们将继续否决……”从一个漏洞拿下服务器控制权的全部过程硬核观察 #762 Facebook 在数百万台服务器上使用 Kpatch 内核实时补丁常用 Shell 分析服务器日志命令,运维快收藏![电脑] 联想1L小机机自制RoonServer(基于ubuntu),兼做影音服务器你还不会 Jumpserver 堡垒机(保护服务器)搭建部署?如何检查: 是 Xorg 还是 Wayland 显示服务器? | Linux 中国【立秋】多事之夏过后,还会有多事之秋吗?如何在 Linux 中实时监控日志文件(桌面和服务器) | Linux 中国摩尔线程推首款国潮游戏显卡、服务器GPU计算卡!还有中国首个元宇宙平台MTVERSE那些有成就的年轻人,下了班都在干嘛呢?触摸美国 20 身份问题 第二次搬家研究透取暖器的那些坑后,我才敢放心推荐它,暖而不燥,性价比首选!Meta股东建议裁员、削减开支;保乐力加聘请阳狮为媒体服务(广告狂人日报)服务器支持 IPv6 的原因 | Linux 中国长新冠(Long Covid)的症状与改善优化 Kubernetes 中的 Java 无服务器函数 | Linux 中国数据中心服务器技术及规格介绍服务器被入侵怎么办?看我操作我们将怀念如今正在被痛批的消费主义当汽车成为服务器,固态存储要如何创新?服务器发展、硬件结构及分类介绍SEC“变脸”,去中心化遭质疑,以太坊转型POS后跌穿1450美元
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。