云原生十五要素
2019-05-15 本文已影响0人
陈sir的知识图谱
基准代码
同一应用对应同一套基准代码,并且能够多次部署。部署到不同环境的应用其代码应该是相同,不同的仅仅是配置。
依赖
显示生命第三方依赖 (maven gradle)
配置
将配置存储在环境变量中。
后端服务
后端服务作为松耦合的资源,后端服务指通过网络远程调用的服务,比如数据库,缓存,消息中间件等。要求不应该区别对待本地服务和远程服务。都属于附加资源
构建发布运行
严格分离构建阶段与运行阶段
构建是将软件打包成二进制的过程,运行指在执行环境启动一些列应用程序进程。
禁止在运行阶段改动代码。
进程
将应用作为无状态的进程运行
端口绑定
通过端口绑定对外发布服务,应用对于发布服务的环境不应该有过多要求,不需要依赖云平台提供应用运行容器,只需要云平台分配一个对外发布的端口即可。(即通过内嵌jetty tomcat 来避免运行容器)
并发
能够通过水平伸缩应用程序来实现并发
已处理
开一快速启动和优雅关闭,一句话概括(docker)
开发环境与线上环境等价
日志
使用事件流处理日志(ELK)
管理进程
将后台管理任务当作一次性进程运行
优先考虑 API设计
通过遥测感知系统状态
认证和授权
OAUTH2 RBAC