云原生概述

news2024/10/7 2:29:37

1. 何谓云原生

云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。云原生(CloudNative)是一个组合词,Cloud+Native。Cloud表示应用程序位于云中,而不是传统的数据中心;Native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳姿势运行,充分利用和发挥云平台的弹性+分布式优势。

云原生可以概括为4个要点:DevOps+持续交付+微服务+容器

总而言之,符合云原生架构的应用程序应该是:采用开源堆栈(K8S+Docker)进行容器化,基于微服务架构提高灵活性和可维护性,借助敏捷方法、DevOps支持持续迭代和运维自动化,利用云平台设施实现弹性伸缩、动态调度、优化资源利用率。

软件设计有两个关键目标:高内聚、低耦合

2.云原生全景图

在这里插入图片描述

2.1 云原生全景图4 层

在这里插入图片描述

  • 供应层 (Provisioning)
    供应指的是为云原生应用准备标准基础环境所涉及的工具。它包含了基础设施的创建、管理、配置流程的自动化,以及容器镜像的扫描、签名和存储等。

  • 运行时层(Runtime)
    在 CNCF 云原生全景图中,运行时保障了容器化应用程序组件的运行和通信, 包括:

  • 云原生存储:为容器化应用提供虚拟磁盘或持久化存储;

  • 容器运行时:为容器提供隔离、资源和安全;

  • 云网络:分布式系统的节点(机器或进程)通过其连接和通信。

  • 编排和管理层(Orchestration and Management)
    编排和管理层将所有容器化服务(应用程序组件)作为一个群组管理。这些容器化服务需要相互识别和通信,并需要进行协调。这一层可为云原生应用提供自动化和弹性能力,使云原生应用天然具有可扩展性。
    这一层包含:

  • 编排和调度:部署和管理容器集群,确保它们具有弹性伸缩能力,相互之间低耦合,并且可扩展。事实上,编排工具(绝大多数情况下就是 Kubernetes)通过管理容器和操作环境构成了集群;

  • 协调和服务发现:使得服务(应用程序组件)之间可以相互定位和通信;

  • 远程进程调用(RPC):使跨节点服务间通信的技术;

  • 服务代理:服务间通信的中介。服务代理的唯一目的就是对服务之间的通信进行更多控制,而不会对通信本身添加任何内容。服务代理对下面将提到的服务网格(Service Mesh)至关重要。

  • API 网关:一个抽象层,外部应用可通过 API 网关进行通信;

  • Service Mesh:某种程度上类似于 API 网关,它是应用程序进行通信的专用基础架构层,提供基于策略的内部服务间通信。此外,它还可能包含流量加密、服务发现、应用程序监控等内容。

  • 应用定义和开发层
    应用定义和开发层,顾名思义,聚集了让工程师构建和运行应用程序的工具。这一层包括:

  • 数据库:使应用程序能以有序的方式收集数据;

  • 流和消息传递:使应用程序能发送和接收消息(事件和流)。它不是网络层,而是让消息成为队列并处理消息的工具;

  • 应用程序定义和镜像构建:用于配置、维护和运行容器镜像(应用程序的可执行文件)的服务;

  • 持续集成和持续交付(CI/CD):使开发者可自动测试代码是否与代码库(应用程序的其余部分)兼容。如果团队足够成熟,甚至可以自动部署代码到生产环境。

2.2 贯穿所有层的工具

云原生全景图右侧有贯穿所有层的两列,可观察性和分析(Observability&analysis)是监控各层的工具,平台则将各层中不同的技术捆绑为一个解决方案。

  • 可观察性和分析(Observability and Analysis)
    为了限制服务中断并降低解决问题的平均时间(MRRT),你需要监控和分析应用层序的方方面面,以便在出现异常时可立即发现并纠正。复杂环境中容易出现故障,这些工具可快速识别并解决故障,从而降低故障带来的影响。由于这一类别贯穿并监控各层,因此它在侧面,而不是嵌入到某一层中。

  • 日志工具:收集事件日志(有关进程的信息);

  • 监控方案:收集指标(以数字表示的系统参数,例如 RAM 可用性);

  • 追踪工具:追踪比监控更进了一步,它们监控用户请求的传播,与服务网格相关。

  • 混沌工程(Chaos Engineering):在生产环境中测试软件的工具,可识别缺陷并进行修复,减少其对服务交付的影响

  • 平台类(Platform)
    可以看到,图中每一个模块解决一个特定的问题。但我们知道,仅有存储并不能提供应用程序所需的全部功能。你还需要编排工具,容器运行时,服务发现,网络,API 网关等等。平台覆盖多层,将不同的工具组合在一起,以解决更大的问题。
    你可能会注意到,所有的类别都围绕着 Kubernetes 展开。这是因为 Kubernetes 虽然只是云原生景观图这张拼图中的一块,但它却是云原生技术栈的核心。顺便说一下,CNCF 刚创建时,Kubernetes 就是其中的第一个种子项目,后来才有了其他项目。
    平台可分为四类:

  • Kubernetes 发行版:采用未经修改的开放源代码(尽管有人对其进行了修改),并根据市场需要增加了其他功能;

  • 托管的 Kubernetes:类似于 Kubernetes 发行版,但是由提供商托管;

  • Kubernetes 安装程序:自动执行 Kubernetes 的安装和配置过程;

  • PaaS/容器服务:类似于托管的 Kubernetes,但是包含了一套更广泛的应用部署工具(通常是来自云原生景观图)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1119951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法学习 之 并查集

leecode 中这题就需要并查集 代码如下 typedef struct{int * parents;int * sizes; } UnionFind; // 下面建立一个初始化 UnionFind * NewUnionFind(int n){UnionFind * uf (UnionFind *) malloc(sizeof(UnionFind));uf->parents (int *) malloc (sizeof(int)*n);uf->s…

UGNX二次开发 实时查看 NX 日志文件

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 感谢粉丝订阅 感谢 a18037198459 订阅本专栏,非常感谢。 简介 实时查看 NX 日志文件,有助于分析保存时间等。打开WindowsPowerShell并实时获取日志文件内容的小功能。 效果 代…

使用CMS后台资源,如何在小程序上不开调试模式能正常呈现出内容

配置合法域名 如何配置合法域名: 1.找到自己的合法域名:在微信开发者工具中“不勾选"不校验合法域名,就会看到报错说你的某个链接不是合法域名,那不就说明我们需要将这个链接设置为合法域名嘛。这就找到了我们的需要设置的…

二叉树;二叉树的前序、中序、后序遍历及查找;顺序存储二叉树;线索化二叉树

数组、链表和树存储方式分析 对于树结构,不论是查找修改还是增加删除,效率都比较高,结合了链表和数组的优点,如以下的二叉树: 1、数组的第一个元素作为第一个节点 2、数组的第二个元素3比7小,放在7的左边…

Win10系统2023年10月更新补丁(KB5031356)后 IE11无法打开使用解决办法

原因: 官方更新的最新系统补丁已经永久禁用IE11了 以下是官方说明: 最好的办法是: (已验证可行~) 1, 禁用系统自动更新 (注册表 或者 设置->更新->高级选项 等等 自行禁用掉系统自动更新即可) 2, 卸载禁用IE的更新补丁KB5031356 控制面板>程序>程序和功能>…

深入理解main函数

深入理解main函数 第三个参数指向环境变量

基于人工兔优化的BP神经网络(分类应用) - 附代码

基于人工兔优化的BP神经网络(分类应用) - 附代码 文章目录 基于人工兔优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.人工兔优化BP神经网络3.1 BP神经网络参数设置3.2 人工兔算法应用 4.测试结果&#x…

Qt第六十六章:展示数据的标签

目录 一、效果图 二、qtDesigner ①拖出一个frame作为组容器并贴上背景样式 ②拖出主要的三个控件:frame、line、frame、label*2 ③固定大小并设置字体、布局一下 ④拷贝三份并水平布局一下 ⑤设置样式 ⑥调整布局 三、ui文件 四、代码 一、效果图 二、qtD…

java蓝桥杯前10题总结

文章目录 1.单词分析1.代码2.知识点 2.成绩统计1.代码2.知识点1.如何四舍五入?2.如何保留小数点后几位小数呢? 3.最短路4.回文日期1.代码2.知识点1.日期类2.字符串细节3.连等的细节 5.门牌制作1.代码 6.卡片1.代码2.细节 7.数字三角形1.代码2.细节 8.成绩…

《向量数据库》——向量数据库MIlvus Cloud携手发起 AGI 黑客松,解锁行业更多可能

携手发起 AGI 黑客松,解锁行业更多可能 不止如此,双方在深度合作的基础上,还联合极客公园 Founder Park、智谱 AI 等,共同发起 AGI Playground Hackathon,旨在重新思考 AI Native 时代下的应用和服务,解决共同的行业发展问题。届时,Dify 将为参赛者提供接入了智谱 AI 模…

Domino中的源代码管理工具

大家好,才是真的好。 上次Notes/Domino 14 Drop2发布的时候,我们就提到,HCL一起发布了一款源代码管理工具。 这里还是简单科普一下,源代码管理工具,可以实现代码版本控制、备份,还有多个程序员之间的协作…

【ROOTFS】1-构建rootfs与nfs调试

简介 rootfs这一块比较简单,别怕,基本就是拿一个busybox过来,然后编译一下,就可以在指定的目录下生成一堆文件夹和文件,你可以把这个当成rootfs了; busybox: https://busybox.net/ 教程文档 【链接】 b…

绿盾控制台如何给未授权终端分配相应权限

环境: 绿盾控制台7.0 问题描述: 绿盾控制台如何给未授权终端分配相应权限 解决方案: 1.进入桌面管理系统 2.通过终端号,找到未授权终端下面,选择相应的未授权终端 3.点击鼠标右键,选择分配授权模块 4.下…

进阶课2——语音分类

语音分类主要是对语音从不同的维度进行识别和分类,这些维度可以包括语种、性别、年龄段、情绪、说话人身份等,具体如下: 语种分类:根据发音人的母语或者惯用语言,将语音分为不同的语种,例如中文、英文、法…

【UnityUGUI】UGUI六大组件和三大基本控件详解

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:UI_…

用ChatGPT编写Excel函数公式进行表格数据处理分析,so easy!

在用Excel进行数据处理分析时,经常需要编写不同的公式,需要了解大量的函数。有了ChatGPT,就很简单了,直接用自然语言描述自己的需求,然后让ChatGPT写出公式就好了。 例子1: Excel某个单元格的内容是&#…

【鸿蒙软件开发】ArkTS常见组件之单选框Radio和切换按钮Toggle

文章目录 前言一、Radio单选框1.1 创建单选框1.2 添加Radio事件1.3 场景示例二、切换按钮Toggle2.1 创建切换按钮2.2 创建有子组件的Toggle2.3 自定义样式selectedColor属性switchPointColor属性 2.4 添加事件2.5 示例代码 总结 前言 Radio是单选框组件,通常用于提…

【深入探究Java集合框架】从List到Map的完整指南

文章目录 🌟 Java集合框架🍊 Collection🎉 List🎉 Set🎉 Map 🍊 集合的选择🎉 1. 有序并允许重复元素的集合 List🎉 2. 无序并且不允许重复元素的集合 Set🎉 3. 维护映射…

大语言模型(LLM)综述(一):大语言模型介绍

A Survey of Large Language Models 前言1. INTRODUCTION2. OVERVIEW2.1 大语言模型的背景2.2 GPT系列模型的技术演变 前言 随着人工智能和机器学习领域的迅速发展,语言模型已经从简单的词袋模型(Bag-of-Words)和N-gram模型演变为更为复杂和…

DVWA(一)

环境搭建 搭建DVWA Web渗透测试靶场_dvwa 白屏-CSDN博客 Brute Force(暴力破解) LOW 输入账号密码 burp suite拦截请求 请求发送至intruder attack type:选择cluster bomb,将用户名和密码Add添加 payload 1 添加用户名字典,payload 2 添…