【发布时间】:2023-03-28 05:31:01
【问题描述】:
我是 DevOps 的新手,我有一个解决方案,将 Umbraco 作为 CMS,将移动应用程序作为 CMS 中添加的内容的前端,以及将 CMS 与移动应用程序连接起来的 .Net MVC Web API。我还有一些计划任务的 WebJobs 和 Microsoft 流程。
现在,我需要为我的多租户应用程序实施 DevOps,这是我的场景:
该解决方案将有一个主应用程序,它将作为功能的主列表,供管理员在创建新社区时启用功能。多个社区拥有独立的数据库,每个社区都有多个特征(Feature1、Feature2)。开发人员应该有一种方法可以前向集成和后向集成功能。
将该功能添加到任何社区后,它可以对特定功能进行自己的自定义。在某些情况下,开发人员还需要将这些更改添加到主社区或兄弟社区。我还添加了图片以便更好地理解。
现在,我需要帮助来为我的解决方案创建满足上述所有要求的分支策略,并在合并所有分支时最大限度地减少冲突的机会。我有以下选择。
i) 我应该将每个功能视为单独的分支吗?如果是,如何管理在任何单个社区中完成的社区特定更改?
ii) 我应该将每个社区视为单独的分支吗?如果是,如何分离出要与社区分支合并的特性代码?
iii) 我应该考虑在所有社区之间共享代码吗?如果是,那么社区特定的变化呢?
一旦部署(在使用 Visual Studio 2017 的代码库中),一切都将立即运行。 我应该采用哪种策略?还是有比这些更好的方法?如果在部署后生成,我该如何解决合并冲突?另外,在 DevOps 中我应该选择 Git 还是 TFS?
任何指导将不胜感激。
【问题讨论】:
-
这可能更适合放在softwareengineering.stackexchange.com。除此之外,拥有一个应用程序并拥有多个部署不是更容易吗?只需给每个功能一个切换,对于每个部署,您都可以打开和关闭不同的功能切换。 Git 并不是用于管理功能采用的真正好工具,它用于文本文件版本管理。
-
@ElliotBlackburn,感谢您的回复。正如您所说,Git 在这方面并不是一个真正好的工具,您是否建议 TFS 是满足 DevOps 和我的要求的更好选择?
-
不,我建议您重新考虑您的方法。对应用程序功能标志使用任何类型的版本控制都是一个坏主意。您应该研究功能标志(有时称为功能切换)。 Git、TFS、SVN,所有这些做这种开发都会很痛苦。
-
@ElliotBlackburn,因此您建议不要挖掘分支,而是使用功能标志。由于我对这一切都很陌生,你能帮我了解更多吗?任何参考也将起作用。感谢您的帮助。
-
当然,我会提供我的回复作为答案,以便获得更多文本格式。
标签: git azure-devops branch