我们有一个相当大的回收站3服务器,现在已经达到2020年年底的“寿命结束”。
我知道尽快迁移到Loopback 4的建议,但我对是否进行迁移犹豫不决-- LB3的许多功能(到目前为止)还不存在于LB4上,LB4模型关系是LB3的一个子集,只是所涉及的纯工作量。我还知道(并测试过) LB3应用程序在LB4应用程序中的嵌入。
因此,实际上--在可预见的未来,留在LB3上有哪些实际的不利因素?我知道我将失去未来的补丁&修复,例如安全更新,我想LB3将有nodejs版本的上限(v10?)。但是,例如,npm模块是否会变得不可用,或者服务器会不会有一天“停止启动”?还有什么要考虑的吗?
(如果这闻起来有管理压力的味道-你是对的)
发布于 2020-09-04 21:39:15
不利方面
有两个主要的缺点:
缺乏社区支持
由于LoopBack 3是由核心维护人员终止生命-d (EoL)的,社区的兴趣也会发生变化。社区的某些部分可能选择使用其他替代方案,而其他部分则可能迁移LoopBack 4。
文档和回购都不会去任何地方,但是如果你在某个特定的问题上遇到困难,你可能得不到社区的帮助。
随着时间的推移,LoopBack 4将继续改进,迁移指南将与之一起迭代。因此,在准备就绪时,您将有同样的机会迁移到LoopBack 4。
安全性
任何安全修补程序,包括上游依赖项的补丁,都不会被应用。这使得很难确保软件的安全性,因为LoopBack 3将不再受益于半自动的依赖更新。
如果上游依赖安全补丁很重要(而且应该如此),则建议维护包的分叉。
流程应该是这样的:
的LoopBack 3依赖项。
Node.js安全修复可能也很重要。因此,在可能的情况下,应该根据最新的Node.js版本对这些包进行测试。
维护包括更新依赖项和修复这些更新引起的任何不兼容问题。
包裹会停止工作吗?
很可能不是。没有理由让软件包“崩溃”,除非有任何未解决的错误。
作为保证,NPM不允许发布包,除非在极端的情况下,package-lock.json
和npm ci
将确保一个大部分可复制的安装。
然而,的包锁只适用于直接依赖项。因此,如果任何上游依赖项在没有主题词的情况下应用向后不兼容的更改,则包可能会无意中中断。
这可以通过使用来缓解,它将获取整个依赖树的快照。
Node.js版本会被限制在10.x吗?
是。这并不是一个困难的要求,但不建议承担隐藏的破坏更改的风险。
LoopBack 3是一个覆盖得很好的应用程序(就测试而言)。因此,可以使用测试套件来评估和检测Node.js更新中的任何潜在不兼容问题。
那管理层呢?
如果您能够维护LoopBack 3包的分支,运行测试套件,并通过CI/CD管道更新依赖项和Node.js LTS版本,那么它应该是相当安全的。
LoopBack 3是一个相当成熟的项目。因此,可以假定发现了最严重的缺陷。维护LTS周期的目的是允许检测这样的bug,而不添加任何可能导致倒退或新的关键缺陷的新特性。尽管如此,仍然有可能在EOL之后检测到一个新的关键缺陷。
--你必须自己权衡利弊。考虑到这一切,它的安全性令人难以置信地取决于运行在LoopBack 3上的服务类型、业务的需求以及您愿意承担多少风险。
安全软件开发生命周期是非常重要的,产品和服务的构建应该考虑到这一点,以防止或减轻这些问题。
何时迁移到LoopBack 4
我现在就该开始计划迁移了。由于LoopBack 4完全重写为元框架,以满足TypeScript和OOP在Node.js中的流行,因此迁移需要付出一定的努力。
如果在LoopBack 4中需要某些特性,那么相关的GitHub问题。LoopBack 4是一个社区驱动的开源项目。维护人员将努力满足社区的需求,并且建设性的反馈允许核心和社区维护人员相应地确定优先级。
https://stackoverflow.com/questions/63744475
复制相似问题