文章翻译自:http://opensource.com/business/14/11/open-source-accelerating-pace-software
当我们谈论社区带给开源软件的创新性和革新意识的时候,我们总是谈论开源对于社区内部的代码贡献和分工合作的促进作用。贡献者越多,合作的分歧和争端就会越少。
然而,当云计算、大数据和物联网席卷整个个IT界,以至于引起了计算架构和计算方法的改变,同时我们也看到了开源社区这种开发模式的强大之处:汇集不同背景、不同层次的开发者的智慧,然后重组,达到最大程度的融合。很显然这是一种富有生命力的开发方式。
而今流行的容器技术,从根本上来讲,也是受Linux启迪和孵化而产生的。正如不久前我在一次讨论中描述的,所有的适用于单个计算机的技术,像安全强化技术,性能优化技术,可靠性技术,证书认证技术,也都适用于容器化的计算机。事实上,相比单个计算机天然的隔离性,容器化了的操作系统需要在资源隔离和安全性上做更多的工作,承担更多的责任。
使得容器技术在当下的实现(其实其思想早在十年前已经出现)更有趣的一点是:该技术汇集了Docker开源社区的工作。Docker社区致力于使基于Linux内核的容器技术能够更加易于使用。Linux操作系统的安全性(正如Red Hat公司的Dan Walsh 在这篇博客中描述的)和杰出的资源控制能力(比如Control
Group),是容器应用打包技术和服务器弹性化部署得以实现的基石。最后,Project Atomic会将所有容器打包技术和服务器部署所需的工具和模块组合起来。
当下跨操作系统、跨平台的容器技术也已崭露头角。Docker技术适用于在单一操作系统上部署,而跨平台的容器技术Kubernetes可能很快会流行起来,该项目起源于谷歌公司内部的容器技术。Kubernetes具有高可用性和同步性的特点,且实现了服务发现和服务聚合的功能。尽管该技术源于谷歌公司,但整个容器化技术的生态环境内的业务流程,资源安置,管理策略等等各个方面,肯定还是要从众多开源社区借鉴经验,汲取营养。
比如说,有很多项目通过对交互应用程序提供框架和方法的同时,也为Kubernetes做着贡献。Apache Mesos就是这样的一个项目。该项目致力于为跨云环境的资源管理和调度提供高层次的抽象API接口。其他这样的项目还有Apache Aurora,Twitter利用该项目为Mesos提供服务调度功能。在更高的层次上,像ManageIQ这样的云服务管理平台为不同的云服务环境之间的工作负载和政策控制提供了一些管理方法,而值得一提的是,这些管理方法加入了商业规则的考虑,而不是仅仅考虑了技术实现上的问题。
我们见证了数据和存储技术上从模拟混合到匹配,再到重新混合的过程。大数据平台不断地融合了从Hadoop MapReduce到Apache Spark再到像Gluster和Ceph这样的分布式存储系统的技术。Ceph是典型的OpenStack存储后台,在OpenStack的Folsom发行版中首次被包括进来,用以提供统一化的对象和块存储。
OpenStack是不同社区相互合作,协同开发的成功典范。我之前提到过OpenStackde 在做软件定义存储方面的研究,同时OpenStack也立足于软件定义计算和软件定义网络的研究。网络部分的研究和开发是最有意思的,因为该领域的开发将诸多开源社区都连接了起来,像Open Daylight(Linux基金会下面的SDN合作社区),Open vSwitch(可以看作Open Daylight的一个节点)和网络功能虚拟化项目(该项目在某些方面——如软件定义防火墙——比Open
Daylight做的更出色)的社区都是OpenStack网络部分的重要参与者。
很明显,真正加速今天的软件迭代更新的是众多依赖模块组合并增强功能后得到的东西。这是个动态变化的过程,所以很难有专利软件的身影。