PHP 本身不就是最佳的 serverless 实践吗?

2021-03-13 23:14:13 +08:00
 wuhaoworld

PHP 最常用的 FPM 模式,一个 http 请求一个进程处理,请求完成后进程自动销毁,即使代码质量不高,有内存泄露也没关系,反正执行完成后就立即销毁了。

每个进程之间是独立的,互不干扰也不耦合,访问量大的话就多部署机器,负载均衡打到不同机器上,横向扩展非常容易。

如果用 PHP 自带的 cookie/session 管理容易出问题,因为一个用户可能被路由到不同机器上,那改用 radis 集群统一管理 session 就好了,唯一要解决的就是数据库负载的问题,这就不是 PHP 的问题了,也是其他语言需要解决的。

所以 PHP 应用本身就很容易做到「无状态」、「弹性伸缩」的,当然还需要自己手动运维,但我作为新手,部署过多个 PHP 网站 /API 等应用,部署完成后服务器在那放着基本上一年都不会出问题,只要不访问量突然增,基本上是做到「免运维」了,主要还是因为即使代码中有 bug 或内存泄露,请求完成后自动被重置了,错误不会被积累。

综上,PHP 本身不就是最佳的 serverless 实践吗?各大云厂商都在搞自己的 serverless 平台,看来看去,还是 PHP 原生的机制最好用

5165 次点击
所在节点    PHP
33 条回复
oott123
2021-03-13 23:17:24 +08:00
PHP 甚至是“函数计算”——每个文件就是一个函数。
murmur
2021-03-13 23:17:44 +08:00
你还没懂 serverless 是什么啊,serverless 的终极目标是让你放弃开发去买云服务,这跟语言是没关的

自己开发,自己建平台,你给我逼急了老子卷着数据库和 docker 就走人

换成 serverless,平台是别人的,服务是别人的,你只有业务,换其他云服务商,适配死你
abersheeran
2021-03-13 23:24:03 +08:00
巧了,我昨晚还发 QQ 空间说这个。可惜 php 生不逢时,现在没多少人用了。
FaceBug
2021-03-13 23:25:02 +08:00
@murmur

serverless = PHP+虚拟主机

哈哈哈哈
back0893
2021-03-13 23:26:24 +08:00
好像也没毛病
miao666
2021-03-13 23:30:24 +08:00
那么问题来了,PHP 是不是世界上最好的语言?😜
AxEqaq
2021-03-13 23:35:48 +08:00
groovy 有话要说
flashrick
2021-03-13 23:38:34 +08:00
小时候作为一名县城居民,来省会看到高层住宅觉得很高大上
现在才知道它是为了提高土地利用率这个目的的手段
huluhulu
2021-03-13 23:50:00 +08:00
php 是世界上最好的语言,真的
westoy
2021-03-13 23:50:49 +08:00
做 serverless 平台还需要一整套完善的中间件机制, 拿 php 做 PaaS 也蛮多的啊, 国内的 SAE,php 亲爹 Zend 的 phpcloud, 不都跪了么?

而且 php 那个是伪热更新, 文件级的修改对于项目来说是非原子性, 比如一次改三十个文件, 前几个文件修改后正好有个请求同时触发了 include 部分旧文件+新文件,erlang 那边的 OTP 的热重启模块机制对于请求来说只会是访问到全部旧的或者全部新的。 只是 PHP 一开始作为模板语言并不容易触发问题, 后来随着项目越来越大,apc 、eaccelerator 、opcache 的引入导致文件级修改也容易产生一点问题, 实际还是要以项目为颗粒重新 graceful 重启的, 比起其他语言方案其实并没有太大优势。phpcloud 当初涉及修改, 也是整个项目重启加载最新版本的。
young1lin
2021-03-13 23:52:09 +08:00
那改用 radis 集群统一管理 session 就好了

radis 是什么?是 redis 吗?
litel
2021-03-13 23:52:48 +08:00
牛头不对马嘴,serverless 只的是省去环境配置。
你说的这些,nodejs 能做,python 也能做。脚本语言都能做。但是小功能一般直接用这些语言写了放 serverless,不需要配环境而已。
gstqc
2021-03-14 00:05:47 +08:00
看得出,楼主只写过 web,哈哈哈
no1xsyzy
2021-03-14 01:55:57 +08:00
PHP 早前就有托管空间……

但是, #2 说得很对,serverless 不止是 OPless,更是包括整个生态的绑定。
据说 Parler 就是吃了生态绑定的亏(是不是 serverless 另说,太依赖 AWS 生态了)
dzdh
2021-03-14 02:04:20 +08:00
是不是 serverless 决定于你写不写、开不开发后端代码和相关业务。

你参与了后端:不是 serverless
你没参与后端,整个项目、公司、业务所有地方都没有跟后端神马数据库、服务器、带宽、安全有定点关系,全是用的三方服务(如 leancloud ),恭喜你,你是 serverless 了。
dzdh
2021-03-14 02:04:56 +08:00
@dzdh learncloud
qiayue
2021-03-14 06:29:20 +08:00
@dzdh #16 你在 #15 写的是对的
https://www.leancloud.cn/
love
2021-03-14 08:47:15 +08:00
果然是老中医在山顶吗, 古代的 web 服务都是无状态的,一个请求过来拉一个新进程,当时叫 CGI 。也是跨语言的。
xuanbg
2021-03-14 09:13:35 +08:00
serverless 是云服务商把服务藏起来不给你看见。你这用 PHP,服务都露出来了,哪里 serverless 了?
sun019
2021-03-14 10:10:14 +08:00
建个站,或者一个小应用( APP 、小程序),用 php 是最简单。
开发简单,运维简单。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/761402

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX