title | date |
---|---|
云原生十二要素 |
2019-11-26 04:12:57 -0800 |
这十二要素是由业界大神共同总结而出的,易用易懂。
即为每个 app 都要建立一个 Git 库。
App 应使用适当的工具来进行依赖显示声明,如 Maven、Gradle、NPM、Go Mudule 等。
随发布环境而变化的配置(如生产、测试、开发环境),应使用操作系统的环境变量注入。
后端服务,如数据库、消息中间件等应视为附加资源, 并在所有环境中同等看待
构建一个可部署的app组件并将它与配置绑定,根据这个组件/配置的组合来启动一个或者多个进程,这两个阶段是严格分离的。
一个或者多个无状态进程之间不需要共享任何状态信息。任何需要的状态都置于后端服务(例如cache、对象存储等)
该应用程序是独立的,并通过端口绑定(包括HTTP、负载均衡)导出任何/所有服务。
并发通常通过水平扩展应用程序进程来实现。
通过快速启动和优雅的终止进程,可以最大程度上的实现鲁棒性。这些方面允许快速弹性缩放、部署更改和从崩溃中恢复。
通过保持开发环境、测试环境和生产环境尽可能的相同来实现持续交付和部署。
不管理日志文件,将日志视为事件流,允许执行环境通过集中式服务收集、聚合、索引和分析事件。
行政或管理类任务(如数据库迁移),应该在与app长期运行的相同的环境中一次性完成。