腾讯云 Serverless WordPress 值得使用吗?
最近腾讯云开始强推 Serverless WordPress,在微信公众号,知乎一大推推荐的文章,我都一一认真看了,下面首先我简单总结一下腾讯云 Serverless WordPress,还有最重要的:我们值得使用吗?
Serverless 介绍
Serverless 顾名思义即为 “无服务器”,这里的 “无服务器” 并不是真正不需要服务器,而是将服务器的维护交给云厂商,开发者只需要管理业务层代码,并且按照计算使用量计费,大大节省了运维成本。
传统部署方案,开发者必须先预估业务流量,并根据业务流量最大值购买服务器,往往会导致预估偏差导致流量溢出或资源浪费的问题。
Serverless 方案则根据请求量,自动进行扩缩容,真正实现资源都按照请求来计费,不使用不付费。
Serverless WordPress 架构介绍
在传统的 PHP 服务架构下:用户请求通过 HTTP 服务器,经 php-fpm 模块传递给服务端解析,最后然后将解析后的结果返回给用户,如下图所示:
而在云函数架构下,这套逻辑通过函数的不同模块实现,WordPress 原生代码挂载在 CFS 上,用户的请求经过 API 网关到达函数环境,函数通过内置的 PHP 运行环境完成请求的转发和处理,将获取的 WordPress 解析结果返回给用户:
Serverless WordPress 方案优势
腾讯云自己总结为:便宜、简单,对于中长尾的低负载业务,可以做到无请求时不计费,自带弹性伸缩、容灾能力。并且部署非常容易,只需要简单的三步。
经过腾讯云自己的计算结果显示,可以得知通过 Serverless WordPress 部署一个日访问量 100 左右的个人博客,一个月需要花费成本为:4.311元,可以发现,与传统自建方案相比,Serverless WordPress 一个月成本不到 5 元,使用成本大大降低。
而性能方面,腾讯云宣称:Serverless WordPress 95% 的请求都可以在 5s 内完成,同时吞吐率、用户平均请求等待时间、服务器平均请求处理时间三个重点指标,Serverless WordPress 的表现不仅不逊色,甚至更为优异。
Serverless WordPress 值得使用吗?
我自己也申请了腾讯云的 Serverless WordPress 做了简单的测试,Serverless WordPress 部署真的很方便,并且也支持上传和在线安装 WordPress 主题和插件,还可以使用腾讯云的 CDN 服务等。
但是个人还是不建议使用 Serverless WordPress!
为什么呢?因为 Serverless 的内置的 PHP 运行环境不支持 OPCCache 和 Memcached 扩展,暂时也没有找到自定义的地方(不知道有没有,如果有的话,能否告知)。
所以腾讯云自己测试 Serverless WordPress 页面请求需要 5s 不到的时间的完成,比虚拟主机快上一倍。
但是还不够快!
经常看「我爱水煮鱼」博客的同学知道,WordPress 优化好的话,可以做到页面 0SQL 的,页面请求基本都能在 1s 内完成,而实现这些的基础(也是 WordPress 优化的重点),就是:
- 安装 Memcached 和 PHP Memcached 扩展,参考:使用 Memcached 来缓存 WordPress 数据。
- PHP 开启 OPCache:把经过编译后的 PHP 代码缓存到共享内存中,并在用户访问的时候直接调用从而起到高效的加速作用。
而 Serverless 的内置的 PHP 运行环境不支持 OPCCache 和 Memcached 扩展不支持这两个扩展的话,WordPress 的性能优化就无从谈起,和使用虚拟主机安装的 WordPress 性能其实没有特别大的差别,当然腾讯云说比虚拟主机快了近一倍,但是真的还不够快。
所以在它的内置的 PHP 运行环境不止支持自定义,或者还没有安装了对应 OPCCache 和 Memcached 扩展之前,只能不推荐使用 Serverless WordPress。
个人觉得 Serverless WordPress 能够自动使用腾讯云的 Memcached 的缓存服务的时候,才算真正成熟,当然 Memcached 缓存换成 Redis 缓存服务也可以。