我个人从未这样做过。我不明白为什么会有这么多站点,如果您在开发服务器上进行开发,为什么要关闭生产站点?
我一直想知道这一点。
他们在这段时间在做什么,需要做什么?
我个人从未这样做过。我不明白为什么会有这么多站点,如果您在开发服务器上进行开发,为什么要关闭生产站点?
我一直想知道这一点。
他们在这段时间在做什么,需要做什么?
Answers:
对于任何规模较大的事情,最大的好处是,如果有人以某种方式更改数据库架构,则通常需要运行一些大型的,讨厌的维护脚本。
现在,这些可能需要一秒钟左右的时间才能与您的开发数据集一起运行。但是,当您开始以TB和PB为单位测量数据时,即使将单个列添加到表中也要花费数小时。
因此,无论部署的速度和自动化程度如何,您仍然要解决数据维护问题。如果您确实计划得很好,则可以在进行此过程的同时建立站点的只读镜像,但是对于许多站点,只读是没有意义的,因此不值得付出努力。
有多种原因可能导致您需要关闭站点进行维护。仅举几例:
基本上,如果您的网站不是静态的,则在执行逻辑更新时,您希望将其删除,否则访问您网站的用户可能会收到错误或意外行为。
另外,如果要触摸站点的web.config(在ASP.NET中),则应先将其删除进行维护,因为它将使用户的会话中断。因此,如果它们在某物中间,它将丢失。
好吧,这是一个抽象的问题-我什至看到网站使用“停机维护”而不是HTTP 500。
对于网站,有时需要进行一些升级。例如,如果您要更改数据库,则在此期间您不希望任何其他用户接触该数据库。如果数据库脱机,则还必须正常关闭该站点,因为显示SqlException并不是很好。另一个原因是某些硬件故障或系统故障(例如资源泄漏),这需要应用程序甚至系统重新启动。
有一次,我参加了我国最大的银行之一的网上银行系统升级。网站,中间层和数据库的升级过程耗时三天,客户无法使用该系统。它还包括所有内容的完整备份,因此万一发生故障,可以将系统还原为旧版本。
服务器需要运行补丁程序,并且在许多操作系统上,这些补丁程序需要重新启动。因此,这是停机时间的一种。许多公司计划从补丁程序重启以减少使用时间,例如星期日早上。如果没有补丁程序,它们将在定期计划的维护时间重新启动服务器(这是NT4天的宿醉,因为某些计数器每周半溢出,因此每周重新启动可以防止其他错误)。
我工作过的一家公司在90年代后期就建立了一个电子商务网站,每月的销售额超过100万美元。有人将错误的税表升级到生产数据库服务器。解决方法是从备份还原数据库服务器,并应用自上次备份以来的事务。这花费了几个小时,在此期间该网站无法接受订单。由于订单部分和静态销售手册在同一站点上运行并且是不可分割的,因此两者都必须降低。
我工作过的一家公司在错误的位置插入了错误的文字,CEO倒闭了,该网站下线“进行维护”,同时布局和文字被“固定”,适当的受害者被指责和开除。
即使每次安排的停机时间都无事可做,站点仍可能安排定期的停机时间。通过这样做,他们习惯了的想法用户该网站将关闭了一定的时间,每隔一段时间,这样,当工作确实需要做的,用户不会抱怨这么多。
无需关闭服务器进行维护。您可以避免在任何规模,数据库更改,服务器更新等任何情况下这样做。
问题在于,在一定程度上,零停机系统的创建和维护成本很高。您需要无处不在的冗余,无处不在的负载平衡,数据复制,同步。这些都是难题。
基本上,您需要达到可以在产品中发布Netflix Chaos Monkey的水平,以确保即使部分系统正忙于更新或不同步,它也可以正常工作。这当然是可行的。它也是非常昂贵的,需要很多时间和许多专家来解决这个问题。
将站点置于维护模式可能是您选择的中间立场,因为您不想投入太多,只是为了避免偶尔偶尔关闭站点。
经济学。
当然,如果您确实选择了零宕机时间的途径,那么您的站点将不仅获得可用性,还将获得可靠性,因为这些最佳实践可同时满足这两个目的。
我不明白为什么会有这么多站点,如果您在开发服务器上进行开发,为什么要关闭生产站点?
该死。除非您对交付物进行某种形式的数学验证(并且您的规格有效),否则无论您多么小心,都会发生垃圾。
另外,有时您可能不得不对基础架构的关键部分进行更改(例如,对数据库结构进行更改),这确实需要停机。
除非您正在开发关键系统(例如,五分之九或六分之九的系统),否则要做的负责任且具有成本效益的事情是构建一个将停机时间作为现实的一部分来接受的系统。
此外,通过使停机时间易于管理并易于安排(或至少可检测),并具有清晰的理解和有效恢复程序,您可以进一步利用该原则。