首页 > 其他分享 >云原生十二要素应用​

云原生十二要素应用​

时间:2022-10-28 22:00:21浏览次数:64  
标签:原生 要素 服务 代码 十二 应用程序 应用 进程

      云原生改变了应用研发的模式,也带来了技术上的变革,促使我们需要考虑更多的运营治理的原则和方法。这里我们简要总结一下云原生架构经典的设计原则“12要素”原则。​

(1)基准代码∶一份基准代码、多份部署。​

企业一般会采用代码版本控制系统来跟踪管理所有修订版本的代码库,这样就只需要一份代码,却可以同时存在多份部署,如图1所示。每份部署相当于运行了一个应用的实例。​

云原生十二要素应用​_后端服务

图1一份基准代码多份部署​


(2)依赖显式声明依赖关系。​

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

(3)配置在环境中存储配置。​

十二要素应用推荐将应用的配置存储于环境变量中,如图2所示。这允许应用程序非常方便地在不同的部署间修改,而不需要改动一行代码。​

云原生十二要素应用​_应用程序_02

图2在环境中存储配置​

(4)后端服务把后端服务当作附加资源。​

后端服务是指程序运行所需要的通过网络调用的各种服务,符合规则的应用程序应该可以在不进行任何代码改动的情况下,将本地数据库切换至异地或者云上的数据库服务。​

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

基准代码通过构建、发布和运行三个阶段转化成一份部署。​

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

符合十二要素的应用程序的进程必须是无状态且无共享的。任何需要持久化的数据都需要存储在后端服务内。​

(7)端口绑定∶通过端口绑定提供服务。​

符合十二要素的应用程序可以自我加载而不依赖于任何网络服务器。​

(8)并发通过进程模型进行扩展。​

在十二要素应用中的进程主要借鉴了UNIX守护进程模型,不同的工作分配给不同类型的进程处理。​

(9)易处理∶快速启动和优雅终止,最大化健壮性。​

十二要素应用的进程是可分解的,它可以瞬间开启或者停止。这有利于快速、弹性伸缩应用,迅速部署变化的代码或配置。​

(10)开发环境与线上环境等价∶尽可能保持开发、预发布、线上环境相同。​

必须缩小本地和生产环境的差异,要求不同环境下的后端服务也要一致。​

(11)日志把日志当作事件流。​

日志使得应用程序运行的动作变得透明。在十二要素应用中则不应该考虑存储到自己的输出流,不应该试图去写或者管理日志文件。​

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

进程构成是指用来处理应用的常规业务的一组进程。这也是十二要素的要求∶一次性管理进程应该和正常的常驻进程使用同样的环境。这些管理进程和任何其他进程一样使用相同的代码和配置,基于某个发布版本运行。后台管理代码应该随其他应用程序代码一起发布,从而避免同步问题。​

在这些原则中,一个核心的运营治理思想是应用服务治理能力与业务逻辑解耦,解除之间的绑定,通过标准化的平台、服务、应用协议,将业务和技术的耦合进行有效的分离,并通过云原生容器、微服务、Service Mesh、Serverless 等得以实现,如服务通信、服务发现、流量转移、流量熔断和限流等,还可以通过日志监控等手段进行全链路追踪。这些代码库被构建在应用程序之外,通过云原生应用平台来加以管理。​



标签:原生,要素,服务,代码,十二,应用程序,应用,进程
From: https://blog.51cto.com/u_15735635/5805285

相关文章

  • 云原生十二要素应用
    云原生改变了应用研发的模式,也带来了技术上的变革,促使我们需要考虑更多的运营治理的原则和方法。这里我们简要总结一下云原生架构经典的设计原则“12要素”原则。(1)基准代......
  • 实现云原生模式
    云原生基础架构由应用程序来维护,而云原生应用则由基础架构来维护,两者密不可分。这就要求基础架构和应用程序设计必须是简单的。如果一个应用程序比较复杂,则应该采用微服务......
  • 【拥有新时代的通信协议,引领云原生迈向更高的舞台】解密Dubbo3是如何从微服务升华到云
    感谢2020云原生微服务给我带来了云原生的希望!Dubbo3拥抱云原生升级总体路线我们会侧重于下面红色填充的部分,针对于Dubbo3云原生技术的领域的探索和研究:看Dubbo3带来了什么?要......
  • #yyds干货盘点# 前端歌谣的刷题之路-第一百四十二题-单列布局
     前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了......
  • 云原生下的DevOps开发流程​
    基础架构是敏捷的,云原生应用的开发部署过程是敏捷的过程。DevOps是开发(Development)和运维(Operations)的组合词,它是一种重视软件开发人员和IT运维技术人员之间沟通合作的文化......
  • Go 云原生实战:如何增加 Web 应用配置模块
    1介绍当我们为自己编写程序时,通常会将一些重要的配置项直接写在源代码里,比如:服务器监听的端口、数据库使用的名称和端口号、HTTP请求超时的持续时间...但是,如果我们尝试将......
  • SpringCloud怎么迈向云原生?
    很多公司由于历史原因,都会有自研的RPC框架。尤其是在2015-2017期间,SpringCloud刚刚面世,Dubbo停止维护多年,很多公司在设计自己的RPC框架时,都会基于SpringCloud做二次开发......
  • Node原生开发Web服务器介绍
     1.  使用Node创建一个HTTP的服务器,并能够接收到客服端发来的请求获取到客服端具体的请求数据,并根据不同的请求数据进行处理将处理之后的结果,响应回客户端,并断......
  • 全嘉宾阵容官宣 | 2022 云原生峰会即将启动,实战派企业向你发出邀请
    作者:云原生峰会小组今天,企业应用构建依然面临很大挑战,资源如何按需使用,实现降本增效?如何在复杂系统架构下,充分保障业务稳定和连续性?如何做到应用的敏捷和业务的智能化?如何保......
  • 2022云原生峰会开启报名 | 一年一度云原生技术风向标就看这里!
    一年一度云原生技术风向标云原生峰会,来了!2022年11月5日,杭州云栖小镇锁定云栖大会,预约云原生峰会去年云栖大会,阿里云面向业界提出:“阿里巴巴实现了全球最大规模的云原生......