Deployment 如何在生产服务器上分期部署应用程序?

Deployment 如何在生产服务器上分期部署应用程序?,deployment,coldfusion,staging,Deployment,Coldfusion,Staging,我刚刚从使用共享CF主机提供商的客户那里继承了一个CF应用程序。我想引入更好的流程,包括我为他们的审查所做的阶段性应用程序更改。(过去,他们会上传更改并祈祷。) 他们的应用程序位于webroot下的文件夹中。我们称之为“/应用程序”。我想创建一个名为“/appstaging”的同级目录,在其中发布最新代码。障碍在于托管提供商允许您为自定义标记和映射设置路径,但不允许为每个CF应用设置路径。现有设置都指向/app目录,因此如果我需要更改标签、CFC等,我无法在不影响live app的情况下测试这些

我刚刚从使用共享CF主机提供商的客户那里继承了一个CF应用程序。我想引入更好的流程,包括我为他们的审查所做的阶段性应用程序更改。(过去,他们会上传更改并祈祷。)

他们的应用程序位于webroot下的文件夹中。我们称之为“/应用程序”。我想创建一个名为“/appstaging”的同级目录,在其中发布最新代码。障碍在于托管提供商允许您为自定义标记和映射设置路径,但不允许为每个CF应用设置路径。现有设置都指向/app目录,因此如果我需要更改标签、CFC等,我无法在不影响live app的情况下测试这些设置。我想要的是CF允许我设置每个应用程序标记的路径和映射。据我所知,CF8允许我这样做,但客户正在使用CF7(我正在推动他们尽快升级)。同时,是否有办法解决这个问题,或者是否需要等待一个平稳的过渡更改的方法

(我目前正在试验使用application.cfm中的GetCurrentTemplatePath()来检测我基于哪个应用程序的方法。其想法是,任何引用其他使用映射的文件的代码都将使用不同的映射。不过,我还没有在那里做足够的工作来知道这一切是否都会成功。)


欢迎提出任何想法或意见。我应该指出,这个应用程序及其开发环境不是很“现代”,没有涉及框架,也没有像ant这样的东西用于构建/部署。客户的预算极为有限,因此我不打算将整个应用程序的销售转化为销售,但我确实需要找到一些廉价的方法,在其中加入一些流程,以使事情保持正常。

这是一个严肃但古怪的建议:使用第二个托管帐户

写一份拥有实时和临时服务器的成本效益分析,并将其与第二个托管帐户的成本进行比较。第二个帐户不需要大量的数据津贴等,也不应该像live帐户那样花费太多

此外,计算修改代码库以允许在一个帐户上进行实时和登台的成本,并将其与第二个托管帐户的成本进行比较


请记住,一旦真正的升级完成,您将不需要第二个帐户。

我希望您需要在加载到应用程序范围的配置文件中定义自定义标记路径。但这需要一些认真的代码修改

我认为你之前的问题基本上涵盖了这一点。@Sergii:我不认为100%。如果现有代码使用自定义标记,我如何告诉CF从托管提供程序允许我设置的全局标记路径以外的路径加载它们?你在我的另一个问题中提出的建议基本上与我上面的第三段相同。我想知道是否有其他方法可以在不影响整个代码库(很大)的情况下解决这个问题。每个应用程序设置映射的能力可以让我做到这一点。听起来转移到CF8是最好的解决方案。我想知道在升级之前,是否有其他方法可以将这两个应用程序完全分开…附议。它不应该花费太多,而且为了所有的意图和目的,它提供了一个独立的暂存服务器。当所有问题都通过第二个托管帐户解决时,为什么还要浪费时间编程?即使客户的预算很紧,第二个便宜的托管帐户也应该比开发一个变通方案便宜。尽管其他地方提到的第二个托管帐户是个好主意,我选择了这样的方式,主要是因为CF8的升级很快就会发生,所以客户不想为第二个客户的物流而烦恼。但也因为加载带有显式路径的CFC(应用程序早于CFC)和我在加载过程中所做的其他调整(配置文件等)的副作用,我能够与live应用程序并排拥有一个暂存目录。仍然有与自定义标签目录重叠的地方,但我正在尽量减少应用程序中这些标签的使用,这样就很少会出现问题。