弥合 OpenStack 和 Python 之间的差距

还没有人喜欢这篇文章。
diagram of planning a cloud

Opensource.com

一致性 - 对于任何大型开源项目来说都是必不可少的。在 OpenStack 的不同组件之间共享源代码和库对其快速发展至关重要。 Oslo 程序将所有内容整合在一起,并为 OpenStack 带来一致性。我们想更多地了解 Oslo 及其对 OpenStack 的作用。因此,我们请项目负责人分享他的想法。

认识 Doug Hellmann。他目前担任 Icehouse 版本 Oslo 程序的项目技术负责人 (PTL)。 Hellmann 是 DreamHost 的高级云开发人员,也是一名 Python 程序员,他喜欢参与 Oslo 程序,因为它有助于在 OpenStack 和 Python 社区之间建立交叉。

我们采访了 Doug,以了解更多关于 Oslo 的信息、OpenStack 的不同组件如何与它交互,以及我们可以在即将发布的 Icehouse 版本中期待什么。

OpenStack 公共库 (Oslo) 为 OpenStack 做什么?

Oslo 程序的成员帮助来自其他 OpenStack 程序的开发人员共享源代码。 当识别出两个项目实现的共同方面时,我们会帮助准备源代码并以易于重用的方式组织它。 我们还提供关于编码技术和现有 Python 开源库的一般建议。

为什么 Oslo 对 OpenStack 如此重要? 不同的组件如何与 Oslo 交互?

Oslo 程序为 OpenStack 带来一致性。在 Oslo 启动之前,一些 OpenStack 项目已经通过在存储库之间复制源代码来共享源代码。 这导致不同副本中的实现略有不同。 在 Oslo 下,这样的代码已被移动到“孵化器”中,以便为副本提供共同的来源并准备将源代码移动到库中。 孵化器减少了代码在项目之间更改的机会,并且将孵化的代码作为库发布提供了一个源代码的副本,同时仍然允许共享。

使用库在项目之间共享代码为我们带来了几个好处。 它确保我们有良好的测试覆盖率,因为库的维护者专注于测试包含的源代码,而不是使用它的应用程序。 库还鼓励开发人员参与 OpenStack 中的多个项目,因为他们已经熟悉正在使用的工具。 最重要的是,通过库共享源代码意味着部署者在具有新功能和错误修复的应用程序之间看到一致的行为,以及诸如应用程序使用相同的配置选项名称和文件格式之类的小事。

Oslo 团队正在为 Icehouse 版本开发哪些主要改进?

我们在 Icehouse 版本中取得了三个重大成功。

  • 首先,在哈瓦那周期接近尾声时,我们将 OpenStack 用于内部通信的代码发布为一个名为 oslo.messaging 的库。 对于 Icehouse,我们已经开始更新应用程序以使用新的库。 正在进行的工作为我们提供了关于流程和工具的一些重要见解,我们需要让类似的采用更快地进行。
  • 其次,大量工作已经投入到准备目前在孵化器中的数据库访问代码以作为库发布,我们预计在 Juno 周期中完成。 消息传递和数据库库是 Oslo 中最大和最常用的代码库,因此我们正在注意将从消息传递库中吸取的经验教训应用于数据库库的工作。 我们引入了一些减慢了我们在 Icehouse 中的速度的更改,但它们应该使 Juno 期间的转换更加顺利。
  • 最后,我们最近“采用”了几个在 Oslo 程序之外创建的库,接管了管理并在库和使用它们的 OpenStack 项目之间引入了对称测试,利用了运行集成 OpenStack 组件的功能测试的相同工具。

对于有兴趣为 Oslo 做出贡献的人来说,有哪些机会?

OpenStack 社区拥有强大的代码同行评审文化,因此,与任何其他 OpenStack 项目一样,熟悉并开始为 Oslo 做出贡献的最佳方式是深入研究我们其中一个存储库的代码审查(参见 wiki.openstack.org/wiki/Oslo 以获取列表)。 审查补丁为您提供了筛选蓝图和错误报告集合的上下文,并且来自新审查者的见解通常会暴露现有开发人员在其代码中所做的隐藏假设。 参与我们的代码审查过程是做出贡献的真正重要的方式。

识别项目之间代码重用的机会也很重要。 相对于整个社区的规模而言,Oslo 团队很小,并且该社区正在产生大量源代码。 找到表明创建库的模式通常需要熟悉多个项目,并且随着项目数量的增长,我们必须更多地依赖于这些项目的贡献者来提出库本身。

在 Juno 期间,我们计划从孵化器中发布更多库,因此,如果您对源代码的特定领域、帮助管理这些版本或更新项目以使用这些库有特别的兴趣,那么将会有很多机会来协助这项工作。

在 Oslo 和 OpenStack 上工作让您兴奋的是什么?

我们正在构建的软件显然很重要,但 OpenStack 最令人兴奋的方面是人。 从我参与 Folsom 峰会的一开始,社区就非常热情和支持。 我将我们的快速增长很大程度上归功于这种态度以及它产生的协作。

我将 Oslo 程序视为部分负责鼓励 OpenStack 内的持续协作。 当我们开展工作时,我们与大多数集成项目进行交互,有时我们需要协商对库的更改,以便使其对多个项目有用。 提醒每个人他们正在处理的组件如何适应整个项目是该协商的一个重要方面。

Oslo 还提供了整合 OpenStack 和 Python 社区的机会。 当我们在 Oslo 中审查代码时,我们会考虑诸如我们是否应该创建和维护一个新库而不是使用已经存在的东西,以及如何发布我们创建的库以便其他项目可以使用它们之类的问题。 我成为 Python 社区的成员的时间远远长于我参与 OpenStack 的时间,直到最近这两个群体之间的交叉很少。 这种情况正在发生变化,因为我们已经开始联系我们使用的库和工具的作者,并且其他开发人员正在查找和使用我们发布的库。

如果您可以命名 OpenStack 的下一个版本,您会称它为什么?

像很多人一样,我以为在巴黎以 K 开头的名字会很困难,但我看到 Av. Kléber 和 Rue Kepler 都离峰会举行的区域相当近。

 

标签
Avatar
Jason Hibbets 是 Red Hat 的社区主管,隶属于数字社区团队。 他与 Enable Architect、Enable Sysadmin、Enterprisers Project 和 Opensource.com 社区出版物合作。

评论已关闭。

Creative Commons License本作品已根据 Creative Commons Attribution-Share Alike 3.0 Unported License 获得许可。
© . All rights reserved.