引言

云托管是一种使用在线虚拟服务器的方法,可以根据需要创建、修改和销毁这些虚拟服务器。 云服务器是由其所在的物理服务器分配的资源,比如 CPU 核心和内存,可以通过开发人员选择的操作系统和相应的软件进行配置。 云托管可用于托管网站、发送和存储电子邮件、分发基于 web 的应用程序和其他服务。

在本指南中,我们将回顾一些与云托管相关的基本概念,包括虚拟化如何工作,虚拟环境中的组件,以及与其他常见托管方法的比较。

什么是“云” ?

“云”是一个常见的术语,指的是通过付费租赁或作为软件或平台服务的一部分,可供公众使用的连接到互联网的服务器。 基于云的服务可以采取多种形式,包括网络托管、文件托管和共享以及软件分发。 “云”也可以用来指云计算,即使用几个连接在一起的服务器来分担一项任务的工作量。 云计算不是在一台功能强大的机器上运行一个复杂的进程,而是将任务分布在许多较小的计算机上。

其他托管方法

云托管只是当今客户和开发人员可用的许多不同类型托管中的一种,尽管它们之间有一些关键的区别。 传统上,低预算和低流量的网站和应用将使用共享托管,而更高要求的工作负载将托管在专用服务器上。

共享主机托管是让一个小而简单的网站建立和运行的最常见和最实惠的方式。 在这个场景中,成百上千的站点共享一个公共的服务器资源池,比如内存和 CPU。 共享托管往往提供最基本和最不灵活的功能和定价结构,因为由于服务器的共享性质,访问站点的底层软件非常有限。

专用托管是指将一台物理服务器机器出售或租赁给一个客户机。 这比共享主机更加灵活,因为开发人员可以完全控制服务器的硬件、操作系统和软件配置。 专用服务器在要求更高的应用程序中很常见,比如企业软件和商业服务,比如社交媒体、在线游戏和开发平台。

虚拟化是如何工作的

云托管环境分为两个主要部分: 应用程序和网站可以托管的虚拟服务器和管理虚拟服务器的物理主机。 这种虚拟化是云托管的特性和优势背后的原因: 主机和虚拟服务器之间的关系提供了其他托管方法无法提供的灵活性和可伸缩性。

虚拟服务器

当今最常见的云托管形式是使用虚拟专用服务器(VPS)。 Vps 是一个虚拟服务器,它的工作就像一台真正的计算机,有自己的操作系统。 虽然虚拟服务器共享主机分配给它们的资源,但它们的软件是完全隔离的,因此一个 VPS 上的操作不会影响其他 VPS。

虚拟服务器由物理主机的管理程序部署和管理。 每个虚拟服务器都有一个由管理程序安装的操作系统,用户可以在其上添加软件。 在许多实际用途中,虚拟服务器在使用中与专用物理服务器相同,尽管在某些情况下,由于虚拟服务器与同一主机上的其他服务器共享物理硬件资源,性能可能较低。

主持人

资源由承载它的物理服务器分配给虚拟服务器。 这个主机使用一个名为 hypervisor 的软件层来部署、管理和向其控制下的虚拟服务器授予资源。 术语“ hypervisor”通常用于指安装管理程序(及其虚拟服务器)的物理主机。

当虚拟服务器启动时,主机负责分配内存、 CPU 核心和到虚拟服务器的网络连接。 由于多个虚拟服务器可能使用相同的物理内核,因此管理程序的一个持续任务是在虚拟 CPU 内核和物理内核之间安排进程。 进程调度的选择方法是不同管理程序之间的关键区别之一。

管理程序

现在有一些公共的管理程序软件可用于云主机。 这些不同的虚拟化方法有一些关键的区别,但它们都提供了主机根据需要部署、维护、移动和销毁虚拟服务器所需的工具。

Kvm 是“ Kernel-based Virtual Machine”的缩写,是一个内置在 Linux 内核中的虚拟化基础设施。 激活后,这个内核模块将 Linux 机器转换为一个管理程序,允许它开始托管虚拟服务器。 这种方法与其他管理程序的通常工作方式不同,因为 KVM 不需要创建或模拟用于虚拟宿主的内核组件。

Xen 是当今最常用的管理程序之一。 与 KVM 不同,Xen 使用微内核,它提供了支持虚拟服务器所需的工具,而不需要修改主机的内核。 Xen 支持两种截然不同的虚拟化方法: 半虚拟化虚拟化,它跳过了模拟硬件的需要,但需要对虚拟服务器的操作系统进行特殊的修改; 以及硬件辅助虚拟化,它使用特殊的硬件特性来有效地模拟虚拟服务器,以便使用未经修改的操作系统。

Esxi 是 VMware 提供的企业级管理程序。 Esxi 的独特之处在于它不要求主机具有底层操作系统。 这被称为“ type 1”虚拟机监控程序,由于在硬件和虚拟服务器之间缺少一个“中间人” ,它的效率非常高。 像 ESXi 这样的类型1管理程序,不需要在主机上加载任何操作系统,因为管理程序本身充当操作系统。

Hyper-v 是最流行的 Windows 服务器虚拟化方法之一,在 windowsserver 中可以作为系统服务使用。 这使 Hyper-V 成为在 Windows 软件环境中工作的开发人员的常见选择。 Hyper-v 包含在 Windows Server 2008和2012中,也可以作为一个独立的服务器,而不需要安装 Windows Server。

为什么是云托管?

虚拟化提供的特性非常适合云托管环境。 虚拟服务器可以配置大范围的硬件资源分配,并且通常可以根据需求随时间变化添加或删除资源。 一些云主机可以将虚拟服务器从一个虚拟机监控程序移动到另一个虚拟机监控程序,只需要很少或根本不需要停机时间,或者为了节点故障而复制服务器。

定制

由于对虚拟环境的控制,开发人员通常更喜欢在 VPS 中工作。 大多数运行 Linux 的虚拟服务器默认提供对 root (管理员)帐户或 sudo 特权的访问,使开发人员能够安装和修改他们需要的任何软件。

这种选择的自由始于操作系统。 大多数管理程序能够承载几乎任何来宾操作系统,从 Linux 和 BSD 这样的开源软件到 Windows 这样的私有系统。 从那里开始,开发人员可以开始安装和配置他们正在从事的任何工作所需的构建块。 云服务器的配置可能涉及 web 服务器、数据库、电子邮件服务,或者已经开发并准备发布的应用程序。

可扩展性

云服务器的扩展能力非常灵活。 缩放方法分为两大类: 水平缩放和垂直缩放。 大多数托管方法都可以这样或那样伸缩,但云托管在水平和垂直伸缩方面的能力是独一无二的。 这是由于云服务器所构建的虚拟环境: 由于它的资源是一个更大的物理池的一个分配部分,因此很容易调整这些资源或者将虚拟映像复制到其他管理程序。

水平扩展,通常称为“扩展” ,是向集群系统添加更多节点的过程。 这可能包括添加更多的 web 服务器以更好地管理流量,向区域添加新的服务器以减少延迟,或添加更多的数据库工作人员以提高数据传输速度。 许多新的网络工具,如 CoreOS、 Docker 和 Couchbase,都是围绕着高效的水平扩展而建立的。

垂直扩展(Vertical scaling) ,或称为“向上扩展(scaling up)” ,是指使用额外资源升级单个服务器。 这可能是可用内存的扩展、更多 CPU 核心的分配,或者其他增加服务器容量的升级。 这些升级通常为额外的软件实例(如数据库工作者)在该服务器上操作铺平了道路。 在水平扩展成为具有成本效益的做法之前,垂直扩展是应对不断增长的需求的首选方法。

使用云托管,开发人员可以根据应用程序的需求进行扩展ーー他们可以部署额外的 VPS 节点,或者升级现有服务器,或者在服务器需求急剧增加时同时进行扩展。

总结

到目前为止,您应该对云托管的工作方式有了相当的了解,包括虚拟机管理程序和它们负责的虚拟服务器之间的关系,以及云托管与其他常用托管方法的比较。 记住这些信息,您可以选择最适合您需要的托管服务器。