我们正在开发n层应用程序,其中前端、后端、数据库迁移器和坞-组合环境组件在它们自己的存储库中存储和开发。它们由CI/CD管道独立建造、单元测试和集装箱化。目前,语义版本用于标记后端组件主构建。Docker项目应设置具有正确组件版本的开发环境。
用分解的存储库全面跟踪n层应用程序组件开发和发布版本之间兼容性的最佳方法是什么?Git子模块由于其安全性问题而无法使用。我们应该利用docker注册表和标记来进行版本管理。Git标记用于标记停靠者图像。
我特别不确定如何为数据库迁移指定版本。在模式级别和migrator映像级别,版本碰撞(主要/次要)的规则是什么?模式版本应该如何与图像版本相关联(不同的映像版本可能有不同的“不版本”可重复脚本,即视图和过程=>可能的中断更改)。
此外,我也不知道如何对前端版本,因为没有家属。最终,我想维护版本历史记录,如果需要的话,可以在其中部署系统的早期版本。
TLDR:如何在多存储库项目中使用语义版本,用于前端、后端、数据库迁移和带有CI/CD管道和容器注册的坞-组合环境?
发布于 2021-03-31 22:52:45
天桥的常见设置是将其集成到您的微服务中(在这种情况下,很可能是在后端)。这样,您的迁移就会与代码一起进行。如果您有几个使用数据库的微服务,那么每个微服务都会有自己的迁移。将迁移到单独的存储库与后端代码分离通常不是最佳实践。
关于混合不同版本的微服务--请参阅我在这里的文章以获得更多的上下文-- https://worklifenotes.com/2020/03/04/microservices-combinatorial-explosion-of-versions/。我目前正在开发一个工具来解决这个问题-- https://relizahub.com。本质上,我们会自动将不同的项目状态记录为“bundle”,然后将这些包作为整个堆栈版本控制的单一事实点。还有一些特定的工具可以将您的CI/CD路由到纠正包,包括手动和自动门的业务规则。
https://stackoverflow.com/questions/66885505
复制相似问题