本文由 大侠(AhcaoZhu)原创,转载请声明。
链接: https://blog.csdn.net/Ahcao2008
开发、部署应用程序APP的【12要素原则】你顺便了解一下?
- ☘️摘要
- ☘️介绍
- ☘️背景
- ☘️谁应该阅读这份文件?
- ☘️十二要素原则
- 🌿I. 代码库 `Codebase`
- 🌿II. 依赖关系 `Dependencies`
- 🌿III. 配置 `Config`
- 🌿IV. 后台服务 `Backing services`
- 🌿V. 构建、发布、运行 `Build, release, run`
- 🌿VI.流程 `Processes`
- 🌿VII. 端口绑定 `Port binding`
- 🌿VIII. 并发性 `Concurrency`
- 🌿IX. 可处置性 `Disposability`
- 🌿X. 开发/生产奇偶校验 `Dev/prod parity`
- 🌿XI. 日志 `Logs`
- 🌿XII. 管理流程 `Admin processes`
- ☘️注释
☘️摘要
- 全文介绍开发、部署应用程序APP的【12要素原则】。
- 它来源于下列网站https://12factor.net/。
- 作者本人既不了解这是个什么东东,也不知其作用,只是觉得好有道理的样子😀😂😊
- 作者从来没有承认在进行所谓创作,
我不生产博文,我只是网络界的搬运工。
- 作者风格转变,属于此类文章偶发。不喜飘过,千万勿因看惯了作者垃圾文章、偶尔一篇精华有些不习惯而取关。【原创:AhcaoZhu大侠】
☘️介绍
在现代,软件通常作为服务
交付:称为web应用程序或软件即服务。十二要素
应用程序是一种构建软件即服务应用程序的方法,它:
- 使用声明式格式的设置自动化,以最大限度地减少新开发人员加入项目的时间和成本;
- 与底层操作系统有一个清晰的契约,在执行环境之间提供最大的可移植性; 适合部署在现代云平台上,避免了服务器和系统管理的需要;
- 最小化开发和生产之间的分歧,实现持续部署以获得最大的敏捷性; 并且可以在不需要对工具、架构或开发实践进行重大更改的情况下进行扩展。
- 十二因素方法可以应用于任何编程语言编写的应用程序,以及使用任何后台服务组合(数据库、队列、内存缓存等)的应用程序。
☘️背景
-
本文档1的贡献者直接参与了数百个应用程序的开发和部署,并通过我们在Heroku平台上的工作间接见证了数十万个应用程序的开发、运营和扩展。
-
本文综合了我们对各种各样的软件即服务应用程序的经验和观察。它是应用开发理想实践的三角测量法,特别关注应用随着时间的推移而有机增长的动态,开发人员在应用代码库上的合作动态,以及避免软件侵蚀的成本。
-
我们的动机是提高人们对现代应用程序开发中出现的一些系统性问题的认识,为讨论这些问题提供共享词汇表,并为这些问题提供一组广泛的概念性解决方案以及相关术语。该格式的灵感来自Martin Fowler的《企业应用程序架构模式与重构》2一书。
☘️谁应该阅读这份文件?
- 构建作为服务运行的应用程序的任何开发人员。
- 部署或管理此类应用程序的运维工程师。
☘️十二要素原则
🌿I. 代码库 Codebase
一个代码库在修订控制中被跟踪,许多部署
One codebase tracked in revision control, many deploys
🌿II. 依赖关系 Dependencies
显式声明和隔离依赖项
Explicitly declare and isolate dependencies
🌿III. 配置 Config
将配置存储在环境中
Store config in the environment
🌿IV. 后台服务 Backing services
将后台服务视为附加资源
Treat backing services as attached resources
🌿V. 构建、发布、运行 Build, release, run
严格分离构建和运行阶段
Strictly separate build and run stages
🌿VI.流程 Processes
将应用程序作为一个或多个无状态进程执行
Execute the app as one or more stateless processes
🌿VII. 端口绑定 Port binding
通过端口绑定导出服务
Export services via port binding
🌿VIII. 并发性 Concurrency
通过流程模型向外扩展
Scale out via the process model
🌿IX. 可处置性 Disposability
最大限度的鲁棒性与快速启动和优雅的关闭
Maximize robustness with fast startup and graceful shutdown
🌿X. 开发/生产奇偶校验 Dev/prod parity
尽可能保持开发、准备和生产相类似
Keep development, staging, and production as similar as possible
🌿XI. 日志 Logs
将日志视为事件流
Treat logs as event streams
🌿XII. 管理流程 Admin processes
将 admin/management 任务作为一次性进程运行
Run admin/management tasks as one-off processes
☘️注释
指原文,参见: 网站https://12factor.net/ ↩︎
《企业应用程序架构模式与重构》Patterns of Enterprise Application Architecture and Refactoring,by Martin Fowler ↩︎