【问题标题】:How to stage deployment of an app on same server as production?如何在与生产相同的服务器上分阶段部署应用程序?
【发布时间】:2009-09-20 16:18:43
【问题描述】:

我刚刚从使用共享 CF 托管服务提供商的客户那里继承了一个 CF 应用程序。我想介绍更好的流程,包括我为他们审查所做的应用程序更改的能力。 (过去,他们会上传更改并交叉手指。)

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

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

欢迎任何想法或意见。我应该指出,该应用程序及其开发环境不是很“现代”。没有涉及任何框架,也没有像 ant 这样的东西用于构建/部署。客户的预算非常有限,所以我不打算将应用程序进行整体销售,但我确实需要找到便宜的方法来进行一些流程以保持正常。

【问题讨论】:

  • 觉得你之前的问题基本涵盖了。
  • @Sergii:我不这么认为 100%。如果现有代码使用自定义标签,我如何告诉 CF 加载它们的路径,而不是托管服务提供商让我设置的全局标签路径?您在我的另一个问题中提出的建议与我上面的第三段基本相同。我想知道是否有任何其他方法可以解决问题,而不会影响整个代码库的变化(它很大)。为每个应用设置映射的能力让我可以做到这一点。听起来迁移到 CF8 是最好的解决方案。我想知道在升级之前是否有另一种方法可以干净地分离两个应用程序......

标签: deployment coldfusion staging


【解决方案1】:

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

编写一份拥有实时和临时服务器的成本效益分析,并将其与第二个托管帐户的成本进行比较。第二个账号不需要海量的流量等,也不应该像真实账号那么贵。

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

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

【讨论】:

  • 第二个。它不应该花费太多,并且从所有意图和目的来看,它都提供了一个独立的登台服务器。
  • 同意。当一切都通过第二个托管帐户解决时,为什么还要浪费时间编程?即使客户预算紧张,第二个便宜的托管帐户也应该比开发解决方案便宜。
【解决方案2】:

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

【讨论】:

  • 虽然在其他地方提到的第二个托管帐户是个好主意,但我选择了这样的东西,主要是因为升级到 CF8 很快就会发生,所以客户不想打扰物流第二个帐户。但也因为使用显式路径(应用程序早于 CFC)和我在此过程中所做的其他调整(配置文件等)加载 CFC 的副作用是,我能够同时拥有一个暂存目录实时应用程序。自定义标签目录仍然存在重叠,但我正在最大限度地减少应用程序中这些标签的使用,因此它很少会成为问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-12
  • 1970-01-01
相关资源
最近更新 更多