当前位置:首页 > 问答 > 正文

云计算里虚拟化那些结构和怎么访问应用的各种模式大概是啥样子

关于云计算里的虚拟化结构,我们可以把它想象成如何在一台强大的实体电脑(服务器)上,创造出多台独立运行的“虚拟电脑”的方法和安排,这些“虚拟电脑”共享实体电脑的硬件资源,但彼此之间是隔离的,就像住在一栋大楼里的不同住户,共享水电基础设施,但各有各的公寓,互不干扰。

最核心的结构是底层直接运行在物理服务器硬件上的软件层,这通常被称为“管理程序”或虚拟机监控器(根据来源1和来源2),这个管理程序是真正的“魔术师”,它负责直接管理和分配物理资源,如CPU、内存、硬盘空间和网络带宽,它有两种主要的工作方式(来源2):一种是自己直接扮演“简化版操作系统”的角色,牢牢控制硬件,然后在其上创建虚拟机(这被称为裸金属型);另一种是作为一个应用程序运行在Windows或Linux这样的常规操作系统之上,再由这个操作系统去创建虚拟机(这被称为宿主型),前者的效率更高,更安全,因此在数据中心里更常见。

在这些管理程序之上运行的就是一个个“虚拟机”(来源1),每个虚拟机都包含一套虚拟的硬件配置(如虚拟CPU、虚拟内存、虚拟硬盘),并且可以安装一个完全独立的操作系统(如Windows Server、各种Linux发行版)和应用程序,用户感觉就像在使用一台真实的物理服务器一样,拥有完全的控制权,这种技术非常成熟,能够实现很强的隔离性,一个虚拟机崩溃通常不会影响同台服务器上的其他虚拟机。

除了完整的虚拟机,还有一种更轻量化的虚拟化技术,称为“容器化”(来源1和来源3),你可以把它理解为不是虚拟出整台电脑,而只是虚拟出操作系统,多个容器共享同一个操作系统的内核(最核心的部分),但每个容器拥有自己独立的文件系统、网络配置和运行环境,里面运行着应用及其依赖,这就好比在一套房子里,不是给每个人一套独立的厨房卫生间(像虚拟机那样),而是大家共用基础管道,但每个人都有自己独立的卧室和储物间,互不侵犯,容器启动速度极快,资源开销极小,非常适合打包和部署现代应用程序,Docker是创建容器的流行工具,而Kubernetes则是管理和编排大量容器的系统(来源3)。

这些被虚拟化出来的资源(无论是虚拟机还是容器)上的应用,我们是如何访问和使用的呢?这就涉及到各种服务模式,它们决定了你需要管理和操心到什么程度。

最常见的模式是“基础设施即服务”(来源1和来源2),这就像云计算提供商(如亚马逊AWS、微软Azure)租给你一块“虚拟的土地”和“基础设施”(包括虚拟机、存储空间、网络),然后你在这块土地上想干什么都行:安装什么操作系统、搭建什么网站、运行什么数据库,完全由你决定,提供商负责保证底层硬件和虚拟化平台的稳定,而你则要负责管理操作系统、应用程序以及数据本身,这提供了最大的灵活性,但管理负担也最重。

第二种模式是“平台即服务”(来源1),这相当于提供商不仅给了你土地,还帮你把房子(运行环境)都盖好了,包括操作系统、数据库、Web服务器软件等一切都配置妥当,你只需要把你的应用程序代码和数据“搬”进去运行就可以了,你完全不用操心操作系统打补丁、软件版本兼容这些琐事,可以更专注于应用程序本身的开发,你想运行一个网站,直接上传代码就能访问,而不用先去配置一台虚拟机再安装Web服务器。

第三种模式是“软件即服务”(来源1),这是最直接、最简单的一种,你根本不需要关心任何技术细节,无论是服务器、操作系统还是应用程序本身,都由提供商全面管理和维护,你只是通过网页浏览器或者一个简单的客户端来使用这个应用,日常办公中使用的在线邮箱(如Gmail、Outlook.com)、在线文档编辑(如Google Docs、微软Office 365)、客户关系管理系统(如Salesforce)都是典型的软件即服务,你只是使用者,享受服务带来的功能。

云计算通过虚拟化技术(从完整的虚拟机到轻量的容器)将物理资源高效地切割和分配,而不同的服务模式(从自己管一切的IaaS,到只管代码的PaaS,到只管使用的SaaS)则提供了不同层次的抽象和管理,让用户可以根据自己的技术能力和业务需求,选择最合适的方式来访问和运行自己的应用。

(引用来源说明:来源1 - 常见的云计算技术教材和百科定义;来源2 - 虚拟化技术供应商(如VMware, Citrix)的白皮书和文档;来源3 - Docker和Kubernetes官方项目文档及普及读物。)

云计算里虚拟化那些结构和怎么访问应用的各种模式大概是啥样子