这些年来,我经历了几种不同的情况:
开发 -> 测试:通常有一个代码冻结日期,该日期停止新功能的工作并获得一个测试环境,该测试环境已经构建了已标记/标记/存档的代码。然后将其复制到机器上,测试顺利进行。这通常也是所有推送中最不详细的。
Test->Prod :这需要对生产进行较小的更改,这可能意味着“钓鱼”页面上升或 IIS 没有任何站点正在运行并且代码被再次复制。在某些特殊情况下,负载均衡器可以充当交换机,以便进行促销,并且没有客户遇到任何停机时间,因为旧服务器上的客户将在会话结束后移动。
为了详细说明切换的想法,设置是有 2 个可能处于活动状态的服务器,其中只有一个服务器接受请求,负载均衡器只将所有流量发送到一台机器,当另一台服务器有更新的代码上线时可以切换.
还可以有一个介于测试和生产之间的暂存环境,其中的过程是相似的,因为促销发生的日期是固定的。
在我以前工作的地方会有合并日,开发人员在 Perforce 中花费大部分时间合并代码,以便可以将其从一个环境提升到另一个环境。
现在有几种情况不使用它:
“修补程序”或“热补丁”会出现在我以前工作的地方,在这种情况下,特定文件会自行复制到登台和生产环境中,因为代码更改必须尽快进入生产环境,因为生产中出现问题或一些必须完成的新事物需要 2 分钟才能完成。在这种情况下,被推送的代码更改必须在退出前经过审查和批准。
这些是我见过的不同方法,通常可能需要更改时间表和时间表,或者引入额外的资源来确定一个艰难的日期,例如会议是否在某个特定的周末举行,而某某已为此做好了准备。
当然,在一些地方出现了“哦,那是坏的吗?让我看看……”,几分钟后,“不,看它对我来说没有坏”,有人在没有问的情况下改变了事情许可或任何公司仍然拥有他们所谓的“牛仔编程”的东西。
另一点是发布的规模: 1) Tiny - 这是一个网页上升以便用户 X 可以做 Y 的情况。
2) 小 - 少量的文件,这些文件并不复杂,但也不是微不足道的。
3) 中等 - 从一个环境转移到另一个环境需要更改一堆文件,并且通常需要移动脚本。
4) 大 - 有预定的促销活动,并且当实时推送完成时,会询问各种开发人员谁在轮班。除了发布一些新的电子商务网站外,我还需要进行数据迁移。
5) 猛犸象 - 一切都是全新的,包括如何使用它。我认为我从未见过这种尺寸的产品,但我想微软或谷歌会发布这种尺寸的产品。
在这个范围内的某个地方,大多数版本都会下降,因此多少计划和准备可能会有很大差异,我们不要忘记,监管合规性可能是完成某些事情的痛苦。