Intro
我正在开发一个具有不同部署环境的应用程序:
我知道新版本的开发是在DEV中进行的,它被推到UAT进行测试,然后被推到PROD以供实际使用。不同的环境用于确保开发人员能够在不影响应用程序的实际用户的情况下进行操作和出错。
然而,当需要“修补程序”(=需要紧急修复的bug)时,我有点困惑。一位同事告诉我,在这种情况下,PROD环境的代码是“分支”的,并被推到了DEV。当bug被固定在dev上时,分支会被进一步推送到UAT,并最终再次触发。即使DEV的下一个版本已经有了一些进展,但是这个工作仍然不会丢失,因为“修补程序”是在另一个“分支”上完成的。
问题
关于部署环境和代码分支之间的区别,下面的理解是正确的吗?
因此,区别主要在于部署环境在纯“代码”之上具有数据库和计算能力。
发布于 2022-06-05 16:43:42
你几乎是对的。分支-often是一个git分支-是在某个时间点从代码基中提取的一个叉/拷贝。在您的例子中,您的分支"hotfix“是来自"master”分支的副本。您可以根据需要修改代码,然后将其合并回"master“。
部署环境是代码库-specific分支实例运行的地方。它在物理机器功能和配置变量方面有所不同。
数据库凭据(URL、用户名和密码)是一个很好的例子,因为每个部署都应该处理自己的数据。外部API的键和访问令牌应该作为环境变量保存,而在代码库中,您尝试从环境读取它。
这样,如果您的应用程序创建订单->调用支付网关API ->向客户->发送电子邮件等,则在开发过程中您将调用沙箱API,而不是采取付款和发送电子邮件的实际操作。而且开发人员不知道其他服务的真实凭证或访问密钥。
12因子app会给你更多满意的知识。
https://stackoverflow.com/questions/71926641
复制相似问题