加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

Tumblr:150亿月浏览量背后的架构挑战

发布时间:2016-10-01 02:23:05 所属栏目:系统 来源:csdn.net
导读:副标题#e# 导读:和许多新兴的网站一样,著名的轻博客服务Tumblr在急速发展中面临了系统架构的瓶颈。每天5亿次浏览量,峰值每秒4万次请求,每天3TB新的数据存储,超过1000台服务器,这样的情况下如何保证老系统平稳运行,平稳过渡到新的系统,Tumblr正面临

软件部署

开发了一套rsync脚本,可以随处部署PHP应用程序。一旦机器的数量超过200台,系统便开始出现问题,部署花费了很长时间才完成,机器处于部署进程中的各种状态。

接下来,使用Capistrano(一个开源工具,可以在多台服务器上运行脚本)在服务堆栈中构建部署进程(开发、分期、生产)。在几十台机器上部署可以正常工作,但当通过SSH部署到数百台服务器时,再次失败。

现在,所有的机器上运行一个协调软件。基于Redhat Func(一个安全的、脚本化的远程控制框架和接口)功能,一个轻量级的API用于向主机发送命令,以构建扩展性。

建立部署是在Func的基础上向主机发送命令,避免了使用SSH。比如,想在组A上部署软件,控制主机就可以找出隶属于组A的节点,并运行部署命令。

部署命令通过Capistrano实施。

Func API可用于返回状态报告,报告哪些机器上有这些软件版本。

安全重启任何服务,因为它们会关闭连接,然后重启。

在激活前的黑暗模式下运行所有功能。

展望

从哲学上将,任何人都可以使用自己想要的任意工具。但随着团队的发展壮大,这些工具出现了问题。新员工想要更好地融入团队,快速地解决问题,必须以他们为中心,建立操作的标准化。

过程类似于Scrum(一种敏捷管理框架),非常敏捷。

每个开发人员都有一台预配置的开发机器,并按照控制更新。

开发机会出现变化,测试,分期,乃至用于生产。

开发者使用VIM和TextMate。

测试是对PHP程序进行代码审核。

在服务方面,他们已经实现了一个与提交相挂钩的测试基础架构,接下来将继承并内建通知机制。

招聘流程

面试通常避免数学、猜谜、脑筋急转弯等问题,而着重关注应聘者在工作中实际要做什么。

着重编程技能。

面试不是比较,只是要找对的人。

挑战在于找到具有可用性、扩展性经验的人才,以应对Tumblr面临的网络拥塞。

在Tumblr工程博客(Tumblr Engineering Blog),他们对已过世的Dennis Ritchie和John McCarthy予以纪念。

经验及教训

自动化无处不在

MySQL(增加分片)规模,应用程序暂时还不行

Redis总能带给人惊喜

基于Scala语言的应用执行效率是出色的

废弃项目——当你不确定将如何工作时

不顾用在他们发展经历中没经历过技术挑战的人,聘用有技术实力的人是因为他们能适合你的团队以 及工作。

选择正确的软件集合将会帮助你找到你需要的人

建立团队的技能

阅读文档和博客文章。

多与同行交流,可以接触一些领域中经验丰富的人,例如与在Facebook、Twitter、LinkedIn的工程师 多交流,从他们身上可以学到很多

对技术要循序渐进,在正式投入使用之前他们煞费苦心的学习HBase和Redis。同时在试点项目中使用 或将其控制在有限损害范围之内。

翻译:包研,张志平

英文原文出自High Scalability

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读