服务器 频道

特别关注:虚拟化面临的坎儿

  应用程序由各种基本模块连同许多不同的子组件构建而成,有些子组件需要编译进去,这意味着作为源代码添加进来。有些子组件在可执行代码被创建时添加进来;另一些子组件在程序启动时在运行时候添加进来;还有一些则通过Web服务来加以访问。

  所以,尽管克隆系统映像很容易,但从头开始创建系统映像却要困难得多。通常出现的情况是这样的:在编译或链接时,"make"脚本告诉编程器把源代码转换成目标代码,然后把各个组件的所有目标代码添加进来,从而把目标代码编译成可执行代码。之后,程序在开发服务器上运行。如果缺少任何组件,它们就会安装到开发服务器上。如果程序转移到生产服务器上,反复试验过程就会再次开始。

  但是这个问题会变得更复杂。任何一台机器的系统映像通常由许多不同的应用程序组成。对大多数系统映像而言,哪些组件支持应用系统或软件系统并不清楚。"某个特定的映像使用特定的源代码组件、运行时组件还是Web服务?"大多数时候,系统管理员没法一下就能回答这个问题。如果认真分析启动脚本,可以了解应用程序与支持性服务器(如数据库和Web服务器)之间的许多依赖关系,但并不是所有依赖关系都能了解的,特别是在Web服务盛行的时代,因为Web服务可能驻留在任何地方。

  创建及管理系统映像也许不再神秘莫测。需要管理的系统映像其数量在急剧增长。如果你想把某一应用程序转移到另一台服务器上,就可能需要新的系统映像。如果你发现了某个组件存在安全问题,就必须找到使用该组件的所有映像,并且逐一打上补丁。你可能会有相应的安全政策,规定了哪种类型的开源许可证、Web服务或其他组件是可以接受的。除非你明确地跟踪这些依赖关系,否则就无法管理自己的环境。

 

0
相关文章