
无服务器计算是一种基于云的执行模型,可以将应用程序作为服务托管,而无需维护服务器。
服务提供商维护服务器上的资源分配,并根据实际使用情况向用户收费。焦点转移到一个人正在创建的核心应用程序上,基础设施完全由服务提供商处理。无服务器计算也称为功能即服务 (FaaS)。
换句话说,Serverless PHP是带有PHP后端的无服务器计算的实现, 给你一个例子。
在本指南中,我们将仔细研究Serverless PHP的含义、其主要特性和优缺点,以便您更好地理解这种云计算 *** 。
具体来说,我们将了解无服务器计算的概念、它的用例和范围、优点和缺点、使用Bref的无服务器PHP的简单实现以及无服务器PHP在三大巨头(亚马逊、微软和谷歌)上的状态。
传统上,您需要服务器硬件才能在Internet上设置应用程序。服务器机器(或机器)将物理连接到Internet,以便某人访问您的应用程序。服务器维护是一件昂贵的事情。
接下来,托管服务的发展允许网站管理员购买托管空间——每台服务器可以容纳多个应用程序。这降低了成本。
随着云计算的兴起,规模经济进一步降低了成本,因为您可以在大型远程服务器场上租用少量空间。事实上,无服务器计算允许您只为使用的服务付费。不使用时,您实际上没有使用云上的任何空间或资源。
无服务器计算简化了软件开发过程:它允许组织只专注于开发,而不用担心部署、服务器维护和扩展。

google上“Serverless”一词的趋势
要部署Serverless PHP应用程序,您应该首先探索无服务器计算的概念。虽然Serverless一词自2012年在ReadWrite上首次出现在,但随着2014年AWS Lambda的推出,它开始流行起来。
在本节中,让我们关注与无服务器计算相关的几个关键概念,并尝试回答围绕这项技术的一个常见问题:它真的是server-“less”吗?
部署是一项简单的任务,无需管理服务器。您只需将代码上传到服务器,其余的由供应商处理。无服务器技术允许您拥有与语言无关的功能,并相互交互。
例如,如果您有一个消息传递应用程序,则登录模块可能用一种语言编码,而更新您的状态的功能可能用另一种语言编码。
虽然在没有无服务器托管的情况下这仍然是可能的,但交互起来肯定更加困难。每当一个动作触发你的函数时,就会产生一个实例来处理它。
生成实例的过程可能是“暖”的,即使用现有实例,也可能是“冷”的,即启动新实例。与传统托管相比,此过程有一点延迟,尤其是冷启动,在传统托管中,您的服务器始终处于待机模式以处理请求。
但是,当您需要处理大量请求时,无服务器和传统托管之间的情况会完全相反。可扩展性天生就来自于无服务器技术。如果您突然需要一千个并发请求,供应商将在您无需任何额外工作或配置的情况下处理它们。
不要让“Serverless”一词让您感到困惑。这并不意味着“服务器”不存在。当您使用无服务器应用程序时,后台有一个服务器来处理您的输入并计算必要的输出。
从开发人员的角度来看,术语中存在“-less” ,他们从不接触服务器的各种元素。因此,如果您部署一个Serverless PHP应用程序,则会在云上运行一个实际的服务器来满足请求。
虽然“无服务器计算”没有严格定义,但它也可能指BaaS(后端即服务)应用程序。BaaS也指云计算模型,其中服务器操作外包给第三方,开发人员只需要专注于创建和维护软件。
BaaS和无服务器之间的主要相似之处在于开发人员不专注于服务器管理。许多组织在同一个保护伞下提供BaaS和FaaS包。
以下是BaaS和无服务器计算之间的主要区别:
我们已经讨论了无服务器计算的各个方面,以及它与BaaS的不同之处。虽然我们已经介绍了无服务器计算的基础知识,但让我们探讨一下您可能希望采用这种架构的情况。
您可能已经意识到,在无服务器技术上托管复杂的应用程序可能不是一个好主意。但是,即使您决定不通过Serverless PHP部署完整的应用程序,您也可以部署模块。
我们将在本节讨论无服务器堆栈的两个实现示例:数据库和文件存储。
无服务器数据库是一种按需数据库,可让您在需要时执行查询。由于无服务器堆栈,扩展很容易,并且供应商仅按您使用资源的时间量向您收费。
和是当今市场上可用的无服务器数据库的示例。Serverless文件存储系统被实现为。文件在文件系统中不被视为层次结构,而是被视为对象,其中包含文件本身的数据及其元数据。存储和检索是通过类似进行的。
IBM Cloud为您提供服务。无服务器应用程序的其他常见用例是API和移动后端,其设计基于小型、逻辑、相互依赖的功能。
在本节中,我们将探讨无服务器计算的主要优势以及它近年来受到关注的原因。
从理论上讲,与传统托管相比,无服务器计算可以降低成本。内在原因很简单:您在特定时间内使用该服务,并且在空闲时间没有维护成本。但是,如果您随着时间的推移面临持续的流量,采用无服务器架构可能不会导致成本有太大差异。
部署无服务器服务不需要您设置和配置服务器。无服务器应用程序的部署也是通过简单的功能。创建应用程序的版本并使其在云上可用更容易。因此,整个部署过程更容易、更高效。
在传统的设置中,需要付出很多努力来扩大规模以迎合更高的流量。另一方面,当流量增加时,服务提供商会负责资源分配。因此,当您部署到无服务器架构时,更容易扩展。
虽然无服务器计算有其相当多的优势,但在投入使用之前必须意识到它的潜在缺点。
用户强调无服务器计算的主要问题是性能下降。虽然它是事件驱动的,但生成一个微实例来服务请求需要几百毫秒。
对于时间要求严格的应用程序,这种滞后可能会变得很重要。随着应用程序复杂性的增加,位于不同位置的组件会增加这种延迟。这种附加的时间延迟可能被证明对用户体验有害。
(推荐阅读:)
虽然无服务器架构允许您只专注于您的代码,但供应商可以完全控制基础架构。因此,如果您使用无服务器,则无法更改供应商,因为迁移可能是一项艰巨的任务。
供应商负责无服务器应用程序的端到端部署。因此,开发人员必须依赖供应商提供适当的调试日志。调试无服务器应用程序以确定根本原因的过程也很困难。
虽然我们已经探索了无服务器架构,但现在我们将了解通过无服务器服务部署PHP应用程序所需的条件。
正如您可能已经猜到的那样,无服务器应用程序的部署高度特定于供应商。因此,这篇文章试图解决在Amazon AWS上实现Serverless PHP应用程序的问题。Bref或法语中的brief是一个Composer包,它允许您通过Lambda在AWS上部署PHP应用程序。
Bref不断发展,因此您可能应该检查,以评估将您的应用程序移植到无服务器架构是否是一个好主意。
首先,前往并创建一个帐户。您将需要它来部署您的应用程序。接下来,您需要安装来管理您的部署。
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创建一个简单的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
AWS Lambda上的Bref PHP是一种流行的选择。但是,您的Serverless PHP应用程序还有一些其他选项。
由于2019年7月推出,是Laravel在AWS Lambda上的无服务器部署平台。Vapor将您的Laravel应用程序转换为单个lambda函数。虽然Azure无服务器,但您仍然可以使用进行尝试。
以下是您应该从本Serverless PHP指南中学到的关键方面:
虽然Serverless变得非常流行,但它还需要深入了解该技术的工作原理以利用它。
扫描二维码推送至手机访问。
版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。
不久前,PHP 8.0大张旗鼓地发布了。它带来了许多新特性、性能增强和变化——其中最令人兴奋的是新的JIT编译器。 技术世界总是在向前发展,PHP也是如此。 ,包含了几个令人兴奋的特性。它定于今年晚些时候于2021年11月25日发布。 在本文中,我们将详细介绍PHP 8.1将带来哪些新的东...
宝塔面板提供丰富的软件以一键安装,这让服务器环境搭建提供不少的便利性,站长可以根据实际需求快速编译安装以实现不同的功能需求。 软件管理,主要是宝塔提供的一些面板扩展插件。 Nginx Nginx是一个高性能的HTTP和反向代理服务器,具有轻量级、占用内存小,并发能力强等优势。 w...
经过几个小时的努力工作后,您是否感到眼睛疲劳或难以阅读代码?许多程序员在开始头疼之前从没想过要切换字体。 如果您经常发现在尝试扫描一千行代码时眼睛模糊不清,或者在停止编码数小时后头疼,那么可能是时候尝试一种新字体了。即使您没有遇到这些症状,设计良好的字体通常也比默认系统字体具有更好的可读性。...
想成为一名网络开发人员或好奇工作的哪些子类型的薪水最高?Web开发是一个竞争激烈、多样化的行业,随着新语言和框架的出现而不断发展。 询问Web开发人员的薪水是一个难以解决的问题(尽管我们尝试)。有太多的因素需要考虑。 无论您是自由开发者还是有兴趣从事更传统的工作、喜欢前端或后端工作,或者想知...
随着越来越需要以更快的周转时间生产可扩展、安全和灵活的应用程序,Microservices和APIs在软件开发领域无处不在。 客户需求瞬息万变,他们希望软件解决方案能够减轻他们的任务并为他们提供便利。 采用单体架构的传统方法限制了开发人员进行大量创新。由于它们的成分很硬,因此在应用程序中进行...
Web服务器是您网站的重要组成部分。它们使您的内容可供尝试访问它的访问者使用。但是,您可能想知道:Tomcat是什么,它与其他服务器软件有何不同?幸运的是,我们整理了一份指南来回答这些问题(以及更多!)。 在这篇文章中,我们将仔细研究Tomcat及其工作原理。我们还将讨论它的优缺点,并向您展示...