如何将 Tumblr 从 PHP 5 升级到 PHP 7?
Tumblr 团队一直在寻找新的方法来提高网站的性能。这意味着向经常访问的代码添加缓存、寻找更快的 CDN 配置或更新底层软件。
我们最近在多团队的努力下将整个 Web 服务器群从 PHP 5 升级到了 PHP 7。整个更新是一个有趣的项目,结果非常酷,所以我们想与您分享。
时间计划
这始于 2015 年秋季的黑客日(类似于黑客马拉松)项目。 @oli和@travPHP7 RC
RC❀r❙❙❀。目前,许多 PHP
扩展尚不支持 PHP 7
,但也有一些。 ,它仍然有效。
今年春天,PHP7
开始变得更加稳定,我们决定是时候更加关注更新了。我们做的第一件事就是打包新版本,使安装变得简单和一致。 。同时,我们还在新版本中包含了我们内部的PHP
插件,因此一切准备就绪,可以使用。
编写了一个小脚本来升级(或降级)开发服务器,然后在春末或夏初开始测试(更多内容见下文),PHP
包构建迭代、性能测试和评估,以及随着它的稳定,我们开始吸引更多的开发人员在支持PHP7
的机器上进行日常开发。最后,在八月底,我们对测试非常有信心,以至于我们在一小部分实时服务器上使用了PHP7
。两周后,随着增量的增长,所有响应用户请求的服务器都已更新!
测试
更新时,测试所有代码以确保其运行相同非常重要,并且我们有一些方法来修复它。
潘。在这个项目中,我们使用它来查找代码库中与 当我们将 PHP7 推送到第一台服务器时,很明显我们更加关注各种图表以保持一切顺利运行。如上所述,我们一直在寻求性能改进,但实际结果令人印象深刻。我几乎立即注意到等待时间减少了一半,服务器上的 CPU 负载减少了至少 50%。我们的服务器服务速度提高了一倍,而 CPU 资源却减少了一半。 这些是处理 API 服务的图表。正如您所看到的,延迟已减少一半,平均峰值负载现在低于之前的低点! PHP 7 还包含许多有趣的新功能,让 Tumblr 开发人员的生活更轻松。几个亮点: PHP7
不兼容的代码。这使得查找和解决这些问题变得非常容易。我们的一些单元和集成测试还有助于识别工作效率不如以前的区域。由于该项目仍在正常开发中,因此我们需要确保不添加未通过PHP7
检查的代码。因此,我们使用 CI
任务来运行 PHP 5
和 PHP7 的所有测试。最终结果是什么?嗯,有两件事对我们来说有了很大的改进,一是性能,二是语言特性。
性能
语言功能
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。