我们正在创建一个php服务,它将在许多服务器上运行,想想看,5000+。我们在git (bitbucket)上托管代码。我们想知道保持服务器更新的最佳方法是什么。
我们发现了这两种后提交钩子(但是如果一些服务器没有收到更新通知,会发生什么情况呢?)或者每分钟都和克伦在一起。我们想采用cron的方式来做事情,因为它不可能失败,即使服务器离线(关闭或断开网络),它最终还是会自行解决。
我们每分钟进行一次抓取,然后比较看它是否需要拉,如果需要,它会提取并运行迁移代码。
我们希望每分钟都运行这个程序,这样服务器就能尽快同步。
现在我们想知道,利率限制如何?我们正在使用bitbucket,而利率限值是每小时60000个请求(也就是说每分钟1000个请求),这将限制我们最多1000个服务器才会出现问题吗?
但是它也说,如果我们做一个公共回购,我们可以进行未经认证的调用,其限制由IP而不是每个用户,所以我们不会遇到任何限制,然后,无论我们将有多少服务器。缺点是,我们将不得不加密回购,然后在拉,解密和复制解密文件。
这是处理这件事的最好办法吗?这看起来很不合常规。处理这个问题的标准或建议方法是什么(如果有的话)?
发布于 2020-03-13 17:38:05
虽然使用它作为一个整体并不是很少见,但是git并不是一个部署工具。最多只能勉强满足简单部署工作流的需求。它当然不是一个大规模部署/同步工具,也不是像bitbucket这样的主机提供商打算为这种使用服务的流量。
即使您能够找到一种方法来实现这一功能,作为bitbucket的用户,我也希望他们能够根除任何试图消耗如此庞大的资源的人。(顺便说一句,这可能与利率限制有关。)
您应该获取每个更新一次(或者最多每个数据中心一次,如果您的服务器是这样组织的话),在接收更新的服务器上执行构建任务,然后通过您自己的网络分发生成的工件。这是一个有很多工具的模式(jenkins,teamcity,.)
https://stackoverflow.com/questions/60674502
复制相似问题