【发布时间】:2022-01-09 05:56:36
【问题描述】:
我们正在 Firebase 上的 NodeJS/TS 中运行一个更大的后端应用程序,其中包含大约 180 个云函数和 Firestore 作为数据库。到目前为止,Firebase 一直很好地满足了我们的需求,但我们正在达到一个使用水平,即使是少量的停机时间也会造成很大的损害。由于云功能的数量,完整部署可能需要长达 30 分钟,因此我们通常只对更改的功能进行部分部署,这仍然需要大约 10 分钟。我正在尝试找到一种能够快速回滚到给定函数的先前版本的方法,以防在生产部署后发现错误。 Firebase 似乎不提供回滚功能,因此唯一的选择是使用以前的版本重新部署代码。一个问题是部署时间(单个函数最多 10 分钟),另一个是部分部署时的 git 版本控制。通常会有一个分支准确反映 prod 中可以使用的内容,但对于部分部署,情况不再如此。使用 prod 维护具有一对一分支的良好 git 版本控制的唯一选择是每次都进行完整部署,但这需要大量时间(30 多分钟不包括重试)。 firebase 部署通常也会失败或超过部署配额,这使得 CI 管道之类的事情变得非常困难(它必须自动重试失败的功能,而且时间仍然是一个问题,因为在停机时间)。有没有人找到一个很好的回滚(版本控制)解决方案和一个可以与 firebase 大规模配合使用的 git 结构?
【问题讨论】:
标签: node.js firebase google-cloud-functions