Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Deployment 维护大型网站_Deployment_Version Control - Fatal编程技术网

Deployment 维护大型网站

Deployment 维护大型网站,deployment,version-control,Deployment,Version Control,当我更新网站时,我只是用一个新文件替换内容 大型网站如何更新内容?当成千上万的访问者正在浏览网站时 例如,Facebook或Twitter是如何做到这一点的?成千上万的开发者在工作,数百万的访问者在网站上。他们是否正在复制网站,然后切换DNS?他们在使用Git吗?他们都在使用Git、SVN等版本控制系统。因此,他们可以在一个由不同功能组成的团队中工作,并在实时环境中推送和审查提交(推送请求)。此外,大型站点也有一个非常大的测试基础设施。它们都与Git、SVN等版本控制系统一起工作。因此,它们可以

当我更新网站时,我只是用一个新文件替换内容

大型网站如何更新内容?当成千上万的访问者正在浏览网站时


例如,Facebook或Twitter是如何做到这一点的?成千上万的开发者在工作,数百万的访问者在网站上。他们是否正在复制网站,然后切换DNS?他们在使用Git吗?

他们都在使用Git、SVN等版本控制系统。因此,他们可以在一个由不同功能组成的团队中工作,并在实时环境中推送和审查提交(推送请求)。此外,大型站点也有一个非常大的测试基础设施。

它们都与Git、SVN等版本控制系统一起工作。因此,它们可以在一个由不同功能组成的团队中工作,并在实时环境中推送和审查提交(推送请求)。此外,大型站点也有非常大的测试基础设施。

蓝绿色是一种广泛使用的部署策略,可避免停机

首先,您需要一个路由器/负载平衡器,它可以将到虚拟IP的请求转发到实际机器。在我工作的地方,我们使用

您还必须有两个生产环境,称为“蓝色”和“绿色”

在任何时候,只有一个是“活的”。 我的意思是,路由器必须将所有传入请求转发到“蓝色”环境、或“绿色”环境

假设“绿色”是实时的,您需要发布新版本的应用程序以投入生产

  • 将新内容/应用程序部署到“蓝色”环境(请记住,此处没有路由请求,因此环境处于“脱机”状态)
  • 然后测试您的“蓝色”环境,并确保在投入使用之前所有内容都已正确部署
  • 然后更改路由器,将所有请求转发到新的、稳定的“蓝色”环境
  • 如果上线后发现有bug,只需再次更改路由器,将所有请求路由到“绿色”环境,使用“旧”应用程序,即可回滚

    有关蓝绿色部署的更多信息,请参见:


    另一个众所周知的部署策略是金丝雀版本,它为少数用户启用了新功能,一旦所有功能都经过正确测试,它就为所有用户启用。

    蓝绿色是一种广泛使用的部署策略,可以避免停机

    首先,您需要一个路由器/负载平衡器,它可以将到虚拟IP的请求转发到实际机器。在我工作的地方,我们使用

    您还必须有两个生产环境,称为“蓝色”和“绿色”

    在任何时候,只有一个是“活的”。 我的意思是,路由器必须将所有传入请求转发到“蓝色”环境、或“绿色”环境

    假设“绿色”是实时的,您需要发布新版本的应用程序以投入生产

  • 将新内容/应用程序部署到“蓝色”环境(请记住,此处没有路由请求,因此环境处于“脱机”状态)
  • 然后测试您的“蓝色”环境,并确保在投入使用之前所有内容都已正确部署
  • 然后更改路由器,将所有请求转发到新的、稳定的“蓝色”环境
  • 如果上线后发现有bug,只需再次更改路由器,将所有请求路由到“绿色”环境,使用“旧”应用程序,即可回滚

    有关蓝绿色部署的更多信息,请参见:


    另一个众所周知的部署策略是金丝雀版本,它为少数用户启用了新功能,一旦所有功能都经过正确测试,它就可以为所有用户启用。

    作为实时环境和测试环境。@holpducki:是,我想我刚才说过:-)这并不能解释他们如何在不离线的情况下部署新内容,我认为这是问题的核心。作为一个实时环境和测试环境。@holpducki:是的,我想我刚才说过:-)这并不能解释他们如何在不离线的情况下部署新内容,我认为这是问题的核心。@Mana就我所知,是的,这是很常见的。金丝雀版本也被广泛使用——Facebook使用它为少数用户启用新功能,然后再为每个人“直播”。这就是为什么有时候你的facebook主页看起来可能与你朋友的facebook主页不同的原因——因为他们正在测试新东西。我在答案中加了这个。非常有趣!我将阅读金丝雀释放和蓝绿色部署!非常感谢@据我所知,这是很常见的。金丝雀版本也被广泛使用——Facebook使用它为少数用户启用新功能,然后再为每个人“直播”。这就是为什么有时候你的facebook主页看起来可能与你朋友的facebook主页不同的原因——因为他们正在测试新东西。我在答案中加了这个。非常有趣!我将阅读金丝雀释放和蓝绿色部署!非常感谢!