5、自动化运维工具
严格意义上说,自动化运维工具不能算是云计算特有的,在传统IT架构下也有自动化运维的需求与实现。只不过近些年业界兴起的DevOps与云计算相结合,重新赋予了自动化运维新的理念,在此背景下,也出现了不少优秀的开源自动化运维工具,Ansible就是目前业界最为热门的一个。Ansible是一种模型驱动型配置管理工具,充分利用SSH技术,改善安全、简化管理。除了配置管理外,它还能够实现应用程序部署(甚至多层部署)、工作流程编排和云配置自动化等功能。Ansible基于五大设计原则,包括易于使用(不需要编写脚本或自定义代码)、易于掌握(对管理员和开发者来说都是如此)、全面的自动化(让你可以做到你环境中的几乎一切都实现自动化)、高效率(因为它在OpenSSH上运行,因而不依赖内存或处理器资源),以及安全性(它天生来得更安全,因为不需要代理、额外端口或根级守护程序)。与其他许多开源项目一样,Ansible也有一款收费产品,使用一种名为Ansible Tower的Web用户界面。
问题三:开源可能带来哪些问题?
1、开源不等于免费
这是开源领域一个永恒的话题,也是任何机构、组织或公司想要用好开源软件需要接受的一个观点。开源软件是对传统商业软件开发及应用模式的一种变革。传统商业软件按照许可售卖,用户在部署、使用及后期维护方面遇到的问题,均可由软件商提供明码标价的服务。开源软件为用户提供了一个免费的社区版软件,但通常情况下,它只能算是一个“半成品”,仅能满足用户最基本、最通用的功能需求,一些定制化的功能需要用户在社区版基础上二次开发。另一方面,对于软件前期的部署、中后期的运维也缺乏专业的团队支持。如果将软件比作一辆车,国内外大部分电信运营商都习惯于做一名合格不出事故的司机,即从设备制造商手中买一辆“成品车”,然后努力学好驾驭这辆车的技能。然而,开源软件则是一辆“半成品车”,在它可以平稳驾驶前,首先要对其进行优化改造,而这需要机械师的技能。因此,多年来习惯于做“司机”的运营商或许需要考虑如何补充“机械师”技能了。想要成为一名合格的机械师,学费是不可避免的。
2、开源阻碍技术发展
这个观点似乎与大众的认知相去甚远,但现如今这个问题在开源领域确实存在。开源项目的初衷是希望集合全世界广大开发者的力量打造一款优秀、强大、快速迭代的软件,替代传统IT巨头开发的闭源商业软件,从而消除技术壁垒,避免厂商控制技术演进路线的现象发生。例如Linux项目的发展促成了服务器X86化趋势,让系统封闭且价格高昂的小型机逐渐退出历史舞台。又如安卓项目的诞生加速了移动互联网的繁荣发展,让非智能手机消失在人们的视野中,这些成功的开源项目确实促进了技术的发展。但近年来,伴随众多IT巨头相继关注开源事业,投入资金支持社区发展后,曾经相对纯粹的开源项目产生了微妙的变化。一些由少数厂商主导的开源项目变得不再开放、友好,相关厂商为了自身利益的最大化做起了与开源项目初衷背离的事情,导致一些优秀的开源项目走向衰败。这种现象发生在开源项目上,通常比商业软件危害更大。因为同类型的商业软件一般可由多个竞争厂商分别提供,并长期共存。而同类型的开源软件在发展初期会充分竞争,但随着时间推移,基于“丛林法则”最终形成一家独大的格局。如果胜出的项目被少数商业公司掌控,这些企业就可以控制某一行业、某一领域的技术趋势,这与完全垄断某个市场的商业软件几乎毫无差别。
3、开源并不安全
在前文中笔者曾将“安全”作为开源软件的优点加以论述,现在又将其视为开源软件的潜在问题来讨论,这看似有些悖论的意味,却又真实存在。提出开源软件更加安全论点的人们普遍认为社区有成百上千的人在审核代码以便发现漏洞或缺陷,从而快速修复漏洞,不被攻击者利用。但持有这种观点的人往往忽视了一个问题,即代码中的漏洞是开放给所有人查看的,攻击者也在其中,而大部分漏洞从发现到完全修复的耗时明显要大于恶意代码产生耗时,这就给了攻击者可乘之机。这从早几年OpenSSL爆出的“Heartbleed”漏洞到MongoDB的“赎金事件”,再到最近由Memcached漏洞引起的“DRDOS攻击”,均反映了开源软件并不安全这一事实。