维护一个大型网站

时间:2015-05-27 12:13:21

标签: deployment version-control

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

大型网站如何更新其内容?当数千名访客正在浏览该网站时。

示例如何,Facebook或Twitter如何做到这一点?成千上万的开发人员在网站上工作,数百万访问者。他们是在处理网站的副本然后切换DNS吗?他们在使用Git吗?

2 个答案:

答案 0 :(得分:4)

Blue-Green是一种广泛使用的部署策略,可以避免停机。

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

您还必须拥有两个生产环境,名为" blue"和"绿色"。

其中只有一个是"直播"随时。 通过这个,我的意思是你的路由器必须将所有传入的请求转发到" blue"环境,"绿色"环境。

让我们说"绿色"是实时的,您需要将新版本的应用程序发布到生产环境中。

  1. 您将新内容/应用程序部署到" blue"环境(请记住,这里没有路由请求,因此环境是"离线")
  2. 然后你测试你的"蓝色"环境并确保在上线之前已正确部署了所有内容。
  3. 然后您更改路由器以将所有请求转发给您新的且稳定的"蓝色" ENV。
  4. 如果在上线之后你发现有一个错误,只需通过再次更改你的路由器来回滚以将所有请求路由到你的"绿色"环境,与#34; old"应用

    有关蓝绿色部署的更多信息,请访问:BlueGreenDeployment

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

答案 1 :(得分:0)

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