zoukankan      html  css  js  c++  java
  • 十二要素应用

    十二要素

    (1)一份基准代码(Codebase),多份部署(Deploy)

    (2)显式声明依赖关系(Dependency)

    应用程序不会隐式依赖系统级类库。它一定通过依赖清单确切地声明所有依赖项。

    (3)在环境中存储配置

    将应用程序的配置存储于环境变量中

    (4)把后端服务(backing services)当作附加资源

    后端服务是指程序运行所需要的通过网络调用的各种服务,如数据库,消息队列等

    (5)严格分离构建、发布和运行

    基准代码通过构建、发布和运行三个阶段转化成一份部署。构建阶段是指将代码进行编译、打包等操作,生成可执行文件。

    (6)以同一个或者多个无状态进程运行应用

    符合十二要素的应用程序的进程必须是无状态且无共享的。任何需要持久化的数据都需要存储在后端服务内。例如Apereo CAS,所有认证的Ticket均保存在后端数据库中,如memcached集群。而需要处理的是session状态,这个也是需要通过后端memcached或者redis进行统一存储,或者通过前端负载均衡粘性路由到同一个应用进程中。

    (7)通过端口绑定(Port binding)来提供服务

    (Port binding)来提供服务。

    (8)通过进程模型进行扩展

    在十二要素应用中的进程主要借鉴了UNIX守护进程模型,不同的工作分配给不同类型的进程处理。尤其是无共享、水平分区的特性让并发处理更加简单。十二要素应用的进程不需要守护进程,也不需要写入PID文件,而是借助操作系统的进程管理器(如systemd)进行输出流控制、进程崩溃响应,以及进程的重启和关闭的请求。

    (9)快速启动和优雅终止可最大化健壮性

    (10)尽可能地保持开发、预发布和线上环境相同

    (11)把日志当作事件流

    (12)后台管理任务当作一次性进程运行。

    参考:《云原生架构进阶实战》

     

     

    不要小瞧女程序员
  • 相关阅读:
    学校的SQLServer的笔记
    Javaの集合学习
    XML的学习
    Java中学校没学过的东西
    MySQL的学习
    牛顿法及其收敛性
    c++编码规范
    C++标准库
    MATLAB编程技巧
    Matlab学习记录(函数)
  • 原文地址:https://www.cnblogs.com/shix0909/p/15396735.html
Copyright © 2011-2022 走看看