将现有应用程序转移到云的构想(第 2 部分)
Posted: Mon Jan 27, 2025 5:25 am
使用物理硬件或云服务各有其优点和缺点。原则上,我不能建议您选择其中一种,因为这主要取决于您的具体要求。为了让您可以形成自己的意见并了解哪种更适合您的目的,我将比较这两种变体。
使用本地物理硬件具有明显的优势,即您可以进行物理访问,并且即使互联网连接丢失也可以访问软件。乍一看这听起来不错,但是当使用本地硬件时,您必须预料到对过载峰值的反应会很慢。您还负责自行备份和更新,或者您必须拥有适当的资源可用于系统维护。还存在数据丢失的风险。
这些缺点也是使用云服务的优点:不需要资源,IT 成本低,并且可靠性由相应的提供商保证。此外,您的硬件几乎不需要任何空间。另一个优点是云服务可以随时扩展,并且只有在真正需要时才需要付费。但云服务也有一些缺点。如果无法访问互联网,您将无法使用这些服务。此外,还存在对现有应用程序的迁移工作,并且可能会发生旧的或自行开发的软件无法在多个虚拟机上运行的情况。
虚拟化(指云服务的使用)的优势主要在于定期快速重新设置 临床护士专家电子邮件列表 虚拟实例以及进行维护的简便方法。通过这种方式,您可以最大限度地减少具有竞争力的关键应用程序的停机时间。您还可以使用更多内部 IT 资源,然后将其用于其他目的。
然而,物理服务器和虚拟服务器上各自数据的持久性会带来问题,因为这里可能会出现偏差。我将告诉您如何解决这个问题。如果您在持续操作期间创建服务器的映像(所谓的快照),则可以在虚拟环境中使用该映像。这意味着如果物理服务器发生故障,可以使用虚拟服务器实例继续维持操作。
虚拟化选项
虚拟实例的快速销毁和重建是一个明显的优势。这使您可以将某些服务的停机时间降至最低,并通过重新设置来消除不受控制的更改(即所谓的配置漂移)。此时我推荐Phoenix服务器方式。它描述了服务器定期被销毁,然后基于可恢复的备份(快照)进行重建。
那么具体有哪些虚拟化选项呢?
嵌套虚拟化
一种虚拟化方法是嵌套虚拟化。这是一种嵌套虚拟化,其中虚拟实例放置在现有实例之上。您可以在虚拟机中安装虚拟机管理程序(例如 Hyper-V、ESXi 和 KVM),以便在其之上设置其他虚拟实例。然而,虚拟嵌套的缺点是它会导致 CPU 密集型应用程序的性能显着下降,这就是为什么我只部分推荐使用嵌套虚拟化。
容器
另一种选择是使用容器。与虚拟机相反,容器并不代表自己的实例,而是访问与主机相同的内核(即操作系统核心)。这种方法的优点是容器还可以直接访问主机硬件。此外,这消除了对额外虚拟机管理程序的需要,并且可用的 CPU 可以直接用于容器应用程序。顺便说一句,您可以使用 Docker 来实现整个过程。
Docker 作为一种合适的技术
在云中,您需要不同的技术来创建功能应用程序。为您的应用程序找到合适的云平台 (PaaS) 非常重要。
开源软件Docker用于通过容器虚拟化来隔离应用程序。该软件遵循单进程方法,其中处理单独的和封装的进程。这种方法特别适合面向服务的架构(SOA),因为每个服务都可以“打包”到自己的 Docker 容器中。为了构建镜像,Docker 使用了一个层系统,其中每个层都是“不可变的”。
在下图中,您可以看到 Docker 镜像的结构。在此示例中,Apache Web 服务器(以红色显示的层)设置在 Ubuntu 基础映像(绿色层)上。基础映像不是经典操作系统,因为它没有自己的内核。
使用本地物理硬件具有明显的优势,即您可以进行物理访问,并且即使互联网连接丢失也可以访问软件。乍一看这听起来不错,但是当使用本地硬件时,您必须预料到对过载峰值的反应会很慢。您还负责自行备份和更新,或者您必须拥有适当的资源可用于系统维护。还存在数据丢失的风险。
这些缺点也是使用云服务的优点:不需要资源,IT 成本低,并且可靠性由相应的提供商保证。此外,您的硬件几乎不需要任何空间。另一个优点是云服务可以随时扩展,并且只有在真正需要时才需要付费。但云服务也有一些缺点。如果无法访问互联网,您将无法使用这些服务。此外,还存在对现有应用程序的迁移工作,并且可能会发生旧的或自行开发的软件无法在多个虚拟机上运行的情况。
虚拟化(指云服务的使用)的优势主要在于定期快速重新设置 临床护士专家电子邮件列表 虚拟实例以及进行维护的简便方法。通过这种方式,您可以最大限度地减少具有竞争力的关键应用程序的停机时间。您还可以使用更多内部 IT 资源,然后将其用于其他目的。
然而,物理服务器和虚拟服务器上各自数据的持久性会带来问题,因为这里可能会出现偏差。我将告诉您如何解决这个问题。如果您在持续操作期间创建服务器的映像(所谓的快照),则可以在虚拟环境中使用该映像。这意味着如果物理服务器发生故障,可以使用虚拟服务器实例继续维持操作。
虚拟化选项
虚拟实例的快速销毁和重建是一个明显的优势。这使您可以将某些服务的停机时间降至最低,并通过重新设置来消除不受控制的更改(即所谓的配置漂移)。此时我推荐Phoenix服务器方式。它描述了服务器定期被销毁,然后基于可恢复的备份(快照)进行重建。
那么具体有哪些虚拟化选项呢?
嵌套虚拟化
一种虚拟化方法是嵌套虚拟化。这是一种嵌套虚拟化,其中虚拟实例放置在现有实例之上。您可以在虚拟机中安装虚拟机管理程序(例如 Hyper-V、ESXi 和 KVM),以便在其之上设置其他虚拟实例。然而,虚拟嵌套的缺点是它会导致 CPU 密集型应用程序的性能显着下降,这就是为什么我只部分推荐使用嵌套虚拟化。
容器
另一种选择是使用容器。与虚拟机相反,容器并不代表自己的实例,而是访问与主机相同的内核(即操作系统核心)。这种方法的优点是容器还可以直接访问主机硬件。此外,这消除了对额外虚拟机管理程序的需要,并且可用的 CPU 可以直接用于容器应用程序。顺便说一句,您可以使用 Docker 来实现整个过程。
Docker 作为一种合适的技术
在云中,您需要不同的技术来创建功能应用程序。为您的应用程序找到合适的云平台 (PaaS) 非常重要。
开源软件Docker用于通过容器虚拟化来隔离应用程序。该软件遵循单进程方法,其中处理单独的和封装的进程。这种方法特别适合面向服务的架构(SOA),因为每个服务都可以“打包”到自己的 Docker 容器中。为了构建镜像,Docker 使用了一个层系统,其中每个层都是“不可变的”。
在下图中,您可以看到 Docker 镜像的结构。在此示例中,Apache Web 服务器(以红色显示的层)设置在 Ubuntu 基础映像(绿色层)上。基础映像不是经典操作系统,因为它没有自己的内核。