我正在尝试提出一个最佳工作流程来更新我在 play 框架上运行的 web 应用程序。
我用start
脚本来启动它,但更新代码的最佳实践是什么,以便它对用户尽可能无缝?
在 Apache + PHP 应用程序中,通常只需将新的 *.php 文件放到目录中就足够了,而且在许多情况下,用户甚至不会注意到更改。
你能分享一下你的工作流程吗?
我正在尝试提出一个最佳工作流程来更新我在 play 框架上运行的 web 应用程序。
我用start
脚本来启动它,但更新代码的最佳实践是什么,以便它对用户尽可能无缝?
在 Apache + PHP 应用程序中,通常只需将新的 *.php 文件放到目录中就足够了,而且在许多情况下,用户甚至不会注意到更改。
你能分享一下你的工作流程吗?
播放框架与在 apache 上使用 php 之类的东西非常不同。当用户请求页面时,Apache 会解释 PHP。因此,您需要做的就是更改文件以更新站点。然而,使用 java(除非您使用 .jsp 文件,甚至有时使用),代码是按字节编译的,网络服务器需要在启动时加载它及其库。这意味着仅仅替换新编译的文件是行不通的。您需要重新启动 Web 容器或让它重新加载应用程序以获取更改。在重新加载完成的同时尝试访问该站点的任何用户都会注意到这一点。
您可以有一个 Web 服务器(不必是 Apache),它指向您当前的 play 安装作为代理,并并行启动它的新版本,然后将您的代理网络服务器指向您的新版本并转为旧版本版本关闭。这可能是最简单的方法,并且可以编写脚本。
另一种方法是只使用一个 Web 应用程序,将用户重定向到该应用程序并进行与上述类似的并行更改。
这两个选项都需要一些设置和编码才能使它们无缝工作。但是,这项工作可能是值得的,因为一旦您将其设置部署到生产环境变得非常容易。