gpt4 book ai didi

c# - 如何将更改从开发上传到生产

转载 作者:行者123 更新时间:2023-11-30 20:52:31 25 4
gpt4 key购买 nike

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

7年前关闭。




Improve this question




在我公司,我们有一个用 c# 编写的系统并使用 sql server db。
每当我们想将代码更改上传到生产环境时,我们都会让系统离线几个小时。
我想知道是否有办法在不关闭系统的情况下做到这一点。

大公司在做什么?我无法想象 Amazon.com 在更改代码或数据库时会离线 3 小时。

谢谢。

最佳答案

首先回答您关于亚马逊/谷歌等公司的观点;他们有不止一个生产环境!

想象一下(简化的想法),您有 10 个生产 Web 服务器(每个都在同一级别,相同的编译代码库等),以及您的集群数据库解决方案(非常简化的想法)。在一天中的某些时候,您只需要 4 个 Web 服务器就可以生存(也许在欧洲睡着的时候)。因此,您将它们一一关闭(负载均衡器将流量重定向到其他流量)并执行升级以使它们保持离线状态。同时,您对许多数据库注释执行数据库更新(它们处于离线状态)。一旦你有足够的升级服务器/节点让网站再次上线,你就可以关闭你的公共(public)网站(像亚马逊一样友好的消息);允许数据库与任何更改的数据同步,并使用新升级的服务器/节点将其全部备份。然后,这允许您升级剩余的服务器/节点,并在它们准备好时将它们添加到“事件池”中。这使您可以花时间进行升级,但停机时间最短。

回到现实世界

不了解您的业务性质(无论是 24 小时面向客户,还是周一至周五 9-5 小时)。我的公司(一家伪 24 小时营业的公司,也就是我们营业时间很晚,晚上有 Backbone 远程员工)的规范是让代码准备好以编译状态上线,并编写任何数据库更改脚本。相关系统将在晚上下线(在用户得到良好通知后)并复制过度编译的更新。然后进行 db 更改。通常在星期五,因为这会在星期六开始比赛前的晚上/早上来解决任何问题。

如果您愿意,没有什么可以阻止您自动执行此复制/执行/bounce-app-pool 例程。

关于c# - 如何将更改从开发上传到生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20823820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com