您当前的位置: 首页 >  php

阿里云云栖号

暂无认证

  • 2浏览

    0关注

    5305博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

各位 PHPer,Serverless 正当时

阿里云云栖号 发布时间:2022-01-11 17:56:04 ,浏览量:2

简介:PHP 作为一个开发群体的很大的语言其应用范围相当广泛,Serverless 的理念和 PHP 语言的理念都是让开发者最大精力集中在自己的业务价值。那么 PHP 遇见 Serverless 会迸发出哪些火花呢?

各位 PHPer,Serverless 正当时

作者 | 西流

PHP 的应用范围相当广泛,尤其是在网页程序的开发上,  根据最新 维基百科 显示,2013 年 4 月的统计资料,PHP 已经被安装在超过 2 亿 4400 万个网站和 210万 台服务器上。而根据 W3Techs 的报告,截至 2021 年 9 月, 有 78.9% 的网站使用 PHP。 所以 PHP 是世界第一语言至少在 Web 开发领域并不是戏称。

而在技术选型上, PHP 主要采用的是 LAMP(全称是linux + apache + mysql + php) 或者 LNMP (全称是 linux + nginx + mysql + php), 这种成熟稳定的技术框架推动 PHP web 开发生态的繁荣和商业上的成功。

1.png

在传统的开发模式中, 开发者自己需要安装维护各种软件的安装、维护升级:

1、如果您是一个企业用户, 如果业务体量变大或者为了生产环境的稳定和可用性, 使用负载均衡是一个必然的选项:

2.png

即此时, PHP 开发者或者线上运维的同学关心的事情多了起来:

  • 每个增加的生产机器都需要重新安装一遍相关软件, 做相同的 nginx 配置以及 php-fpm 的配置, 以及维护每个生产机器的安全更新
  • 假如开发的应用需要一个新的扩展, 可能需要人肉每台机器去增加扩展
  • 负载均衡器随着业务的变更升配, 后面一台 Worker 机器挂掉了, 如何做运维处理
  • 业务的波峰波谷怎么应对才能让资源的利用率提高
  • ...

2、如果您是项目组开发成员比较多的企业用户,能不能不需要给每个人配置一个安装的 NLP 的 Linux 机器作为开发测试机器(或者多人共享一个机器)?

3、如果您是一个学生或者准备学习 PHP 开发,本地只有 Windows 电脑, 能不能直接近乎免费的方式获取 LNP(Linux+Nginx+PHP)  的环境用来学习呢?

带着这些问题, 我们去探索一下 Serverless 是如何解决这些痛点的。

PHP 遇见 Serverless 1、什么是 Serverless

Serverless = Faas (Function as a service) + Baas (Backend as a service), 我们简单通过两个图快速了解相关概念:

1)传统模式

3.png

2)Serverless 模式

lQLPDhsKw21AKGDNAjPNA6Gw-n87M58GgY8B4k7UqEA0AA_929_563.png

图中的 1,2 就是第三方 BaaS 服务, 4,5 就是自定义函数逻辑的 FaaS,   通过这个对比, 我们能快速得到 FaaS 的特性和好处:

  • 只需要专注业务代码开发, 编写对应的逻辑即可
  • 极致弹性伸缩, 无需管理服务器
  • 按量付费,每次调用按毫秒计费
  • ...

本文后续讨论的 Serverless 主要指的是 FaaS, 如下示意图, 几行代码编写完毕, 保存到云厂商的 FaaS 平台, 就完成了一个弹性高可用的 Web API。

5.png

2、PHP 遇见 Serverless

在讲 PHP 之前, 我们可以先看看 Serverless 在前端领域如火如荼的发展:

1)Backend For Frontend(BFF)in Serverless 来提高生产力

  • 前端开发者全栈化
  • 提高开发效率,减少前端和后端接口同学的沟通联调时间, 后端同学只需要做好原子的接口的稳定性和可靠性即可, 数据的聚合直接由前端同学通过 BFF 实现。

6.png

2)当 SSR 遇上 Serverless,轻松实现页面瞬开

  • 借助于函数即服务(FaaS)的能力,不需要再去搭建传统的 Node 应用,一个函数就可以变成一个服务,开发者可以更纯粹的关注于业务逻辑。
  • FaaS 以函数为单位的形式以及弹性机制,为 SSR 应用带来了天然的隔离性和动态修复能力,可以更好的避免页面间的交叉污染,或一些边界的异常场景对应用带来致命性的伤害。
  • 无需运维、按需执行、弹性伸缩这些特性,大大降低了 SSR 应用对开发者的门槛。

PHP 作为一个开发群体的很大的语言, 各大云厂商的 FaaS(比如阿里云的函数计算, AWS 的 Lambda, 腾讯的 SCF 等)都推出了对 PHP 语言的支持, phper 面对前端领域的 Serverless 技术革新实践, 应该不遑多让。以阿里云函数计算为例, 有很多 PHP 的开发者有了很多有趣的实践:

  • 直接使用 gd 或者 ImageMagick 扩展, 实现弹性高可用的图片、水印等各种 CPU 密集型 API
  • 直接使用 ffmpeg + 性能型实例 + 异步有状态调用完成视频剪辑合成等音视频处理业务
  • 使用 HTTP 触发器实现的函数, 埋点到广告平台, 快速实现高可用的买量业务
  • 直接将之前基于框架(如 ThinkPHP)实现的 web API 直接迁移到 FaaS 平台,不用再担心宕机和运维问题了
  • ...

虽然 FaaS 很好地解决了  phper 如下问题:

  • 新业务或者开发新的 web API
  • 存量业务中, 有些 CPU 密集型或者弹性要求很高的 API 单独抽离出来 FaaS 化

但是传统的开发模式或者存量业务,对开发者有一定的上手和改造成本,比如某 Faas 厂商 PHP Runtime 编程接口示例:

关注
打赏
1664438436
查看更多评论
立即登录/注册

微信扫码登录

0.3682s