当我们谈论社区为开源软件带来的创新时,我们通常关注开源如何促成社区内的贡献和协作。 更多的贡献者,更少的摩擦协作。
然而,随着新的计算架构和方法为云计算、大数据、物联网 (IoT) 快速发展,开源开发模式的强大之处也变得越来越明显,因为它允许来自多个来源的创新以强大的方式重新组合和混合。 请考虑以下示例。
容器从根本上由 Linux 驱动。正如我最近更详细地讨论的那样,应用于裸机或虚拟化世界的所有安全强化、性能调优、可靠性工程和认证仍然适用于容器化世界。 实际上,操作系统在资源或安全隔离等任务方面承担的责任甚至可能比单个操作系统实例提供一定程度的固有隔离时更大。
容器在其当前形式中如此有趣的原因——基本概念可以追溯到十多年前——是因为它们汇集了来自 Docker 等社区的工作,这些社区专注于为容器打包应用程序,并普遍使容器更容易与 Linux 内核中的互补创新一起使用。 正是 Linux 安全功能(例如 Red Hat 的 Dan Walsh 在这篇文章中讨论的那些功能)和资源控制(例如 控制组)提供了安全利用容器应用程序打包和部署灵活性所需的基础架构。 然后,Project Atomic 将基于容器的应用程序和服务部署的工具和模式结合在一起。
我们在跨多个物理主机的容器管理和编排中看到了类似的交叉融合; Docker 主要只关注单个操作系统实例/主机内的管理。 您开始在编排领域听到很多关于 Kubernetes 的项目,它来自谷歌的内部容器工作。 它旨在提供诸如高可用性和复制、服务发现和服务聚合等功能。 然而,完整容器化环境的完整编排、资源放置和基于策略的管理将不可避免地借鉴许多不同的社区。
例如,许多项目正在研究可能通过提供框架和应用程序与调度程序交互的方式来补充 Kubernetes。 当前的一个此类项目是 Apache Mesos,它通过用于跨云环境进行资源管理和调度的 API 提供更高级别的抽象。 其他相关项目包括 Apache Aurora,Twitter 将其用作服务调度程序,以将作业调度到 Mesos 上。 在更高的层次上,诸如 ManageIQ 之类的云管理平台将管理扩展到混合云环境,并提供策略控制,以根据业务规则(而不仅仅是技术考虑因素)来控制工作负载放置。
我们在存储和数据中看到了类似的混合、匹配和重新混合。“大数据”平台越来越多地结合了从 Hadoop MapReduce 到 Apache Spark 到 Gluster 和 Ceph 等分布式存储项目的各种技术。 Ceph 也是 OpenStack 的典型存储后端——最初在 OpenStack 的 Folsom 版本中集成,以提供统一的对象和块存储。
总的来说,OpenStack 是一个很好的例子,说明不同的,也许只是略微相关的开源社区如何以强大的方式集成和组合。 我之前提到了 OpenStack 的软件定义存储方面,但 OpenStack 也嵌入了软件定义计算和软件定义网络 (SDN)。 网络是一个有趣的案例,因为它汇集了许多不同的社区,包括 Open Daylight(Linux 基金会下的协作 SDN 项目)、Open vSwitch(可用作 Open Daylight 的节点)和网络功能虚拟化 (NFV) 项目,这些项目可以位于 Open Daylight 之上——例如,创建基于软件的防火墙。
显然,尽管单个项目可能很有趣,但孤立地来看,真正加速当今软件变革步伐的是许多部分相互构建和放大的组合。 这是一种专有软件不可能实现的动态。
在 Hacker News 上讨论这篇文章。
评论已关闭。