摆脱束缚思考:云自动动态管理策略

日期: 2014-03-24 作者:Tom Nolle翻译:滕晓龙 来源:TechTarget中国 英文

在大部分的IT历史上,应用程序开发是在一个“基于盒子”的模式中完成的。在这个模式中,组件都是被链接至一个机器镜像,而这个镜像被托管在数据中心的一个静态服务器上。云计算具有资源灵活性和敏捷性的目标,所以它要求在应用程序组件和它们的资源中具有更动态的关联性。云计算自动动态管理就是这样一个实现的方法,但是其前提就是要进行正确规划与实施。

自动动态管理就是实现应用程序组件部署与重新部署的自动化,从而正确地建立和维护组件间的链接与应用程序间的链接。在实践中,自动动态管理将涉及两个基本要素: 1. 部署应用程序组件,其中包括了软件组件和数据库组件;2. 创建允许组件间通信的网络连接,以……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

在大部分的IT历史上,应用程序开发是在一个“基于盒子”的模式中完成的。在这个模式中,组件都是被链接至一个机器镜像,而这个镜像被托管在数据中心的一个静态服务器上。云计算具有资源灵活性和敏捷性的目标,所以它要求在应用程序组件和它们的资源中具有更动态的关联性。云计算自动动态管理就是这样一个实现的方法,但是其前提就是要进行正确规划与实施。

自动动态管理就是实现应用程序组件部署与重新部署的自动化,从而正确地建立和维护组件间的链接与应用程序间的链接。在实践中,自动动态管理将涉及两个基本要素:

1. 部署应用程序组件,其中包括了软件组件和数据库组件;
2. 创建允许组件间通信的网络连接,以及至用户与其他应用程序的连接。

虽然这个定义也适用于所有不同的自动动态管理选项和工具,但在方法上是存在着鲜明的差异的。

混合云计算应用:集成就是简单的自动动态管理

最简单的自动动态管理形式就是集成,它可在云计算部署的组件和固定应用程序与资源之间建立连接。对于一些混合云计算的应用程序来说,云计算组件与数据中心的集成可能就是唯一所需的自动动态管理过程。

从主要的软件供应商到第三方软件供应商,他们都提供了大量用于实现云计算集成功能的商业工具,而在混合云计算配置中,还有用于集成具体应用程序的预包装“配方”。请与供应商确认,以确保你的应用程序需求都包括在内。

开发运行自动动态管理工具采用基于脚本程序的方法

大部分的全功能云计算自动动态管理工具都属于开发运行产品的类别。开发运行都是基于应用程序开发人员了解应用程序必须如何被托管以及如何连接组件的原则的。在开发过程中,开发人员将创建这个部署/连接的一个开发运行“图” ,而这个图可在有需要的时候用于部署应用程序。

开发运行工具是程序性的或基于脚本程序的;在最简单的形式中,一个开发运行 程序或脚本程序可能就是一个运营团队成员用于输入以部署和连接应用程序的一个命令集。诸如IP地址这样只在部署过程中制定的信息是给出符号名称的,这是在托管组件时被填入的信息,而这些信息可在之后创建组件连接时被引用。

基于脚本程序的工具具有易于从手动过程中得到优点。它们最大的缺点是,它们描述的是过程而不是结果;一个脚本程序必须为可能遇到的一切用例提供指令。一些用户报告说,维护开发运行脚本程序的难度要比维护软件更高,因为单单阅读开发运行脚本程序是很难了解期望的结果是什么。如果使用了基于脚本程序的自动动态管理功能,那么真实记录正在完成的工作以及注意任何基本程序不适合处理的条件是非常重要的。

目前市场上有开源的和商业的开发运行工具,因此研究最适合你的公司和开发团队的工具是非常有必要的。

基于模式的方法证明了云计算供应商

基于脚本程序的自动动态管理是虚拟化中的规则,但是网络运营商和云计算供应商还是钟意于使用基于模式的方法的,因为它们提供了更好的服务生命周期管理。在基于模式的自动动态管理中,你描述了你的工作架构、创建了约束(例如运行了哪些组件和连接的类型),以及软件开发了你定义的结构。这些模式通常是易读易懂的,因为它们定义了你试图的实现而不是采用开发运行方法所需经历的步骤。IT部门可以使用这些模式来重新使用失败的应用程序元素,撤下应用程序或改变生命周期——如果使用了基于脚本程序的自动动态管理,那么所有这些都需要有它们自己独立的脚本程序。

但是,由于用户和运营商的不同需求,基于脚本程序和基于模式的混合方法已在云计算中变得相当的普通。例如,在OpenStack中,基于模式的方法可被用于应用程序以开发一系列的子网,子网的组件是托管的并被连接入更高级别的网络。OpenStack Neutron是OpenStack的网络部分,它定义了网络的模式,但是如果要部署应用程序和数据库组件,那么就需要使用到其他的OpenStack服务了。一个OpenStack开发运行工具可能会创建Neutron网络模式并在之后通过使用计算资源或DBMS/块存储部署组件来把组件部署在已定义好的网络单元中。

实现云计算自动动态管理的步进式方法

无论你的公司选择使用何种工具,实施云计算自动动态管理的第一步就是完成一个完整的手动应用程序部署工作并仔细地记录其中的每个步骤。特别重要的一点是,要标记出所有之后可能用到的每一个步骤的结果的所在——例如一个组件的地址信息。这将建立自动动态管理希望完成的基线,同时就可以使用之前手工记录的步骤来开发脚本程序或模式。

从手工步骤开始以一个变量把之前步骤的结果取代每一个参考就形成了一个基于脚本程序的自动动态管理过程。这样做会使自动动态管理脚本程序更具通用性。这样做听上去似乎很复杂,但这与为网页控制开发JavaScript程序的差别很小。

基于模式的自动动态管理要求根据他们的目标对步骤进行分组——例如,之前定义的子网的主机组件。这些分组必须与现在使用的模式相关联。

测试是云计算自动动态管理的最后一个步骤。你的自动动态管理脚本程序或模式在被激活的状态下,应当部署一个能够正常运行的软件系统。对于任何与你手工过程有偏差的细节,都应进行审查,以确保你的自动动态管理中没有错误。请务必同样记录好你的测试/验证步骤,因为云计算自动动态管理是应用程序生命周期管理中一个关键的单元,同样它也是确保支持你的业务的应用程序稳定运行的关键所在。请正确地开发和维护一个完整的、可审计的软件生命周期过程,否则你之后一定感到后悔的。

相关推荐