返回介绍

2.1 云原生特性

发布于 2024-09-25 23:59:27 字数 1604 浏览 0 评论 0 收藏 0

云原生架构的特性

  • 以云为基础架构 IAAS
  • 云服务 PAAS+SAAS
  • 无服务器架构
  • 可扩展:扩展策略有根据资源、时间段、消息队列长度、业务参数和预测。
  • 高可用
  • 敏捷
  • 云优先

12-Factor 十二要素

2011 年,Heroku 的联合创始人 Adam Wiggins 根据针对上百万应用托管和运维的经验,发布了著名的 “十二要素应用宣言(The Twelve-Factor App)”。

12-Factor 为构建如下的 SaaS(软件即服务) 应用提供了方法论(目标):

  • 使用标准化流程自动配置,从而使新的开发者花费最少的学习成本加入这个项目。
  • 和操作系统之间尽可能的划清界限,在各个系统中提供最大的可移植性。
  • 适合部署在现代的云计算平台,从而在服务器和系统管理方面节省资源。
  • 将开发环境和生产环境的差异降至最低,并使用持续交付实施敏捷开发。
  • 可以在工具、架构和开发流程不发生明显变化的前提下实现扩展。
  • 这套理论适用于任意语言和后端服务(数据库、消息队列、缓存等)开发的应用程序。

十二要素详解

  1. 基准代码:一份基准代码(Codebase),多份部署(deploy)。通常会使用版本控制系统加以管理,如 Git, Mercurial, Subversion。

  2. 依赖:显式声明依赖关系(dependency), 如 maven 或 setup.py

  3. 配置:在环境中存储配置。判断一个应用是否正确地将配置排除在代码之外,一个简单的方法是看该应用的基准代码是否可以立刻开源,而不用担心会暴露任何敏感的信息。12-Factor 推荐将应用的配置存储于 环境变量 中( env vars, env )。

  4. 后端服务:把后端服务(backing services) 当作附加资源。部署可以按需加载或卸载资源。

  5. 构建,发布,运行:严格分离构建和运行。

  6. 进程:以一个或多个无状态进程运行应用。任何需要持久化的数据都要存储在 后端服务 内,比如数据库。

  7. 端口绑定:通过端口绑定(Port binding) 来提供服务。12-Factor 应用完全自我加载 而不依赖于任何网络服务器就可以创建一个面向网络的服务。互联网应用 通过端口绑定来提供服务 ,并监听发送至该端口的请求。

  8. 并发:通过进程模型进行扩展。

  9. 易处理:快速启动和优雅终止可最大化健壮性。易处理(disposable)的,意思是说它们可以瞬间开启或停止。这有利于快速、弹性的伸缩应用,迅速部署变化的 代码 或 配置 ,稳健的部署应用。

  10. 开发环境与线上环境等价:尽可能的保持开发,预发布,线上环境相同。缩小时间、人员和工具差异。

  11. 日志:把日志当作事件流。

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文