
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习计算机编程开发的相关技术知识等内容,而本文我们就通过案例分析来简单了解一下,虚拟机技术应用常见问题分析。
我们希望能够同时在不同的服务器上运行应用程序的多个实例,这样就可以根据不断增加的流量进行伸缩。理想情况下,我们希望将不同的实例分布到不同的可用性区域。同样,如果一个可用性区域变得不可用,其他区域还有实例可以处理流量并避免宕机。
要让实例可动态伸缩,可以使用自动伸缩组。我们可以定义应用程序新实例自动启动(或销毁)的条件。例如,我们可以使用平均CPU负载水平或每个实例的平均请求数来确定是否需要启动新实例,或者,如果已经有足够的可用容量,可以降低实例数量以节省成本。为了保证高可用性,我们需要确保每个可用性区域中至少有一个实例可用。
要使用虚拟机,就需要构建虚拟机镜像。镜像可以有效地把操作系统、所有必要的软件(例如Python运行时)、应用程序的源代码和所有依赖项打成包。
为了启动虚拟机实例,必须定义镜像,这里涉及的细节可能并不重要,但它确实与在本地托管软件的方式有很大不同。在本地,虚拟机通常会一直保持运行。在配置完毕后,IT人员通常会登录到机器上给软件打补丁、重新启动服务或部署新的应用程序版本。但如果存在多个实例,并且需要自动启动和销毁,这种方式就不可行了。
在云端,虚拟机是“不可变”的:一旦启动,就不应该被修改。如果需要发布更新,就构建新的镜像并启动新实例,同时逐步销毁旧实例。
但是,这种不变性不仅影响部署或软件更新,它还影响数据(或“状态”)的管理方式。我们无法在虚拟机里存储持久状态,因为一旦机器被关闭,我们将丢失所有的数据,因此,我们不能在本地文件系统存储文件或在应用程序内存中保存会话数据。
基于这样的模型,“基础设施”和“数据”变成了相互独立的关注点,可以分开处理和管理。
在评审已有代码和构建虚拟机镜像时,我们要注意所有访问数据(文件、数据库记录、用户会话数据,等等)的代码,并在必要时做出修改,以此来确保不会在实例本地保存数据。我们将在讨论我们的架构所涉及的不同存储类型时更深入地讨论我们的可选项。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。