美文网首页编程笔记
应用程序十二要点解读

应用程序十二要点解读

作者: 老瓦在霸都 | 来源:发表于2020-09-25 22:59 被阅读0次

应用程序十二要点是Heroku 所提出的一种用于构建软件即服务应用程序的方法学,参见 https://12factor.net, 解读如下

  • 使用声明性格式进行设置自动化,以最小化新加入项目的开发者的时间和学习成本;
  • 与底层操作系统之间保持简洁的契约,在执行环境之间提供最大的可移植性;
  • 适合在现代云平台上部署,避免对服务器和系统管理的额外需求;
  • 最小化开发和生产之间的分歧,实现持续部署以实现最大灵活性;
  • 可以扩展而无需对工具,架构或开发实践进行重大更改。

具体12条目解读如下:

  1. Codebase 代码库
    One codebase tracked in revision control,many deploys
    用一个代码库进行版本控制和应用程序的多次部署,代码,配置,初始化数据都应该纳入版本管理,在统一的代码库中为代码,配置,数据,测试和部署脚本都建立独立的项目和模块

  2. Dependencies 依赖
    Explicitly declare and isolate dependencies
    显式声明和隔离依赖关系,通过maven ,gradle,scons 等构建工具明确声明所需要的够用的依赖项和版本号,避免版本冲突和循环依赖,象Java中臭名昭著的依赖黑洞就曾浪费了程序员大量的时间,SpringBoot 的 starter 依赖包就可以大大简化依赖配置。

  3. Config 配置 Store config in the environment
    配置和代码都是应用程序不可或缺的组成部分,可以存储配置在环境变量中或者与环境相关的配置文件,配置服务中,比如 application-dev.yml,application-lab.yml,application-bts.yml,application-prod.yml,这些配置文件不要和代码放在一起,建议放在不同的代码仓库中。

  4. Backing services 支持服务
    Treat backing services as attached resources
    将支持服务作为附加资源,不管你的后端数据库是 Oracle,MySQL 还是 PostgreSQL,消息队列是ActiveMQ,RabbitMQ 或是Kafaka ,你的上层应用程序无需做特殊处理,底层适配也很容易地切换不同的支持服务资源。

  5. Build,release,run 构建,发布和运行
    Strictly separate build and run stages
    严格区分构建,发布和运行阶段,开发人员的每次改动都会触发构建,但是发布是要经过严格的验收测试的,运行时的代码不允许任何随意修改,遵循构建发布和运行的流程。

  6. Processes 进程
    Execute the app as one or more stateless processes
    以一个或多个无状态进程来运行应用程序,状态应该保存在共享的缓存或数据库中,这样微服务可以任意启停,轻松升级和替换,也利于水平扩展。

  7. Port binding 端口绑定
    Export services via port binding
    通过端口绑定导出服务,也就是通过暴露独立的端口来提供服务,比如HTTP的80,HTTS的443,SIP的5060,不需要依赖于容器。

  8. Concurrency 并发
    Scale out via the process model 通过进程模型横向扩展。

  9. Disposability 一次性
    Maximize robustness with fast startup and graceful shutdown 通过快速启动和优雅退出来最大限度地提高健壮性。

  10. Dev/prod parity 相似的开发和产品环境
    Keep development,staging,and production as similar as possible 保持开发,测试和产品环境尽可能相似。

  11. Logs 日志
    Treat logs as event streams 将日志视为事件流。

  12. Admin processes 管理过程
    Run admin/management tasks as one-off processes 将管理/管理任务作为一次性进程运行。

相关文章

  • 应用程序十二要点解读

    应用程序十二要点是Heroku 所提出的一种用于构建软件即服务应用程序的方法学,参见 https://12fact...

  • “五招” 迅速提升你的流处理程序

    今天解读的内容是来自 Spark Summit East 2017 关于 Spark Streaming 应用程序...

  • 《雄安新区规划纲要》思维导图

    尝试一把用思维导图的方式解读雄安新区的要点内容。

  • Android 重签名

    原理 APK签名的要点 a.所有的应用程序都必须有数字证书 ,Android系统不会安装一个没有数字证书的应用程序...

  • FI 替代相关 Oss Note

    记录 FI substitution 相关 OSS Note 查看时自己关注的要点。并非翻译或全文解读。 4261...

  • 深度思考-解读动力机制(步骤2/4)-要点(2/4)

    深度思考-解读动力机制(步骤2/4)-要点2-非线性解读 目录 1. 总结 2. 不成比例的非线性 3. 案例分析...

  • 2020-11-23

    重疾改革 今天早上晶晶老师又跟我们解读了重疾改革,从目的到要点的解读,因为朋友圈里经常会被“四降一...

  • 网络分层

    1:应用层 规定应用程序的数据格式即数据协议,方便应用程序解读收到的传输层传来的数据。主要协议有:HTTP、FTP...

  • The Twelve Factors 十二因素方法学

    十二因素应用程序是一种用于构建软件即服务应用程序的方法学,参见 https://12factor.net 使用声明...

  • 十二星座解读

    白羊座 你很需要别人喜欢并尊重你。你有自我批判的倾向。你有许多可以成为你优势的能力没有发挥出来,同时你也有一些缺点...

网友评论

    本文标题:应用程序十二要点解读

    本文链接:https://www.haomeiwen.com/subject/xjpquktx.html