问题标签 [staging]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
669 浏览

mysql - 将 Web 应用程序从开发阶段传递到生产阶段的最佳实践是什么?

我们的开发环境有很多层,并且难以有效地复制甚至备份。基本上,文件系统(即 /usr/appdir/webapp...)还有其他应用程序服务于我们的 Web 应用程序,我们更新的那些应用程序从它们的存储库执行 svn 更新。

使用 Web 应用程序本身(作为用户)将影响文件系统和数据库。所以备份系统就是在同一时间点拥有文件系统和数据库(mysqldump)的副本。两者之一本身不会是完整的备份,因为应用程序本身是非常动态的。

当我们将 web 应用程序部署到登台以供我们的一位客户测试和输入数据时,我们的环境现在很难从我们的开发环境同步回来,甚至难以将其投入生产。由于我们会在开发中向客户提出更改请求,但客户自己会在分期中进行更改。

目前我们正在使用冻结期,我们要求客户对开发环境甚至直接对生产环境进行更改(在完全上线之前)。

我想知道他们是否是关于如何从开发-> 暂存-> 生产中传递有效流程的最佳实践?或者,如果您可能有一些指示。

0 投票
6 回答
1126 浏览

process - 如何将新的发展推向生产环境?

一旦我们的 Web 应用程序在生产环境中使用,我们就很难通过增强或错误修复来更新它。主要原因是我们 CMS 系统设计的初始缺陷。我们通常必须花费数小时来更新每个产品环境,并且多次出现错误和长时间的调试。看起来我在抱怨,所以让我们回到讨论的客观部分。

该缺陷在于内容和编程功能如何一起存储在数据库中。所以基本上数据是如何显示的,数据本身是如何存储在数据库中的。有一些文件系统更改,但它们与内容无关。此外,应用程序本身创建了许多我们无法在数据库中跟踪的引用。

正如您所看到的,当最终用户和利益相关者使用应用程序时,我们的开发团队必须以手动方式发布生产中的更改。

另一个问题是,当数据库被修改时,应用程序会动态更改文件系统。所以我们的开发环境和生产环境现在都不同了,为了同步他们的数据,他们的数据必须去,或者开发团队必须经历很多手工工作。

我可以解释更多,甚至给你更多的例子。如果您需要,请给我评论。

0 投票
2 回答
10672 浏览

php - 有人有使用 php/mysql 的开发/登台/部署工作流程吗?

我正在考虑一个很好的 php/mysql web 开发工作流程。

有人有一些提示吗?

0 投票
5 回答
3227 浏览

database - 暂存数据库困境

假设有 3 个数据库

  • 生产
  • 分期
  • 开发

据我所知,暂存数据库需要与生产数据库同步但是,

当我们在开发时,我们可以对Dev数据库做任何我们想做的事情并改变模式。现在来了鸡和蛋的问题。

要在 Staging 中进行测试,需要根据在 Dev 数据库中所做的更改来更改Staging数据库架构。但是暂存数据库需要与生产同步。

你们如何解决这个问题?

0 投票
5 回答
6891 浏览

ruby-on-rails - Web App Staging Server 的最佳实践(在预算内)

我想为 Rails 应用程序设置一个登台服务器。我使用 git & github、Cap,并且有一个带有 Apache/Passenger 的 VPS。我很好奇登台设置的最佳实践,包括登台服务器的配置以及与之交互的流程。我确实知道它应该尽可能与生产服务器相同,但限制对其的公共访问会限制它,因此仅为我使用保护它的提示也很棒。

另一个具体问题是我是否可以在 VPS 上创建一个虚拟主机,以便临时服务器可以与生产服务器一起驻留。不过,我觉得可能有理由避免这种情况。

0 投票
4 回答
2992 浏览

database - 登台表/登台数据库是反模式吗?

当 rpc(如 Java RMI 或某种 Web 服务调用)或消息队列(如 JMS)是更好的解决方案时,暂存表是否是一种反模式,或者暂存表是否可以更好地解决问题?

澄清:

暂存表是指记录由一个或多个进程附加到一个或多个表的情况,然后由第二个或多个进程读取并对其进行操作。我不是指那些旨在反映间隔结束状态(一天结束、支付期结束等)的表格。在大多数情况下,登台表的模式非常模仿应用程序数据类型,例如客户或帐户。

这种反模式的潜在原因:

1) 两个进程的所有者之间的业务单元墙可防止写入或读取暂存的进程被修改。

2) 对 staging 写入或读取的进程信心不足,导致开发人员使用 table 来防止“以防万一发生故障”的数据丢失

3)缺乏知识或DGAS(不要给^%$@)态度

0 投票
6 回答
1070 浏览

asp.net - 登台环境应该等于现场环境多少?

管理层已决定使用带有 IIS7 的 Windows 2008 64 位来为我们的主要网站提供服务。

他们希望将它放在带有 IIS6 的 Windows 2003 服务器上。 [编辑]是的 32 位是他们计划暂存的[结束编辑]

我想知道除了安全问题之外,我应该提出哪些问题,建议我们应该在暂存环境中选择与实际环境中相同的服务器。

我读过这样的好帖子但我想要一些我可以用几个要点说的话

登台和现场环境应该是相同的,任何经验丰富的开发人员都很容易理解,我的问题是我试图向似乎已经下定决心的高层管理人员解释这一点......


[编辑] @卢克:

它基本上是一个经常更新的网站,在部署到实时环境之前,整个网站都将进行上演、测试。

该站点将由营销部门(非开发人员)负责,并让他们在部署之前验证该站点没有问题。


[Edit++] 代码为 ASP.NET,用于 3 个重要的客户订购页面。

谢谢,

里克

0 投票
2 回答
1972 浏览

svn - 寻找一个安全的 SVN 远程更新 post-commit 钩子

我正在与其他一些开发人员一起使用开发、登台、生产服务器环境。

现在我们进行更改,在我们的开发服务器(个人计算机)上测试它们,然后一旦我们对更改感到满意并希望将它们展示给客户端或内部审查,我们将更改提交到存储库并通过 samba 更新登台服务器的工作副本(tortoiseSVN) 或 ssh。

这变得非常乏味和重复。我希望有一个提交后挂钩更新远程登台服务器,但唯一的选择似乎涉及在 SSH 挂钩中硬编码用户凭据或使用用户帐户创建网络挂载。有没有办法将用户身份验证从初始提交传递到登台服务器以进行更新或任何其他建议?

欢迎使用其他设置解决方案。

0 投票
2 回答
2034 浏览

build - 您将什么用于暂存/部署工件服务器?

我正在考虑编写自己的发布存储服务器,在此之前,我想知道人们使用什么来查看集成而不是创建。

那么,您使用什么来存储构建以供内部访问?

我正在寻找一个网络应用程序,它允许我上传工件,然后通过各种标签引用它们,以便我可以按组件或发布工具将它们组合在一起。我还希望通过准备或升级来控制每个构建的访问控制。

我将登台定义为将构建的工件放在服务器上供用户社区访问。工件通常是包含应用程序或库 + 文档的 zip 文件。用户社区是开发人员、QA 和服务交付/运营。基本上,创作者、检查者和外部用户。

我们在发布工具中单独发布工件并作为组发布(例如,发布 1.1 包含 foo 1.0.1 和 bar 1.0.7)。根据工件,我们可能希望限制访问。操作应该无法访问预发布的版本,我们可能想要跟踪谁下载了有限的可用性版本。

所以,我希望找到一种工具,它可以通过良好的可扩展设计完成我想要的大部分工作,这样我就可以添加我没有的东西。

有人知道用于管理构建后构建的好工具吗?

示例可能是:

  • quickbuild/lunt 构建
  • 团队锻造
  • 打造锻造
  • Jira 和汇合作为一组
  • 声型联结
  • 自家种植
  • SVN 存储库使用分支来提升来自 dev->Qa->GA 的构建
0 投票
1 回答
810 浏览

django - Django:同一服务器上的实时站点和暂存站点之间的冲突

我最近推送了一个 Django 应用程序。我们在服务器上的暂存子域中构建了应用程序。当我上线时,我将登台子域的文件复制到主站点,创建一个登台数据库并将旧登台站点指向新登台数据库(让新活动站点指向原始数据库)。这是在 Apache 下的 mod_python 上。

我已经为这两个站点创建了唯一的 SESSION_COOKIE_NAME 设置,并且我已将实时站点的 SESSION_COOKIE_DOMAIN 设置为“.sitename.com”,而将暂存站点设置为 None。

我们看到的问题是实时管理员中的用户正在进行编辑(看起来)正在保存到临时站点。在请求期间,用户也会“随机”退出管理站点。

我在这里显然做错了什么吗?SESSION_COOKIE_DOMAIN 是否应该是“www.sitename.com”来限制它,因为子域位于“staging.sitename.com”?我是否在现用数据库中留下了旧会话信息(在此问题出现之前,我运行了 ./manage.py clean 并从实时数据库中删除了所有会话)?

谢谢