云原生技术演进之路-(云技术如何一步步演进的,云原生解决了什么问题?)

云技术如何一步步演进的?
云原生解决了什么问题?

物理设备

电脑刚被发明的时候,还没有网络,每个电脑(PC),就是一个单机。
看懂云计算、虚拟化和容器,这一篇就够啦

这台单机,包括CPU、内存、硬盘、显卡等硬件。用户在单机上,安装操作系统和应用软件,完成自己的工作。

后来,有了网络,单机与单机之间,可以交换信息,协同工作。

看懂云计算、虚拟化和容器,这一篇就够啦
再后来,单机性能越来越强,就有了服务器(Server)。把一些服务器集中起来,放在机房里,然后让用户通过网络,去访问和使用机房里的计算机资源。
请添加图片描述

再后来,小型网络变成了大型网络,就有了互联网(Internet)。小型机房变成了大型机房,就有了IDC(Internet Data Center,互联网数据中心)。
当越来越多的计算机资源和应用服务被集中起来,就变成了——“云计算(Cloud Computing)”。无数的大型机房,就成了“云端”。
请添加图片描述

虚拟化

如果要对物理资源进行管理,第一步,就是“虚拟化”。

虚拟化是云计算的基础。简单来说,虚拟化就是在一台物理服务器上,运行多台“虚拟服务器”。这种虚拟服务器,也叫虚拟机(VM,Virtual Machine)。

直接使用物理设备的缺陷:

  1. 缺乏灵活性
  • 时间灵活性:生产或销毁资源、资源扩容、物理设备的供给流程及设备到货后的安装部署冗长;
  • 空间灵活性:可获取到的资源规模大小不够灵活,如为应对计算资源峰值购买大量设备;
  • 操作灵活性:设备上架、安装、配置都需要人工完成大量工作,大量的设备集群运维工作。
  1. 隔离性差:为了提高资源利用率,可能会将多个服务部署到同一个物理设备上,这可能会导致多个服务之间相互干扰、隔离性差,严重时甚至会造成安全问题。
  2. 不可复制:当一个物理设备上的应用需要扩展时,只能在增加物理设备后,再做一遍物理资源配置、应用发布、网络配置等重复性工作,无法快捷地实现对应用的复制和粘贴。

从表面来看,这些虚拟机都是独立的服务器,但实际上,它们共享物理服务器的CPU、内存、硬件、网卡等资源。
在这里插入图片描述请添加图片描述

虚拟机监视器可以对捕获的特权指令进行替换操作,从而完整地模拟出某个虚拟机监视器下的特权操作。“陷阱+模拟”机制从本质上保证了可影响虚拟机监视器正常运行的指令由虚拟机监视器模拟执行,而大部分非敏感指令还是照常运行在物理CPU上。
请添加图片描述

简单来说,虚拟化就是通过模仿下层原有的功能模块创造接口来“欺骗”上层的机制。通常的做法是在整个系统架构中增加一个抽象层,负责分割下层的物理资源,然后组合成逻辑资源供上层使用。

云计算

直接使用虚拟机的缺陷:

  • 时间灵活性:虚拟化服务并非随时可用,同时虚拟化的过程还需要比较复杂的人工配置,随着集群规模的扩大,人工配置愈加复杂、耗时。所以,仅通过虚拟化软件管理的物理服务器规模并不是特别大,一般是几十台至百台的规模。

  • 空间灵活性:缺乏分布式部署,无法实现资源弹性扩展。当用户数量增多时,虚拟化软件所能管理的集群规模远未达到理想的程度,很可能造成资源不够。所以,随着对集群规模的需求越来越大,必须采取自动化的流程来实现资源弹性扩展。

  • 操作灵活性:缺乏统一的自动化管理。虽然创建一台虚拟机的过程相对较为基础,但是操作的灵活性意味着用户可以更方便、迅速地对资源进行更进一步的管理操作,所有操作都可以通过自动化脚本来实现。

云计算的目标,就是解决这三大灵活性的问题。云控制平台通过调度器(Scheduler)来管理由几千台物理服务器抽象而来的虚拟资源池,无论用户需要多少CPU、内存、硬盘资源的虚拟机,调度器都会自动在资源池中匹配到最合适的资源,通过虚拟机的形式供给资源,并做好配置。这个阶段我们称为“池化”或者“云化”。虚拟化的能力和灵活性到了这个阶段,才可以被称为“云计算”,在这之前都只能叫作“虚拟化”。

什么是云计算?

云计算指IT基础设施的交付和使用模式,用户可以通过网络,以按需、易扩展的方式获得所需计算机资源。

第一层次,是最底层的硬件资源,主要包括CPU(计算资源),硬盘(存储资源),还有网卡(网络资源)等。

第二层次,用户不直接使用CPU、硬盘、网卡,厂商把操作系统(例如Windows、Linux)装好,把数据库软件装好,用户直接使用。

第三层次,厂商不但要装好操作系统这些基本的,还要把具体的应用软件装好,例如FTP服务端软件、在线视频服务端软件等,用户可以直接使用服务。

IaaS: Infrastructure-as-a-Service(基础设施即服务)

用户可以通过管理页面或者API创建一台EC2实例(虚拟机),然后直接通过浏览器或者通过SSH客户端登录控制台,而不再需要考虑物理服务器购买、网络的布线、操作系统安装等烦琐的传统IT基础运维工作。
请添加图片描述
请添加图片描述

PaaS: Platform-as-a-Service(平台即服务)

它直接为用户提供一套平台,包括语言运行环境、编程框架及数据存储中间件等一系列功能。这个平台可以是Java开发平台,用户只需要在遵守平台开发规范的前提下,编写自己的业务代码,单击运行,平台就会自动完成代码编译和打包,以及程序所需的数据存储(例如MySQL),即通过调用SDK或者API就可以使用平台,使得用户可以更加关注自己的业务代码的编写。
请添加图片描述

SaaS: Software-as-a-Service(软件即服务)

它是最高层的抽象,对于最终用户,它不关心任何技术相关内容,以服务的方式交付。我们使用的在线云编辑器就是一种SaaS服务,只需要通过浏览器就可以在线编辑Word或者PPT,并且可以云端保存,而且只要在能够连接到互联网的情况下,都可以编辑,用户不需要关心背后的实现细节。SaaS将应用的最终形态直接交付使用者,向用户暴露更少的技术细节。

看懂云计算、虚拟化和容器,这一篇就够啦

容器化

使用虚拟化一段时间后,发现它存在一些问题:不同的用户,有时候只是希望运行各自的一些简单程序,跑一个小进程。为了不相互影响,就要建立虚拟机。如果建虚拟机,显然浪费就会有点大,而且操作也比较复杂,花费时间也会比较长。而且,有的时候,想要迁移自己的服务程序,就要迁移整个虚拟机。显然,迁移过程也会很复杂。所以就引入了“容器(Container)”。
请添加图片描述

容器也是虚拟化,但是属于“轻量级”的虚拟化。它的目的和虚拟机一样,都是为了创造“隔离环境”。但是,它又和虚拟机有很大的不同——虚拟机是操作系统级别的资源隔离,而容器本质上是进程级的资源隔离。

容器与传统虚拟机的对比

  1. 传统虚拟机是需要安装整个操作系统的,然后再在上面安装业务应用,启动应用,通常需要几分钟去启动应用,而容器是直接使用镜像来运行业务容器的,其容器启动属于秒级别;
  2. 容器需要的资源更少,容器在操作系统级别进行虚拟化,容器容器和内核交互,几乎没有性能损耗,而虚拟机运行着整个操作系统,占用物理机的资源就比较多;
  3. 容器更轻量,容器(docker)的架构可以共用一个内核与共享应用程序库(yum),所占内存极小;同样的硬件环境,容器运行的镜像数远多于虚拟机数量,对系统的利用率非常高;
  4. 隔离级别,与虚拟机相比,容器隔离性更弱,属于进程之间的隔离,虚拟机可实现系统级别隔离;
  5. 容器的安全性也更弱,容器的租户root和宿主机root相同,一旦容器内的用户从普通用户权限提升为root权限,它就直接具备了宿主机的root权限,进而可进行无限制的操作。虚拟机租户root权限和宿主机的root虚拟机权限是分离的,可以防止虚拟机突破和彼此交互,而容器至今还没有任何形式的硬件隔离;
  6. 虚拟化创建是分钟级别的,容器创建是秒级别的,容器的快速迭代性,决定了无论是开发、测试、部署都可以节省大量时间;

云原生是什么?

Pivotal最新官网对云原生概括可以具体化为4个要点:DevOps+持续交付+微服务+容器,一种构建和运行应用程序的方法。
请添加图片描述

微服务:微服务的关键优势在于可组合性,将应用分解为一组更小的轻量级服务,而这些服务可通过应用编程接口 (API) 轻松组合并相互连接。

容器和编排:容器是轻量级的可执行组件,包含在任何环境中运行代码所需的所有元素(包括应用源代码和依赖项)。容器提供工作负载可移植性,支持“一次构建、随处运行”的代码,使开发和部署过程大大简化。由于它们可以独立部署,因此还有助于避免各种语言、库和框架之间的磨合。这种可移植性和灵活性使得容器成为构建微服务架构的理想选择。

DevOps:云原生应用的开发需要改为采用像 DevOps 这样的敏捷交付方法,开发者和 IT 运营团队就可以密切协作,自动执行基础架构和软件交付流程。DevOps 可以加快一个想法从提出到部署的整个过程。DevOps 的核心在于,在应用的整个生命周期中,都要确保日常运维任务自动化和环境的标准化,容器可以提供标准化的环境。

持续集成和持续交付 (CI/CD):通过该自动化流程,可以更快地修复、扩缩和部署系统。通过 CI/CD 流水线,可以自动构建、测试和部署应用更改,而无需安排停机时间或等待维护窗口。持续交付可确保软件发布更可靠、风险更低,从而使得团队可以更快速、更频繁地提供新的服务和功能。

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

云原生解决了什么问题?
部署和扩展困难:传统软件部署通常需要手动配置和管理,而且在应对大规模流量时很难快速扩展。
环境一致性:开发、测试和生产环境之间的不一致性会导致问题的出现,因为应用在不同环境中的运行可能会产生不同的结果。
资源浪费:传统部署方式可能会导致资源的浪费,因为通常需要为应用的最高负载进行配置,而在低负载时会浪费资源。
恢复缓慢:基于虚拟机的基础设施相对于基于微服务的应用程序来说,是缓慢而低效的。因为单个虚拟机启动/关闭的速度很慢,并且在部署应用程序代码之前就会带来巨大的开销。

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

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

相关文章

电线电缆、漆包线工厂开源MES/生产管理系统/云MES

万界星空科技专业的漆包线MES系统功能介绍: 从原材料出入库-拉丝机等设备管理-漆包线称重打印系统自动入库(支持多台秤同时称重)-建立销售报价、销售订单-生产订单-支持扫码出库及自动拣货出库-应收应付账款-对接各种其他系统及财务系统。 …

便携式水污染物监测设备的招标参数有哪些

便携式多参数水质检测仪参数特点: 便携式多参数水质检测仪参数特点: 便携式多参数水质快速测定仪,根据国家检测标准(G B ) 及环境部检测标准(H J )研发生产,本仪器具有检测快速、操作简单、测试…

综合实力盘点高性价比还优质的云服务器:亚马逊云科技仍然领跑市场

如果说云计算是一条流向数字化未来的河流,那亚马逊云科技毫无疑问是航行在最前面的帆船;如果说云计算是一条通往数字化未来的铁轨,那亚马逊云科技就是行驶在最前面的高铁。接下来回首往昔,以史为镜,得出云服务器哪家便…

毛里塔尼亚市场开发攻略,收藏一篇就够了

毛里塔尼亚是非洲西北部的一个国家,也是中国长期援建的一个国家,也是一带一路上的国家。毛里塔尼亚生产生活资料依赖进口,长期依赖跟我们国家的贸易关系也是比较紧密的,今天就来给大家介绍一下毛里塔尼亚的市场开发公路。文章略长…

Python监控服务进程及自启动服务方法与实践

1. 需求概述 当我们在Windows Server环境中部署XX系统的实际应用中,往往会遇到一些运维管理的挑战。为了确保系统的持续稳定运行,特别是在服务程序因各种原因突然关闭的情况下,我们可以借助Python的强大生态系统来构建一个监控与自动重启的管…

分布式链路追踪入门篇-基础原理与快速应用

为什么需要链路追踪? 我们程序员在日常工作中,最常做事情之一就是修bug了。如果程序只是运行在单机上,我们最常用的方式就是在程序上打日志,然后程序运行的过程中将日志输出到文件上,然后我们根据日志去推断程序是哪一…

Comsol Multiphysics 6.2 for Mac建模仿真软件

COMSOL Multiphysics是一款多物理场仿真软件,旨在帮助工程师、科学家和研究人员解决各种复杂的工程和科学问题。该软件使用有限元分析方法,可以模拟和分析多个物理场的相互作用,包括结构力学、热传导、电磁场、流体力学和化学反应等。 COMSOL…

一些好用的前端小插件(转自知乎)

一些好用的前端小插件(2) 1. cropper.js Cropper.js 2.0 是一系列用于图像裁剪的 Web 组件。 官网地址:https://fengyuanchen.github.io/cropperjs/v2/zh/ 2. Vditor Vditor是一款浏览器端的 Markdown 编辑器,支持所见即所得、…

2024年度投资策略:AI大模型和半导体国产化加速

今天分享的是AI系列深度研究报告:《2024年度投资策略:AI大模型和半导体国产化加速》。 (报告出品方:东方证券) 报告共计:48页 前言: 行情回顾与未来展望 电子板块涨幅转正,信心逐渐回归。截至…

git的使用记录

GitHub是公有的远程仓库,Gitlab是私有的远程仓库。 git add file git commit -m "add file" git mv filea fileb git log 显示提交记录 git log --oneline 一行的简略信息显示 git log --oneline --decorate 显示当前指针 git reset --ha…

矩阵知识补充

正交矩阵 定义: 正交矩阵是一种满足 A T A E A^{T}AE ATAE的方阵 正交矩阵具有以下几个重要性质: A的逆等于A的转置,即 A − 1 A T A^{-1}A^{T} A−1AT**A的行列式的绝对值等于1,即 ∣ d e t ( A ) ∣ 1 |det(A)|1 ∣det(A)∣…

Vim 一下日志文件,Java 进程没了?

一次端口告警,发现 java 进程被异常杀掉,而根因竟然是因为在问题机器上 vim 查看了 nginx 日志。下面我将从时间维度详细回顾这次排查,希望读者在遇到相似问题时有些许启发。 时间线 15:19 收到端口异常 odin 告警。 状态:P1故障 名称:应用端…

黑马点评笔记 redis实现优惠卷秒杀

文章目录 难题全局唯一IDRedis实现全局唯一Id 超卖问题问题解决方案乐观锁问题 一人一单 难题 要解决优惠卷秒杀的问题我们要考虑到三个个问题,全局唯一ID,超卖问题,一人一单。 全局唯一ID 用户抢购时,就会生成订单并保存到同一…

【git】pip install git+https://github.com/xxx/xxx替换成本地下载编译安装解决网络超时问题

目录 🌑🌑 背景 🌒 🌒作用 🌔🌔 问题 🌔🌔解决方案 🌙方法一 🌙方法二 🌝🌝我的解决方案 整理不易,欢迎一键三连…

分布式篇---第三篇

系列文章目录 文章目录 系列文章目录前言一、什么是补偿事务?二、消息队列是怎么实现的?三、那你说说Sagas事务模型前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。…

qgis添加postgis数据

左侧浏览器-PostGIS-右键-新建连接 展开-双击即可呈现 可以点击编辑按钮对矢量数据编辑后是直接入库的,因此谨慎使用。

企业数字化转型的作用是什么?_光点科技

在当今快速变化的商业环境中,数字化转型已成为企业发展的重要策略。企业数字化转型指的是利用数字技术改造传统业务模式和管理方式,以提升效率、增强竞争力和创造新的增长机会。 提升运营效率:数字化转型通过引入自动化工具和智能系统&#x…

NX二次开发UF_CSYS_ask_wcs 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_ask_wcs Defined in: uf_csys.h int UF_CSYS_ask_wcs(tag_t * wcs_id ) overview 概述 Gets the object identifier of the coordinate system to which the work coordin…

JMeter压测常见面试问题

1、JMeter可以模拟哪些类型的负载? JMeter可以模拟各种类型的负载,包括但不限于Web应用程序、API、数据库、FTP、SMTP、JMS、SOAP / RESTful Web服务等。这使得JMeter成为一个功能强大且灵活的压力测试工具。 2、如何配置JMeter来进行分布式压力测试&a…

在华为昇腾开发板安装gdal-python

作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> 在华为昇腾开发板安装gdal-python分为两步:编译gdal库和下载gdal对应的python包。 1.编译gdal库 首先下载gdal库,。在linux(arm架构)上编译的gdal库及其第三方库源码,内含一个编译…