云原生 IaaS 服务:构建下一代云计算基础设施

随着云计算技术的不断演进,云原生成为了现代应用开发和部署的主流趋势。在当今这个快速变化的数字化时代,企业越来越需要灵活、可伸缩、自动化的基础设施来支持他们的业务需求。而云原生 IaaS(Infrastructure as a Service)服务则成为了实现这一目标的重要组成部分。

一、IaaS 定义

云原生的一个很重要的思想就是把一切资源服务化,即所谓的 XaaS(X as a Service),充分利用云的弹性能力,把应用系统所依赖的所有外部资源都当成服务,按需申请开通,即开即用,用完随时释放。

云原生 IaaS 服务就是指基于云原生理念构建的云计算基础设施服务。它提供了一整套云计算基础设施资源,包括计算、存储、网络等,以供用户构建、部署和管理云原生应用程序。与传统的基础设施服务相比,云原生 IaaS 服务更近灵活、可扩展和自动化,能够满足现代应用对基础设施的高要求。

虚拟计算、虚拟存储、虚拟网络、资源调度是云原生敏捷基础设施 IaaS 必须提供的四大核心能力:

  • 虚拟计算:是云原生 IaaS 服务的基础,为上层提供统一的计算服务
  • 虚拟存储:是云原生 IaaS 服务的基础,为上层提供统一的存储服务
  • 虚拟网络:是云原生 IaaS 服务的基础,为上层提供统一的网络服务
  • 资源调度:是云原生 IaaS 服务的基础,为上层提供所需的配套环境设施的建设

基础设施层 IaaS 的技术架构如下所示:

云原生基础设施层 IaaS 包含计算资源、存储资源、网络资源、分布式系统基础服务、基础云服务,这些都是整个云计算环境的基础。计算资源、存储资源和网络资源属于物理硬件设备。分布式操作系统、基础云服务主要用于对硬件设备进行整合管理,突破传统单机单用的架构,采用虚拟化、分布式存储等技术,构建动态可扩展的计算资源池、存储资源池、网络资源池,实现资源的共建共享,同时构建资源编排、自动化部署等自动化云服务,支持上层应用及各平台的稳定运行。

二、IaaS 特点

基于云原生的 IaaS 服务定义的分析,可以看到它具备以下特点:

  • 灵活性:云原生 IaaS 服务提供了多样化的资源类型和配置选项,用户可以根据自己的需求选择合适的资源规则,并随时根据业务需求进行动态调整
  • 弹性和可伸缩性:用户可以根据实际负载情况自动调整资源的数量和规模,实现弹性伸缩,从而确保应用的高可用性和性能
  • 自动化运维:云原生 IaaS 服务通过自动化工具和技术实现对基础设施的自动化管理和运维,包括自动部署、监控、故障恢复等,减少了人工干预的需求,提高了运维效率和可靠性
  • 容器化支持:云原生 IaaS 服务通常原生支持容器化技术,比如 Docker 和 Kubernetes,用户能够更轻松地构建、部署和管理容器化应用
  • 服务化架构:云原生 IaaS 服务倡导将基础设施以服务化的方式呈现,提供 API 和开放标准,使用户能够更加灵活地使用和扩展基础设施功能

三、IaaS 优势

云原生 IaaS 服务和传统的基础设施服务相对有着不可比拟的优势:

  • 高度可扩展性:云原生 IaaS 服务能够快速响应业务需求的变化,实现资源的快速扩展和收缩,确保应用的稳定性和性能
  • 降低成本:通用按需付费的模式和资源的自动化管理,云原生 IaaS 服务可以帮助用户降低成本,提高资源利用率,并避免了传统基础设施建设和温乎的高昂成本
  • 快速部署和交付:云原生 IaaS 服务提供了丰富的自动化工具和流程,使用户能够快速构建、部署和交付应用,缩短了上线时间,提高了交付效率
  • 高可用性和可靠性:云原生 IaaS 服务通常具有多地域和多可用区的部署能力,以及自动化的故障恢复和备份机制,能够确保应用的高可用性和可靠性
  • 创新性和敏捷性:云原生 IaaS 服务不断引入新的技术和功能,使用户能够更加灵活地应对市场竞争和业务变化,实现持续创新和敏捷发展

四、IaaS 应用场景

现阶段云原生 IaaS 服务基本应用在以下场景:

  • 互联网应用:适用于对高性能、高可用性和弹性伸缩要求较高的互联网应用,比如电子商务、在线教育、社交网络等
  • 大数据和人工智能:支持大规模数据处理和机器学习模型训练的应用场景,比如数据分析、推荐系统、图像识别等
  • 物联网和边缘计算:为分布式、边缘化的物联网设备提供计算和存储资源,实现实时数据处理和响应
  • 企业应用:为企业提供灵活、高效、安全的基础设施支持,比如企业资源规划、客户关系管理、人力资源管理等。

五、IaaS 典型技术

1、容器服务

随着 Docker 技术以及微服务架构的流行,容器技术成为了广受欢迎的主流技术。但容器技术本身不是新技术了,只是隔离和封装操作系统资源的一种方式。早在 20 世纪 80 年代,Unix 操作系统下的 chroot 技术就已经有了容器技术的雏形。Docker 是 2013 年出现的产品,开创了 Linux 容器技术的文艺复兴时代,引起了业内的广泛关注。

借助 Docker 的发展势头,容器技术一跃成为一种颠覆性的技术,它改变了 IT 行业的格局,影响了相关的生态系统和云计算市场。

容器技术是一种高效的软件交付技术,具有跨平台可移植性、应用互相隔离的特点。利用这个特性,容器成为确保开发、测试、生产等环境保持一直的代码交付手段。在任何环境中运行的都是相同的容器,确保由于环境不同所带来的差异被最大限度地屏蔽了。利用这种标准的交付手段,就可以大大提高开发和运维的效率。

容器即服务(Container as a Service,CaaS)以服务化的方式实现容器运行环境,降低了开发、运维人员使用容器的门槛。容器服务提供了高性能可伸缩的容器应用管理服务,支持在一组云服务器上通用 Docker 容器来运行应用的生命周期管理,基于 Docker 容器来运行和编排应用程序,开发人员不再需要安装、运维、扩展自己的集群管理基础设施。容器服务具有简单易用、灵活弹性、秒级部署等特点,极大地简化了用户对容器集群管理的搭建工作。

随着容器技术的流行,各个主流云平台厂商纷纷推出自己的容器服务产品,开箱即用,用户可以选择云平台厂商提供的容器托管服务,或者自己使用 Kubernetes 等开源产品搭建容器集群。

Alibaba Cloud

AWS

Azure

Google Cloud

容器服务 ACS

容器服务 Kubernetes 版本 ACK

弹性容器服务 ECS

弹性容器服务 Kubernetes 版 EKS

容器服务 ACS

Kubernetes 服务 AKS

容器引擎 GKE

容器镜像服务 ACR

弹性容器镜像仓库 ECR

容器镜像仓库 ACR

容器镜像仓库 GCR

Serverless Kubernetes ASK

Fargate

弹性容器实例 ECI

ACK 虚拟节点

Virtual Node of Fargate

容器实例 ACI

AKS 虚拟节点

Apsara Stack Agility Edition

AKS on Azure Stack

GKE on-prem

Istio 插件

Knative 插件

Istio 插件

Knative 插件

容器服务无缝整合了虚拟化、存储、网络和安全能力,打造了 Docker 等容器云端最优化的运行环境,提供了多种应用发布的方式和流水线的持续交付能力,原生支持微服务架构,助力用户应用无缝上云和跨云管理。

传统运行在 IDC 的应用进行云上迁移时,面临的主要挑战是应用的运行环境的适配以及应用部署方式的改变。无论用户的应用采用何种语言、何种技术栈,都能够通过容器技术封装成跨平台可用的 Docker 镜像,从而将原先繁重的应用迁移编程一系列标准化的操作。

当前各家云平台厂商提供的容器服务都具备以下基本功能,方便用户基于容器部署管理自己的应用。

2、镜像仓库服务

容器是基于镜像创建的,镜像是保存在镜像仓库中的,镜像仓库可实现镜像的统一管理与分发,是容器运行生态中重要的核心组成部分,也是云原生应用架构中不可缺少的基础设施服务。

镜像仓库分为公有仓库和私有仓库,DockerHub 是 Docker 官方维护的一个公有仓库,已经包括了数十万个镜像,我们平时常用的大部分产品和服务都可以在 DockerHub 中直接下载对应的镜像,也可以通过 docker search 和 docker [image] pull 命令来查找和下载。当然我们也可以通过 docker login 命令登录到镜像仓库,登录成功侯也可以上传个人的镜像到 DockerHub。

因为 DockerHub 服务器在国外,基于镜像上传下载速度以及网络安全等方面考虑,国内的用户一般会自建私有镜像仓库或者使用云厂商提供的镜像仓库服务。云厂商提供的镜像仓库服务的优势主要在易用性、安全性和可集成性三个方面,无须用户自行搭建和运维私有仓库,一键创建镜像仓库,支持多地域,稳定快速的镜像上传、下载服务。同时也提供安全的镜像托管能力、镜像安全扫描能力、稳定的镜像构建服务和便捷的镜像授权功能,方便用户对镜像全生命周期的管理。

3、分布式存储服务

分布式存储是一种分布式的存储系统架构类型,这种存储架构是由一组独立的存储服务器为了完成共同的任务而连接成的存储集群。分布式存储长期大规模地应用于互联网,主要追求可扩展性和低成本,随着其进入传统企业市场,逐步开始构建企业级存储能力。

分布式存储是建立在分布式文件系统之上的。分布式集群文件系统是指运行在多台计算机上,之间通过某种方式相互通信,从而将集群内所有存储空间资源整合、虚拟化并对外提供文件访问服务的文件系统。

集群文件系统可分为多种类型,按照对存储空间的访问方式,可以分为集中共享存储型集群文件系统和分布式集群文件系统。分布式网络存储系统采用了可扩展的系统结构,利用多台存储服务器分担存储压力,有效提高了系统的可靠性、可用性和存取效率。

分布式存储中的实际设备分布在不同的地理位置,数据就近存储,数据分散在多个存储节点上,各个节点通用网络互联。借助云服务,对这些节点的资源进行统一的管理,极大地缓解了带宽压力,也解决了传统的本地文件系统在文件大小、文件数量等方面的限制。

分布式存储的出现得益于云原生应用的发展以及存储硬件的持续演进和优化。随着云计算和互联网的发展带来的海量数据的爆发,企业亟需要更高效的网络存储系统。分布式存储有着非常突出的技术优势,主要体现在以下三个方面:

  • 灵活性:分布式存储系统使用标准服务器,不再需要专门的存储产品来处理存储功能,并允许标准服务器运行存储功能,这样通过添加更多服务器就可以进行扩展,从而线性地增加容量和性能
  • 速度:分布式存储系统中,任何服务器都有 CPU、RAM、驱动器和网络接口,它们表现为一个组,每次添加服务器时,总资源池都会增加,从而提高整个系统的速度
  • 成本:分布式存储系统将最大限度地降低基础设施成本,在驱动器和网络上所花费的成本非常低,极大地提高了服务器的使用效率

分布式存储系统是云原生架构敏捷基础设施的核心服务能力,敏捷基础设施的核心在于软件定义基础设施,其中 SDS 也是重要的基础能力之一。分布式存储系统构建在虚拟化平台之上,通过部署存储虚拟设备的方式虚拟化本地存储资源,再经集群整合成资源池,为应用虚拟机提供存储服务。分布式存储系统替代了传统的集中式存储系统,使整个架构更清晰简单,极大地简化了复杂 IT 系统的设计。但是分布式存储系统非常依赖网络的数据传输能力,至少需要万兆级网络互联。随着网络技术的发展、网速不断提升、分布式存储可以实现数据中心性能的线性扩展,虚拟化计算能够提高资源的利用效率,减少硬件需求,而管理运维平台可以提升云原生架构的易用性。

云平台厂商提供的分布式存储服务一般包括块存储(云盘)、文件存储、对象存储等不同的存储类型产品。

4、虚拟网络服务

云原生架构倡导一切外部资源以服务化的方式提供,资源服务是软件可定义的,网络也不例外。比如 SDN 利用软件虚拟化技术,在物理网络基础之上根据应用的需求设计定义出不同的虚拟网络,从而大大提高网络架构的灵活性、可扩展性、可定义性,以满足应用灵活多样的个性化网络需求。应用之间的访问通信以及安全策略,都在这个虚拟网络上进行。

一般的云平台厂商会根据用户的需要提供两种网络类型。

  • 经典网络:经典网络类型的云产品统一部署在云平台,规划和管理由云平台负责,更适合对网络易用性要求比较高的客户
  • 专有网络:一个可以自定义隔离的专有网络,我们可以自定义这个专有网络的拓扑和 IP 地址,它适用于对网络安全性要求较高和有一定的网络管理能力的客户

随着云计算的不断发展,对虚拟化网络的要求越来越高,比如可伸缩性、安全性、可靠性和私密性,并且还有极高的互联性能需求,从而催生了多种多样的网络虚拟化技术。随着虚拟化网络规模的扩大,这种方案中的 ARP 欺骗、广播风暴、主机扫描等问题会越来越严重。为了解决这些问题,各种网络隔离技术出现了,它们把物理网络和虚拟网络彻底隔离开。其中一种技术是用户之间用 VLAN 进行隔离,该技术在小型私有云环境中经常采用,但是 VLAN 的数量最大只能支持到 4096 个,无法支撑公有云的巨大用户量。

VPC 是用户独有的云上私有网络,是一个隔离的网络环境,专有网络 VPC 之间在逻辑上彻底隔离。不论是在公有云还是在私有云环境中,我们都可以根据需要单独规划、隔离出不同的 VPC 网络。用户可以完全掌控自己的专有网络,如选择 IP 地址范围、配置路由表和网关等。用户可以在自己定义的专有网络中使用相关的云资源,如云服务器、云数据库和负载均衡等。用户可以根据业务规划创建多个子网,子网是网络域的一部分,通过划分子网可以将网络域在逻辑上分成多个网段。子网内的云主机的 IP 地址都属于该子网,将不同的服务部署到不同的子网可以提高服务的可用性。我们也可以根据应用的需要将一个 VPC 网络连接到其他 VPC 网络或本地网络(通过路由器接口互联),从而形成一个按需定制的网络环境,以实现应用的平滑迁移上云和对数据中心的扩展。

通过专有网络支持专线、VPN 等多种连接方式,专有网络与物理网络或者不同专有网络之间可以实现连接,以组成一个虚拟的混合网络。为了增强可用性,每个地域一般由多个可用区组成,每个可用区包含一个或多个机房。可用区拥有独立的电力和网络,即使一个可用区出现问题,也不会影响其他可用区。可用区之间物理隔离,但可以通过内网互通,既保障了可用区的独立性,又提供了低时延的网络连接。一个可用区内的资源还可以根据需要划分为不同的安全组,安全组是一种虚拟的防火墙,具备控制入站和出站流量的能力。安全组和网络域绑定形成了逻辑上的分组,为 VPC 内具有相同安全保护需求并互相信任的云主机提供安全访问策略,是重要的网络安全隔离手段。创建好安全组后,用户可以在安全组中创建访问规则,针对每条规则定义出入方向、授权 IP 地址、端口、协议等属性。当云主机加入该安全组后,就会受到这些访问规则的保护,由安全组规则决定放行还是阻断相关流量。

每个 VPC 都由一个私有网段、一个路由器和至少一个交换机组成:

五、结语

云原生 IaaS 服务是云计算发展的必然趋势,它为用户提供了灵活、可靠、高效的基础设施支持,帮助他们更好地应对日益复杂的业务需求和市场竞争,随着云原生技术的不断成熟和发展,相信云原生 IaaS 服务将在未来发挥越来越重要的作用,成为企业数字化转型和创新发展的强大推动力量。

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

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

相关文章

html--宠物

文章目录 htmljscss html <!DOCTYPE html> <html lang"en" > <head><meta charset"UTF-8"><title>CodePen - Spaceworm</title><script> window.requestAnimFrame (function() {return (window.requestAnimat…

[HDCTF 2023]enc

32位 这里后面运行这个程序居然要 Visual Studio&#xff0c;不然运行不了 IDA打开&#xff0c;直接锁定main函数 看见v9&#xff0c;四个32位&#xff0c;就想到了tea加密 、 标准tea from ctypes import * #tea def decrypt(v, k):v0 c_uint32(v[0])v1 c_uint32(v[1])…

代码随想录阅读笔记-字符串【反转字符串】

题目 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印…

未来已来:科技驱动的教育变革

我们的基础教育数百年来一成不变。学生们齐聚在一个物理空间&#xff0c;听老师现场授课。每节课时长和节奏几乎一致&#xff0c;严格按照课表进行。老师就像“讲台上的圣人”。这种模式千篇一律&#xff0c;并不适用于所有人。学生遇到不懂的问题&#xff0c;只能自己摸索或者…

Linux查看硬件型号详细信息

1.查看CPU &#xff08;1&#xff09;使用cat /proc/cpuinfo或lscpu &#xff08;2&#xff09;使用dmidecode -i processor Dmidecode 这款软件允许你在 Linux 系统下获取有关硬件方面的信息。Dmidecode 遵循 SMBIOS/DMI 标准&#xff0c;其输出的信息包括 BIOS、系统、主板、…

UE4_调试工具_绘制调试球体

学习笔记&#xff0c;仅供参考&#xff01; 效果&#xff1a; 步骤&#xff1a; 睁开眼睛就是该变量在此蓝图的实例上可公开编辑。 勾选效果&#xff1a;

【Linux】进程与可执行程序的关系fork创建子进程写实拷贝的理解

一、进程与可执行程序之间关系的理解 系统会将此时在系统运行的进程的各种属性都以文件的形式给你保存在系统的proc目录下。运行一个程序的时候&#xff0c;本质就是把磁盘中的程序拷贝到内存中&#xff0c;当一个进程运行起来的时候&#xff0c;它本质已经和磁盘中的可执行程序…

基于springboot和mysql实现的在线考试系统

1.项目介绍 一个在线考试系统&#xff0c;考生可以注册&#xff0c;成为本平台的一个用户&#xff0c;然后进行考试&#xff0c;考完生成成绩&#xff0c;同时用户可以查询自己考试的试卷&#xff0c;可以查看试卷解析。 升级改版 新增出卷人角色&#xff0c;主要职责是进入…

滴滴 Flink 指标系统的架构设计与实践

毫不夸张地说&#xff0c;Flink 指标是洞察 Flink 任务健康状况的关键工具&#xff0c;它们如同 Flink 任务的眼睛一般至关重要。简而言之&#xff0c;这些指标可以被理解为滴滴数据开发平台实时运维系统的数据图谱。在实时计算领域&#xff0c;Flink 指标扮演着举足轻重的角色…

【C++】了解一下编码

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. 前言2. ASCII编码3. unicode4. GBK5. 类型转换 1. 前言 看到string里面还有Template instantiations&#xff1a; string其实是basic_string<char>&#xff0c;它还是一个模板。 再看看wstring&#xff1…

Linux中的文件类型

一、Linux系统如何区分文件类型&#xff1f; Linux系统中不以文件后缀名来区分文件类型&#xff0c;而是通过文件属性中第一列来区分 &#xff08;Linux系统不以文件后缀名区分文件类型&#xff0c;但是不代表Linux系统不使用文件后缀名&#xff0c;LInux系统中的许多工具例如…

如果网络不好 如何下载huggingface上的模型

很多朋友网络不太好&#xff0c;有时候上不了huggingface这样的国外网站&#xff1b; 或者网络流量不太够&#xff0c;想要下载一些stable diffusion模型&#xff0c;或者其他人工智能的大模型的时候&#xff0c;看到动辄几个G的模型文件&#xff0c;不太舍得下载&#xff1b;…

5 张图带你了解分布式事务 Saga 模式中的状态机

大家好&#xff0c;我是君哥。 状态机在我们的工作中应用非常广泛&#xff0c;今天聊一聊分布式事务中间件 Seata 中 Saga 模式的状态机。 1 状态机简介 状态机是一个数学模型&#xff0c;它将工作中的运行状态和流转规则抽象出来&#xff0c;可以协调相关信号来完成预先设定…

Pycharm安装阿里云通义码灵插件图文教程

前提&#xff1a;必须安装pycharm&#xff0c;可以访问 pycharm下载链接打开页面下载 点击下载后&#xff0c;将下载文件打开&#xff0c;然后无脑安装&#xff0c;安装好后继续看。 然后就安装好了&#xff0c;然后关闭安装&#xff0c;然后打开pycharm即可。 &#x1f680;…

如何在idea中配置tomcat服务器,然后部署一个项目

文章目录 前言第一步 先新建一个空项目第二步 添加框架支持第三步 添加配置及如何部署最后一步 运行及检查有没有问题总结 前言 本章学习的是在idea中配置tomcat服务器&#xff0c;然后部署一个项目 如果没有下载Tomcat服务器的可以在上一个博客观看下载及手动部署&#xff0c;…

线程常用方法

一常用方法第一组 1.setName 设置线程名称&#xff0c;使之与参数name相同&#xff1b; 2.getName 返回该线程的名字&#xff1b; 3.start 使该线程开始执行&#xff0c;java虚拟机底层调用该线程的statr0方法&#xff1b; 4.run …

前端学习之css伪元素选择器

伪元素选择器 &#xff08;注释是对各个内容的解释与理解&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>伪元素选择器</title><!-- 双冒号开头一般都称为伪元素&#xff0c;…

面向对象编程第三式: 多态 (Java篇)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

(三)OpenOFDM符号对齐

符号对齐 模块&#xff1a;sync_long.v输入&#xff1a;I (16), Q (16), phase_offset (32), short_gi (1)输出&#xff1a;long_preamble_detected (1), fft_re (16), fft_im (16) 检测到数据包后&#xff0c;下一步是精确确定每个 OFDM 符号的起始位置。在802.11中&#xf…

vue2+vant2+Laravel7 实现多图上传到七牛云

后端接口 1、路由&#xff0c;在 routes/api.php 中 Route::resource(photos, PhotoController)->only(store);2、创建对应控制器 <?php namespace App\Http\Controllers; use Illuminate\Http\Request;class PhotoController extends Controller {/**** 上传图片* p…