- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关闭。这个问题需要更多 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/
我是一名优秀的程序员,十分优秀!