当前位置:首页 > 编程语言 > 正文内容

Serverless PHP简介:主要功能、用例以及如何在Lambda上开始使用Bref

a811625534年前 (2022-06-06)编程语言36

服务器计算是一种基于云的执行模型,可以将应用程序作为服务托管,而无需维护服务器。

服务提供商维护服务器上的资源分配,并根据实际使用情况向用户收费。焦点转移到一个人正在创建的核心应用程序上,基础设施完全由服务提供商处理。无服务器计算也称为功能即服务 (FaaS)。

换句话说,Serverless PHP是带有PHP后端的无服务器计算的实现, 给你一个例子。

在本指南中,我们将仔细研究Serverless PHP的含义、其主要特性和优缺点,以便您更好地理解这种云计算 *** 。

具体来说,我们将了解无服务器计算的概念、它的用例和范围、优点和缺点、使用Bref的无服务器PHP的简单实现以及无服务器PHP在三大巨头(亚马逊微软谷歌)上的状态。

传统上,您需要服务器硬件才能在Internet上设置应用程序。服务器机器(或机器)将物理连接到Internet,以便某人访问您的应用程序。服务器维护是一件昂贵的事情。

接下来,托管服务的发展允许网站管理员购买托管空间——每台服务器可以容纳多个应用程序。这降低了成本。

随着云计算的兴起,规模经济进一步降低了成本,因为您可以在大型远程服务器场上租用少量空间。事实上,无服务器计算允许您只为使用的服务付费。不使用时,您实际上没有使用云上的任何空间或资源。

无服务器计算简化了软件开发过程:它允许组织只专注于开发,而不用担心部署、服务器维护和扩展。

Serverless PHP:基础知识

google上“Serverless”一词的趋势

要部署Serverless PHP应用程序,您应该首先探索无服务器计算的概念。虽然Serverless一词自2012年在ReadWrite上首次出现在,但随着2014年AWS Lambda的推出,它开始流行起来。

在本节中,让我们关注与无服务器计算相关的几个关键概念,并尝试回答围绕这项技术的一个常见问题:它真的是server-“less”吗?

Serverless PHP的特点

部署是一项简单的任务,无需管理服务器。您只需将代码上传到服务器,其余的由供应商处理。无服务器技术允许您拥有与语言无关的功能,并相互交互。

例如,如果您有一个消息传递应用程序,则登录模块可能用一种语言编码,而更新您的状态的功能可能用另一种语言编码。

虽然在没有无服务器托管的情况下这仍然是可能的,但交互起来肯定更加困难。每当一个动作触发你的函数时,就会产生一个实例来处理它。

生成实例的过程可能是“暖”的,即使用现有实例,也可能是“冷”的,即启动新实例。与传统托管相比,此过程有一点延迟,尤其是冷启动,在传统托管中,您的服务器始终处于待机模式以处理请求。

但是,当您需要处理大量请求时,无服务器和传统托管之间的情况会完全相反。可扩展性天生就来自于无服务器技术。如果您突然需要一千个并发请求,供应商将在您无需任何额外工作或配置的情况下处理它们。

Serverless PHP真的是无服务器的吗?

不要让“Serverless”一词让您感到困惑。这并不意味着“服务器”不存在。当您使用无服务器应用程序时,后台有一个服务器来处理您的输入并计算必要的输出

从开发人员的角度来看,术语中存在“-less” ,他们从不接触服务器的各种元素。因此,如果您部署一个Serverless PHP应用程序,则会在云上运行一个实际的服务器来满足请求。

BaaS与Serverless架构

虽然“无服务器计算”没有严格定义,但它也可能指BaaS(后端即服务)应用程序。BaaS也指云计算模型,其中服务器操作外包给第三方,开发人员只需要专注于创建和维护软件

BaaS和无服务器之间的主要相似之处在于开发人员不专注于服务器管理。许多组织在同一个保护伞下提供BaaS和FaaS包。

以下是BaaS和无服务器计算之间的主要区别

  • 组件:BaaS应用程序与传统应用程序类似,开发人员可能不会对其结构进行更改以适应BaaS。在无服务器中,应用程序被划分为称为函数的逻辑部分,每个函数都响应一个事件并执行特定的任务。
  • 可扩展性:可扩展性是无服务器应用程序的关键组成部分——随着流量的增加,分配的资源更多。它不是BaaS应用程序的必需模块,尽管一些服务提供商将其作为附加组件提供。
  • 触发器:无服务器应用程序是事件驱动的,这意味着特定活动每次发生时都会触发应用程序。另一方面,BaaS应用程序可能会像传统应用程序一样在后台持续使用资源。
  • 模块化架构:在无服务器架构中,应用程序的各种功能可以在不同的服务器上驻留和执行,但由于它们的集成而无缝运行。BaaS应用程序可能会也可能不会遵循此结构。

Serverless PHP:用例

我们已经讨论了无服务器计算的各个方面,以及它与BaaS的不同之处。虽然我们已经介绍了无服务器计算的基础知识,但让我们探讨一下您可能希望采用这种架构的情况。

您可能已经意识到,在无服务器技术上托管复杂的应用程序可能不是一个好主意。但是,即使您决定不通过Serverless PHP部署完整的应用程序,您也可以部署模块。

我们将在本节讨论无服务器堆的两个实现示例:数据库文件存储

无服务器数据库是一种按需数据库,可让您在需要时执行查询。由于无服务器堆栈,扩展很容易,并且供应商仅按您使用资源的时间量向您收费。

和是当今市场上可用的无服务器数据库的示例。Serverless文件存储系统被实现为。文件在文件系统中不被视为层次结构,而是被视为对象,其中包含文件本身的数据及其元数据。存储和检索是通过类似进行的。

IBM Cloud为您提供服务。无服务器应用程序的其他常见用例是API和移动后端,其设计基于小型、逻辑、相互依赖的功能。

Serverless PHP:优势

在本节中,我们将探讨无服务器计算的主要优势以及它近年来受到关注的原因。

降低服务器成本

从理论上讲,与传统托管相比,无服务器计算可以降低成本。内在原因很简单:您在特定时间内使用该服务,并且在空闲时间没有维护成本。但是,如果您随着时间的推移面临持续的流量,采用无服务器架构可能不会导致成本有太大差异。

更容易部署

部署无服务器服务不需要您设置和配置服务器。无服务器应用程序的部署也是通过简单的功能。创建应用程序的版本并使其在云上可用更容易。因此,整个部署过程更容易、更高效。

可扩展性

在传统的设置中,需要付出很多努力来扩大规模以迎合更高的流量。另一方面,当流量增加时,服务提供商会负责资源分配。因此,当您部署到无服务器架构时,更容易扩展。

Serverless PHP:缺点

虽然无服务器计算有其相当多的优势,但在投入使用之前必须意识到它的潜在缺点。

性能

用户强调无服务器计算的主要问题是性能下降。虽然它是事件驱动的,但生成一个微实例来服务请求需要几百毫秒。

对于时间要求严格的应用程序,这种滞后可能会变得很重要。随着应用程序复杂性的增加,位于不同位置的组件会增加这种延迟。这种附加的时间延迟可能被证明对用户体验有害。

(推荐阅读:)

Vendor Lock-In

虽然无服务器架构允许您只专注于您的代码,但供应商可以完全控制基础架构。因此,如果您使用无服务器,则无法更改供应商,因为迁移可能是一项艰巨的任务。

调试

供应商负责无服务器应用程序的端到端部署。因此,开发人员必须依赖供应商提供适当的调试日志。调试无服务器应用程序以确定根本原因的过程也很困难。

Serverless PHP:在Lambda上使用Bref入门

虽然我们已经探索了无服务器架构,但现在我们将了解通过无服务器服务部署PHP应用程序所需的条件。

正如您可能已经猜到的那样,无服务器应用程序的部署高度特定于供应商。因此,这篇文章试图解决在Amazon AWS上实现Serverless PHP应用程序的问题。Bref或法语中的brief是一个Composer包,它允许您通过Lambda在AWS上部署PHP应用程序。

Bref不断发展,因此您可能应该检查,以评估将您的应用程序移植到无服务器架构是否是一个好主意。

使用Bref的Serverless PHP的先决条件

首先,前往并创建一个帐户。您将需要它来部署您的应用程序。接下来,您需要安装来管理您的部署。

npm install -g serverless

接下来,在AWS上,并在本地配置无服务器框架。

serverless config credentials --provider aws --key <key> --secret <secret>

接下来,通过Composer安装Bref:

composer require bref/bref

在部署之前,您需要安装Composer的依赖项。

composer install --prefer-dist --optimize-autoloader --no-dev

使用Bref在Serverless PHP上创建Hello World应用程序

为了使用Bref创建一个简单的hello world应用程序,我们将编写一个由事件触发并返回字符串“Hello World”的函数。

首先,您必须包含Bref的autoload.php脚本,然后使用它的lambda函数。如果您想从上下文中访问数据,您可以选择声明。

require __DIR__.'/vendor/autoload.php';
lambda(function ($event) {
return 'Hello world');
});

功能准备就绪后,您需要创建一个serverless.yml配置文件。这是Bref指南中的基本配置文件。

service: app
provider:
name: aws
runtime: provided
plugins:
- ./vendor/bref/bref
functions:
hello:
handler: index.php
layers:
- ${bref:layer.php-73}

当您运行以下命令时,Bref会自动创建此配置文件。

vendor/bin/bref init

现在您已经准备好您的函数和配置,您可以使用无服务器包的命令invoke调用该函数以检查它是否按预期运行:

serverless invoke -f hello

这是使用AWS的sam命令行工具在。一旦你的项目准备好了,你可以使用serverless的deploy命令来部署它。使用--verbose选项获取部署过程的详细信息:

serverless deploy

Serverless PHP的其他部署选项

AWS Lambda上的Bref PHP是一种流行的选择。但是,您的Serverless PHP应用程序还有一些其他选项。

由于2019年7月推出,是Laravel在AWS Lambda上的无服务器部署平台。Vapor将您的Laravel应用程序转换为单个lambda函数。虽然Azure无服务器,但您仍然可以使用进行尝试。

小结

以下是您应该从本Serverless PHP指南中学到的关键方面:

  • 在考虑将Serverless PHP用于您的应用程序之前,请确保您完全了解无服务器计算是什么、它的优点和缺点。
  • 将应用程序移植到无服务器时,您应该考虑三个主要因素。考虑应用程序的复杂性、其组件的时间紧迫性以及未来的可扩展性。
  • Serverless PHP对市场来说仍然相当新。在完全投入之前,请确保在其中一个供应商上使用Bref进行试点。

虽然Serverless变得非常流行,但它还需要深入了解该技术的工作原理以利用它。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/7864.html

分享给朋友:

“Serverless PHP简介:主要功能、用例以及如何在Lambda上开始使用Bref” 的相关文章

PHP 8.1有哪些变化:新特性、改变及弃用等

PHP 8.1有哪些变化:新特性、改变及弃用等

不久前,PHP 8.0大张旗鼓地发布了。它带来了许多新特性、性能增强和变化——其中最令人兴奋的是新的JIT编译器。 技术世界总是在向前发展,PHP也是如此。 ,包含了几个令人兴奋的特性。它定于今年晚些时候于2021年11月25日发布。 在本文中,我们将详细介绍PHP 8.1将带来哪些新的东...

宝塔面板教程之软件管理篇

宝塔面板教程之软件管理篇

宝塔面板提供丰富的软件以一键安装,这让服务器环境搭建提供不少的便利性,站长可以根据实际需求快速编译安装以实现不同的功能需求。 软件管理,主要是宝塔提供的一些面板扩展插件。 Nginx Nginx是一个高性能的HTTP和反向代理服务器,具有轻量级、占用内存小,并发能力强等优势。 w...

15种最佳编程字体以帮助您更愉悦地敲代码

15种最佳编程字体以帮助您更愉悦地敲代码

经过几个小时的努力工作后,您是否感到眼睛疲劳或难以阅读代码?许多程序员在开始头疼之前从没想过要切换字体。 如果您经常发现在尝试扫描一千行代码时眼睛模糊不清,或者在停止编码数小时后头疼,那么可能是时候尝试一种新字体了。即使您没有遇到这些症状,设计良好的字体通常也比默认系统字体具有更好的可读性。...

2022年Web开发人员的平均工资统计报告

2022年Web开发人员的平均工资统计报告

想成为一名网络开发人员或好奇工作的哪些子类型的薪水最高?Web开发是一个竞争激烈、多样化的行业,随着新语言和框架的出现而不断发展。 询问Web开发人员的薪水是一个难以解决的问题(尽管我们尝试)。有太多的因素需要考虑。 无论您是自由开发者还是有兴趣从事更传统的工作、喜欢前端或后端工作,或者想知...

深入了解微服务(Microservices)与APIs之间的差异

深入了解微服务(Microservices)与APIs之间的差异

随着越来越需要以更快的周转时间生产可扩展、安全和灵活的应用程序,Microservices和APIs在软件开发领域无处不在。 客户需求瞬息万变,他们希望软件解决方案能够减轻他们的任务并为他们提供便利。 采用单体架构的传统方法限制了开发人员进行大量创新。由于它们的成分很硬,因此在应用程序中进行...

什么是Tomcat服务器软件?

什么是Tomcat服务器软件?

Web服务器是您网站的重要组成部分。它们使您的内容可供尝试访问它的访问者使用。但是,您可能想知道:Tomcat是什么,它与其他服务器软件有何不同?幸运的是,我们整理了一份指南来回答这些问题(以及更多!)。 在这篇文章中,我们将仔细研究Tomcat及其工作原理。我们还将讨论它的优缺点,并向您展示...