繁体   English   中英

PHP:将代码持续部署到服务器

[英]PHP: Continuous deployment of code to the server

我一直在想这个。 假设我有一个API调用,我可以通过www.example.com/api?call&param=value进行访问,这会在服务器上执行某些操作,并以PHP编写为我的选择语言。

现在,如果我想更新可直接与此API端点一起使用的文件,则需要将其上传到服务器并有效地替换旧版本的文档。

但是,如果我在上载新文件的同时通过提供的地址调用API命令,则会收到一条错误消息,提示应处理该命令的文件意外结束。 完全合乎逻辑-毕竟,新文档尚未完全上载,因此必须“不完整”。

显然,如果我有100个用户在上载新版本时尝试进行此调用,则可能导致许多问题,如果在某些机密或敏感数据下使用此调用,则可能会导致更多问题。 因此,我们可能会丢失重要数据,或者数据库中的记录已损坏。

所以我的简单问题是,如何通过部署新代码来规避此问题? 拥有大量用户流量的公司如何做到这一点? 您能否为我提供更多链接以阅读有关此怪癖的信息? 或者至少告诉我这次活动的行话?

谢谢。

或者至少告诉我这次活动的行话?

很难说出您到底遇到了什么问题,但是您似乎正在谈论“在不停机的情况下升级服务器”。 这就是我要提到的方式。 为此可能还有其他术语。

所以我的简单问题是,如何通过部署新代码来规避此问题?

部署新代码是主机中提供某些服务的任何软件升级的部分情况。 部署可能包括整个操作系统,http服务器,数据库等的升级。“无停机升级”的常用策略是“过渡升级”(特别是对于流量较大的站点)和“切换”(通常适用于小型单个主机)网站)。 不确定仅升级PHP代码是否过大,也许还有其他针对PHP环境的策略。

拥有大量用户流量的公司如何做到这一点?

通常在分布式环境中处理大量流量的“翻转升级”策略。 该想法基于一对一升级多个主机。 当一台主机在升级过程中关闭时,流量会重定向到其他活动状态。 当一台主机再次启动时,另一台主机将被关闭。 依此类推,直到所有主机都升级。

当只有一个主机(即未分配)时,“切换”是“滚动升级”的部分情况。 这个想法很简单,将新代码部署到新的服务点(通常是新主机,尤其是在系统级事物正在升级的情况下)。 新服务与旧版本服务并行运行。 当新服务启动并运行时,您将流量从旧目标切换到新目标(更新DNS记录,http服务器路由规则,或其他取决于切换级别)。 当所有连接/客户端最终都重定向到新服务时,旧服务将被关闭。

您能否为我提供更多链接以阅读有关此怪癖的信息?

这是一个如何为php应用实现切换的示例: https : //webmasters.stackexchange.com/questions/22165/updating-a-web-app-without-any-downtime我不确定它是否实现了“没有停机时间”策略或仅仅是“最小停机时间”策略。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM