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

2024-03-17 14:44

本文主要是介绍云原生 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 服务将在未来发挥越来越重要的作用,成为企业数字化转型和创新发展的强大推动力量。

这篇关于云原生 IaaS 服务:构建下一代云计算基础设施的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/819252

相关文章

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

k8s中实现mysql主备过程详解

《k8s中实现mysql主备过程详解》文章讲解了在K8s中使用StatefulSet部署MySQL主备架构,包含NFS安装、storageClass配置、MySQL部署及同步检查步骤,确保主备数据一致... 目录一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.

Java服务实现开启Debug远程调试

《Java服务实现开启Debug远程调试》文章介绍如何通过JVM参数开启Java服务远程调试,便于在线上排查问题,在IDEA中配置客户端连接,实现无需频繁部署的调试,提升效率... 目录一、背景二、相关图示说明三、具体操作步骤1、服务端配置2、客户端配置总结一、背景日常项目中,通常我们的代码都是部署到远程

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

k8s搭建nfs共享存储实践

《k8s搭建nfs共享存储实践》本文介绍NFS服务端搭建与客户端配置,涵盖安装工具、目录设置及服务启动,随后讲解K8S中NFS动态存储部署,包括创建命名空间、ServiceAccount、RBAC权限... 目录1. NFS搭建1.1 部署NFS服务端1.1.1 下载nfs-utils和rpcbind1.1

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

k8s容器放开锁内存限制问题

《k8s容器放开锁内存限制问题》nccl-test容器运行mpirun时因NCCL_BUFFSIZE过大导致OOM,需通过修改docker服务配置文件,将LimitMEMLOCK设为infinity并... 目录问题问题确认放开容器max locked memory限制总结参考:https://Access

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决