gydtep
发表于 2021-10-31 10:37:08
依赖——显式声明依赖关系(Dependency)
12-Factor 规则下的应用程序不会隐式依赖系统级的类库。它一定通过依赖清单,确切地声明所有依赖项。大多数编程语言都会提供一个打包系统,比如 java 使用 maven ,应用依赖了哪些第三方库,要显示地定义在 POM 文件里。
gydtep
发表于 2021-10-31 12:52:53
配置:在环境中存储配置
配置要和代码完全分离,环境变量可以非常方便地在不同的部署间做修改,却不动一行代码。配置主要包括数据库信息,缓存信息,第三方服务证书,每份部署特有的配置,如域名等信息。
gydtep
发表于 2021-10-31 14:48:25
判断一个应用是否正确地将配置排除在代码之外,一个简单的方法,看该应用的基准代码是否可以立刻开源,而不用担心会暴露任何敏感的信息。
4、 后端服务:把后端服务当作附加资源
gydtep
发表于 2021-10-31 15:12:11
基准代码 转化为一份部署(非开发环境)需要以下三个阶段:
构建阶段,将代码仓库转化为可执行包的过程。构建时会使用指定版本的代码,获取和打包依赖项,编译成二进制文件和资源文件。
gydtep
发表于 2021-10-31 16:08:13
发布阶段,将构建的结果和当前部署所需配置相结合,并能够立刻在运行环境中投入使用。
运行阶段(“运行时”),针对选定的发布版本,在执行环境中启动一系列应用程序进程。
gydtep
发表于 2021-10-31 18:35:57
每一个发布版本必须对应一个唯一的发布 ID,一旦发布就不可修改,任何的变动都应该产生一个新的发布版本。另外,发布管理工具需要能方便的回退至较旧的发布版本。
gydtep
发表于 2021-10-31 19:10:29
进程:以一个或多个无状态进程运行应用
运行环境中,应用程序通常是以一个和多个进程运行的。12-Factor应用的进程必须无状态且无共享,任何需要持久化的数据都要存储在后端服务内,比如数据库或缓存。
gydtep
发表于 2021-11-1 11:53:48
ACM(应用配置管理),是一款应用配置中心产品,实现在微服务、DevOps、大数据等场景下的 分布式配置服务,保证配置的安全合规。
gydtep
发表于 2021-11-1 15:59:21
消息队列 RocketMQ 版是阿里云基于 Apache RocketMQ 构建的低延迟、高并发、高可用、高可 靠的分布式消息中间件。该产品最初由阿里巴巴自研并捐赠给 Apache 基金会,服务于阿里集团 13 年, 覆盖全集团所有业务,支撑千万级并发、万亿级数据洪峰,历年刷新全球最大的交易消息流转记录。
gydtep
发表于 2021-11-2 10:19:45
虽然亚马逊、苹果和谷歌等公司推出了智能音箱,使人工智能已经出现在家庭中,但越来越多的消费者群体希望人工智能技术在智能家居技术得到成功应用。
从幻想到现实的转变