12-Factor 读书笔记

方法论
1. 标准化流程自动配置;
2. 和OS划清界限,最大可移植性;
3. 适合部署云计算平台;
4. 开发环境和生产环境,差异最少化,并持续交付,敏捷开发。
5. 可在工具,架构,开发流程 不发生明显变化时,实现扩展。
     ==》 适用于 任意语言和后端服务开发的程序

哪12因子
1.基准代码
    共享一份基准代码,部署不同版本而已。即基准代码和应用之间是一一对应。
2.依赖(没有隐式依赖)
    一定通过依赖清单,确切地声明所有依赖项。
    同时,通过依赖隔离工具来确保做到这点。
    例如:python用 pip 作依赖声明,virtualenv作隔离 C 语言,autoconf和静态链接库。

3.配置(在环境中存储配置)
    指不同部署环境的差异,包括:DB, memcached, 证书,域名等,
    12-Factor推荐 将配置存储于环境变量中,隔离了代码 。
    识别方法:若基准代码开源,是否暴露敏感信息。

4.后端服务(把后端服务当附加资源)
    如: DB,消息队列 ,邮件发送服务,缓存系统。
    12-Factor应用不区别对待本地或第三方服务,都加附加资源。任意部署都应该可以在不进行任何代码改动的情况下,将本地MySQL数据库换成
第三方服务,仅需修改配置中资源地址。这些资源和他们附属的部署保持松耦合。

5.严格分离构建和运行

6.进程(以一个或我个无状态进程运行应用)
    无状态且无共享,用户session中的数据应该保存在诸如 memcached, Redis 这样带过期时间的缓存中。    -----> 易于添加并发,扩展方便。

7.端口绑定(来提供服务)

8.并发
    进程不需要守护进程或写入PID文件。不同的工作由不同的进程类型 负责。

9. 易处理(快速启动和优雅终止)
    优雅终止:拒绝新请求,处理完当前请求,然后退出。

10. 开发环境与线上环境等价
    缩小时间差异(几小时,甚至几分钟可部署);
    缩小人员差异(开发者密切参与部署,关注线上表现);
    缩小工具差异(尽量保证两环境的一致性);

11. 日志(当作事件流)
    发送到 splunk这样的日志索引及分析系统,或Hodoop数据存储系统。

12. 管理进程(如运行数据移植,数据库检查)
    应基于某个发行版本运行,一起发布,若带REPL Shell 更方便,如  PHP.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值