现在的位置:首页  /  云计算培训 >云计算技术教程

云计算运维人员参与php项目架构设计要明白这些知识点

来源: 薪享宏福
发布时间: 2019年03月21日
分享到:
PHP之所以这么流行,离不开LNMP/LAMP ( Linux +Nginx/Apache+PHP +MySQL),这个组合开发运维的效率很高,所有软件都是开源的,拿来即用。在项目的早期这个组合能够发挥很大的作用,时间久了整个团队已经习惯于这样一种组合 ,在架构上反而成了一种局限。

在这种架构中, Web服务器收到请求, PHP通过SQL语句增删查改数据,把复杂的逻辑丢给后面的数据库( SQL语句) , PHP数组充当临时的数据结构,获取到数据后把结果和HTML元素拼装在一起展示给用户。这种做法是把PHP当作一门胶水语言来使用,在逻辑较为简单、性能要求不是那么高的时候,这是一个不错的方式。

但是随着项目越来越大,流量越来越大时,负载全都压给了数据库,性能问题就会出现了, PHP往往要等待数据库读写完成后才能继续执行,这时可能会认为是MySQL出现了性能瓶颈,进而认为是MySQl服务器不行,以为增加内存,更换更好的服务器就能解决这个问题。其实这是整个网站的架构出现了问题,是要重新考虑整个网站架构的时候了,运维要和研发一起讨论可能存在的性能瓶颈 ,找到解决方法,比如加缓存、静态化等。
 
解决之道:重新思考大型网站技术架构
 
网站架构不只是与PHP有关,而是要考虑全局的问题。目前互联网技术的趋势是分布式、缓存化(所谓的把内存当缓存用、把SSD当存储用、把磁盘当冷备用)、异构化、微服务化,对于架构和技术选型要有宽广的视野。
 
建议:
1、理解整个请求的生命周期及PHP的位置,PHP只是处理数据的一环,不能纯当胶水技术,而把逻辑都给了数据库;也不能完全依赖MySQL处理所有数据,在PHP层可适当地使用算法和适当的数据结构、缓存等技术来减轻数据库的压力。

2、对于实时性要求不是很高的页面应尽量静态化,以减少对PHP和MySQL的请求。
 

相关推荐:

什么是云计算运维

云计算运维的内控化管理有哪些

云计算运维管理的应用与实践

云计算运维团队如何协作才能更好的发挥?

云计算运维工程师遇到php故障该如何处理

学Linux运维,scp命令让你工作效率翻一倍

浅谈自动化运维的三重境界

作为运维人,自动化运维的背后还有哪些心酸事儿