如何在多个服务器上实现Web应用程序的自动更新功能?

如何在多个服务器上实现Web应用程序的自动更新功能?,第1张

概述我需要了解如何实现以下内容   1.想要构建 python应用程序,当新补丁可用时,它将自动更新   2.它将运行单元测试以检查补丁是否成功部署   3.如果在安装过程中出现任何故障,它将自动回滚 我不知道的 A.不确定如何从源代码构建补丁 B.可以检查有关新更新的算法/标准过程 C.自动部署/回滚过程 有什么建议/链接吗? 我实现了一个服务器,它识别更改的源代码并提取新代码.它于 pythona 我需要了解如何实现以下内容
1.想要构建 python应用程序,当新补丁可用时,它将自动更新
2.它将运行单元测试以检查补丁是否成功部署
3.如果在安装过程中出现任何故障,它将自动回滚

我不知道的
A.不确定如何从源代码构建补丁
B.可以检查有关新更新的算法/标准过程
C.自动部署/回滚过程

有什么建议/链接吗?

解决方法 我实现了一个服务器,它识别更改的源代码并提取新代码.它于 pythonanywhere.com在 this url托管,代码在 github.这个答案基于我在实现更新功能时的经验.

当您通常使用git对代码进行版本控制时

>有一个工作的主或部署分支
>当所有测试都通过时,有一个开发分支合并到master – > deploy分支.

这样,您只需知道部署分支何时更改,以确定何时重新启动.应该在之前进行测试,以便不会出现停机.如果在部署系统上运行测试,则可能需要花费太多时间,或者无效代码会破坏系统.
因此部署分支可行,因为之前已经过测试.

对于自动化测试,您可以使用连续集成服务器(如travis)下载代码并对其进行测试.可以询问是否运行特定提交.

当您在github上托管代码时,您可以指定推送http地址.我使用http://server/update每当更改存储库时,github会通知您的服务器.

然后,您可以通过从git中提取源代码来更新源代码,如果部署分支确实已更改,则可以重新启动应用程序.我不能在服务器上这样做,也许你可以.

场景:

>我将代码推送到github
> github将POST发送到http:// server / update
>

@post('/update') # bottle codedef pull_own_source_code_and_restart():    with inDirectory(server_repository):        prevIoUs_commit = last_commit()        text = git.pull()        current_commit = last_commit()    if prevIoUs_commit != current_commit:        restart()    return "Git says: {}".format(text)

看看这两个文件:

> command_line.py用于git命令
> bottle_app.py如果服务器无法重新启动,则为派生实现.

版本控制系统通常对每个版本进行“修补”.我用git.如果你现在不知道git,那就去学习吧!这是Pythons Django和git:http://www.opentechschool.org/material.html的研讨会材料

现在让我知道这些信息是否足以在Django中实现这样的功能.当你开始工作时,请在这里发布你的代码.

总结

以上是内存溢出为你收集整理的如何在多个服务器上实现Web应用程序的自动更新功能?全部内容,希望文章能够帮你解决如何在多个服务器上实现Web应用程序的自动更新功能?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1127156.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存