摘要:文章详细的介绍Badoo是如何把应用前移动PHP7的,以及在这中间遇到的问题及处理情况,还有最终的结果。
我们成功的把我们的应用迁移到了php7上面(数百台机器的集群),而且运行的很好,据说我们是第二个把如此规模的应用切换到php7的企业,在切换的过程我们发现了一些php7字节码缓存的bug,庆幸的是这些bug现在已经被修复了,现在我们把这个激动人心的消息分享给所有的php社区:PHP7现在已经可以稳定的运行在商用环境上,而且比以前更加节省内存,性能也有的很大的提高。
下面我会详细的介绍下我们是如何把应用前移动PHP7的,我们在这中间遇到的问题及处理情况,还有最终的结果。但首先让我们回头看看一些更常见的问题:
Web项目的瓶颈在于数据库持久化这是一个常见的误解。一个设计良好的系统应该是平衡的:当访问量增长时,由系统的各个部分分摊这些压力,同样的,当达到系统阀值时,系统的所有组件(不仅仅包括硬盘数据库,还有处理器和网络)共同分摊压力。基于这个事实,应用集群的处理能力才应该是最重要的因素。在很多项目中,这种集群由数以百计甚至数以千计的服务器组成,这是因为花时间去调整集群的处理能力更加经济实益(我们因此节省一百多万)。
PHP的Web应用,处理器的消耗跟其他动态高级语言一样多。但是PHP开发者面对着一个特别的障碍(这让他们成为其他社区恶意攻击的的受害者):缺少JIT,至少没有一个像C/C++语言那样的可编译文本的生成器。PHP社区无力在核心项目框架上去实现一个类似的解决方案更是树立了一种不良的风气:主要的开发成员开始整合他们的解决方案,所以HHVM在Facebook上诞生了,KPHP在VKontakte上诞生,还有其他类似的方案。幸运地是,在年,随着PHP7的正式发布,PHP要开始Growup啦。虽然还是没有JIT,但很难去评定这些改变在engine中有多重要。现在,尽管没有JIT,PHP7可以跟HHVM相匹敌(BenchmarksfromtheLightSpeedblog传送门)。新的PHP7体系架构将会让JIT的实现变得简单。
在Badoo的平台开发者已经非常白癜风中药北京正规治疗白癜风需要多少钱