12 因素应用与云原生开发全解析
1. 12 因素应用原则
1.1 环境配置存储
应用程序在不同环境(如测试、预发布和生产环境)中的配置(如数据库、外部系统或凭证)应在运行时存在,且不应硬编码在源代码中,而应通过文件、环境变量或其他外部方式动态修改。例如,Kubernetes 的配置映射可用于存储不同环境的配置,并在 Pod 中以卷或环境变量的形式动态使用。
12 因素原则建议将配置存储在环境变量中,这是一种简单直接的方式,且所有技术都支持。但如果应用配置包含大量单独的值,工程师可以考虑使用容器卷中的配置文件。
1.2 附属服务视为附加资源
应用程序中访问的数据库和外部系统被视为资源,应与应用程序松耦合。外部系统和数据库应能在不影响应用程序的情况下被新实例替换。
应用程序通过使用 HTTP 或 JDBC 等通信技术抽象外部系统的实现,使系统能够被替换。容器编排框架进一步将服务抽象为逻辑名称,应用程序可以使用服务名称作为主机名,由 DNS 解析。
在代码层面,附属服务应抽象为独立组件,如具有清晰接口的单个控件,以减少附加资源变化时的修改。
1.3 严格分离构建和运行阶段
建议将应用程序的构建、部署和运行过程分离。这是 Java 企业开发人员熟知的方法,应用二进制文件的构建、部署和运行是分开的步骤。软件或配置更改应分别在源代码或部署步骤中进行,而不是直接在生产环境中进行。
部署步骤将应用二进制文件和潜在的配置结合在一起,明确定义的变更和发布管理流程可保持企业软件的完整性。对于大多数软件项目,在持续集成服务器中分离这些步骤并编排阶段是常
超级会员免费看
订阅专栏 解锁全文
1201

被折叠的 条评论
为什么被折叠?



