开发云原生应用应遵循的十二要素

这篇具有很好参考价值的文章主要介绍了开发云原生应用应遵循的十二要素。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 代码库:一份版本控制下的基准代码库,多份部署

应用程序的源代码仓库应该只包含一个应用程序,并列出它所依赖的资源清单。对于不同的环境,我们应该不需要重新编译或打包应用程序。每个环境中特有的设置应该与代码无关

  1. 依赖:显示声明和隔离依赖关系

应该显式地声明应用程序的依赖关系,并且可以通过依赖项管理软件(如Apache Maven)的仓库,下载任意或所有的依赖关系。

  1. 配置:在环境中存储配置

应用程序的代码应用配置严格区分开来。程序的配置应用各个环境各自管理。

开发云原生应用应遵循的十二要素

  1. 后端服务:把后端服务作为附加资源

后端服务是十二要素程序正常运行所需要依赖的任何服务。举例说明,后端服务包括数据库、API驱动的RESTful Web服务、SMTP服务器或FTP服务器。
后端服务被认为是应用程序的某种资源。这些资源在运行期间被绑定到应用程序上。十二要素程序应该在无须代码改动的前提下,可以从一个测试环境中的嵌入式SQL数据库,切换到预发布环境下的一个独立MySQL数据库。

  1. 构建、发布、运行:严格分离构建和运行阶段

构建阶段


构建阶段将应用程序的源代码编译或打包到一个程序包中。创建的包被称为一次构建物。

将应用源代码打包。

发布阶段


发布阶段需要将某次构建与其配置相结合。随后,创建出的发布文件应该可以在某个执行环境中运行。无论是使用版本号还是时间戳,每个版本应该有一个唯一的标识符。每个发布文件都应该被添加到一个目录中,可以通过发布管理工具回滚到之前的发布版本。

构建包+环境配置组成一个发布文件。

运行阶段


运行阶段(通常称为运行时)是指在可执行环境中运行一个指定的应用版本。
通过将这些阶段分成独立的流程,在运行时就完全不可能去更改任何程序代码。更改应用程序代码的唯一方法,就是通过构建阶段来创建一个新的版本,或者回滚到之前部署的某个版本。

将发布文件运行。

  1. 进程:将应用程序作为一个或多个无状态进程执行

无状态进程方便程序扩缩容。

  1. 端口绑定:通过端口绑定暴露服务

十二要素程序本身是完全独立的,其运行不需要依托于任何的web容器,就可以对外提供web服务能力。每个应用程序通过将自身HTTP端口绑定到执行环境中来对外提供访问能力。

  1. 并发:通过进程模型扩展

十二要素程序必须能够水平扩展,并且能够将请求分发到负载均衡背后的多个程序实例处理。在保证程序无状态的前提下,我们可以通过增加多个节点来水平扩展程序的处理能力。

除增加进程水平扩展的方式,我们还可以通过增加线程来并行处理任务的方式提升程序的数据处理能力。

  1. 易处理:通过快速启动和正常关机来最大限度的提高健壮性

应用程序应该是可以快速启停的,快速启动从而不影响程序的整体可用性;在执行的任意时刻可以终止,并且能够优雅的释放线程以适应程序高频次迭代的需求。

  1. 开发/生产环境一致:尽可能的保持开发、预发布和生产环境的配置一致

应防止不同环境之间存在的差异。每个环境应尽可能使用相同的技术和框架,避免因细小的意外差异导致不一致的行为出现。

  1. 日志:将日志视为事件流

十二要素程序将写日志看作到标准输出的一个有序的事件流。应用程序不应负责管理自身日志文件的存储。应用程序日志输出的收集和归档工作应该由运行环境来完成。

  1. 管理进程:将管理任务作为一次性进程运行

有时,应用程序的开发人员需要运行一次性的管理任务。这类任务可能包括数据库迁移或运行已提交到源代码仓库中的一次性脚本。这些都被认为是管理进程。管理进程应该在应用程序的执行环境中运行,并将脚本提交到代码仓库中,以便保持各个环境之间的一致性。

数据库脚本等提交到代码仓库做版本管理。

 文章来源地址https://www.toymoban.com/news/detail-489963.html

到了这里,关于开发云原生应用应遵循的十二要素的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32开发(十二)STM32F103 功能应用 —— NTC 温度采集

    👈《上一篇》  🏡《主目录》  👉《下一篇》 了解STM32 片内资源ADC。本实验是基于STM32F103开发 实现 NTC温度采集。 NTC温度采集实现: 1、使用查表方式。可参考

    2024年02月03日
    浏览(45)
  • 云原生应用开发框架系列

    作者:禅与计算机程序设计艺术 随着互联网的飞速发展,互联网软件服务的复杂性也越来越高,服务的可靠性、可用性、伸缩性也面临着更加严峻的考验。为应对这一挑战,云计算技术已经成为构建分布式和弹性化的软件服务的关键手段。而Kubernetes、OpenShift等开源项目帮助

    2024年02月08日
    浏览(55)
  • 鸿蒙原生应用/元服务开发-代理提醒开发步骤(二)

    1.申请ohos.permission.PUBLISH_AGENT_REMINDER权限。 2.使能通知开关。获得用户授权后,才能使用代理提醒功能。 3.导入模块。 4.定义目标提醒代理。开发者根据实际需要,选择定义如下类型的提醒。 定义倒计时实例。 定义日历实例。 定义闹钟实例。 5.发布相应的提醒代理。代理发布

    2024年01月16日
    浏览(56)
  • 鸿蒙原生应用/元服务开发-延迟任务开发实现(二)

    接口名 接口描述 startWork(work: WorkInfo): void; 申请延迟任务 stopWork(work: WorkInfo, needCancel?: boolean): void; 取消延迟任务 getWorkStatus(workId: number, callback: AsyncCallback): void; 获取延迟任务状态(Callback形式) getWorkStatus(workId: number): Promise; 获取延迟任务状态(Promise形式) obtainAllWorks(callba

    2024年01月18日
    浏览(57)
  • 鸿蒙原生开发-仿ChatGPT应用实战

    运行环境 DAYU200:4.0.10.16 SDK:4.0.10.15 IDE:4.0.600 前言 在配置好环境之后,可以尝试这编写一个较为简单的应用程序练练手,这里选择使用一个免费的API接口网站 ALAPI来尝试编写一个可进行对话的GPT应用程序。 创建项目 创建好项目之后可以先把helloworld的demo在真机上跑一下,注

    2024年01月24日
    浏览(58)
  • HarmonyOS鸿蒙原生应用开发设计- 隐私声明

    HarmonyOS设计文档中,为大家提供了独特的隐私声明,开发者可以根据需要直接引用。 开发者直接使用官方提供的隐私声明内容,既可以符合HarmonyOS原生应用的开发上架运营规范,又可以防止使用别人的内容产生的侵权意外情况等,减少自主创作隐私声明的工作量。当然,如果

    2024年02月05日
    浏览(68)
  • 鸿蒙原生应用/元服务开发-延迟任务说明(一)

    一、功能介绍 应用退至后台后,需要执行实时性要求不高的任务,例如有网络时不定期主动获取邮件等,可以使用延迟任务。当应用满足设定条件(包括网络类型、充电类型、存储状态、电池状态、定时状态等)时,将任务添加到执行队列,系统会根据内存、功耗、设备温度

    2024年01月19日
    浏览(53)
  • HarmonyOS鸿蒙原生应用开发设计- 流转图标

    HarmonyOS设计文档中,为大家提供了独特的流转图标,开发者可以根据需要直接引用。 开发者直接使用官方提供的流转图标内容,既可以符合HarmonyOS原生应用的开发上架运营规范,又可以防止使用别人的图标侵权意外情况等,减少自主创作流转图标的工作量。当然,如果有个性

    2024年02月07日
    浏览(66)
  • HarmonyOS鸿蒙原生应用开发设计- 图标库

    HarmonyOS设计文档中,为大家提供了独特的图标库,开发者可以根据需要直接引用。 图标库可以分为双色图标、填充图标、线性图标。具体分为 键盘、箭头、连接状态、媒体、人、设备、索引、通信、文件、物体与工具等。 整体分类 开发者直接使用官方提供的图标库内容,既

    2024年02月07日
    浏览(65)
  • 云原生和Kubernetes如何简化应用程序开发

    在谈论当前技术时,“云计算”正变得非常普遍,作为开发人员,将会继续体验使用云计算应用程序的优势;在云计算中,另一个正在出现的术语是云原生。在进入实际话题之前,首先了解一下云原生到底是什么。 深入了解云原生应用 现在,世界各地的公司都了解云计算应用

    2024年01月24日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包