asp.net - 在项目中发布或更新单个 DLL - 安全吗?
问题描述
假设我在生产中部署了 ASP.Net WebApi 应用程序,我们想要更新它,但是因为它是一个大项目和旧项目,我们只想更新单个 Dll,而不是整个项目。
我们有发布此类内容的自动化流程,并且我们进行了一些回归测试和集成测试。主要是我们只在修补程序的情况下这样做,但现在我们希望增加部署频率
所以我的问题是: 更新单个 dll 是否安全?会出什么问题?
我试图在这些地方找到答案:
https://codeblog.jonskeet.uk/2019/06/30/versioning-limitations-in-net/
https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/break-changes
我认为如果我们制作一次修补程序并在一段时间后进行全面部署并没有那么糟糕(如果我们接受风险),但如果我们要使其成为正常做法,那么每个单个 Dll 部署风险都会高于正常的全面部署.
解决方案
我会四处走动并提供答案。这个问题有 2 个有效答案。请考虑每一个。
1) 是的。如果您的更改很小(隔离到一个项目/dll),没有其他更新/升级,您已经完成了足够的测试,您已经进行了备份(因此您可以撤消)那么是的,可以安全地部署一个DLL 无需部署整个项目。当然,有很多事情可能会出错或让您感到惊讶,因此请在部署后对监控系统保持警惕,并准备好退出(撤消)您的更改。安全第一!
2)您提出的建议有点牛仔风格,不符合行业“最佳实践”。几乎任何有经验的人都会敦促您重新考虑您的策略。也许你目前的工作条件可能不会给你更好的选择。我们都去过那里。但是,为了“重放您因这种风险而招致的债务”,您还需要制定一个计划并为自己设定一个时间表,以摆脱任何未来的此类修补程序。
推荐阅读
- javascript - 在 Service Worker 中从 HTTPS 导入模块
- python - 在python中多次分配给变量的地图对象上使用列表函数
- django - 用于多个域和同一站点的 Django 站点地图
- time-complexity - 分布式网络算法的时间复杂度
- javascript - 将 BrowserWindow 重构为单独的文件后捕获的异常
- java - spring data JPA repository.save方法自动保存所有实体?
- git - Git 合并来自另一个分支的部分更改
- javascript - 使用 React.js 通过 ChartJS 活动元素中的 onClick 传递未知值
- android - 错误:活动类 {com.example.cupcake/com.example.cupcake.MainActivity} 不存在
- android - 断言在 JetPack Compose 测试中是否抛出异常