行业: 软件开发

使用的 JetBrains 产品: PyCharm

组织规模: 500+

国家/地区: 国际

OpenStack

OpenStack 是全球部署最广的开源云软件之一。 它由社区开发,为社区服务。在遍布 187 个国家/地区的生态系统中,超过 200 个项目正在获得活跃贡献。 OpenStack 已被选为“PyCharm Project of the Decade”。

“与文本编辑器相比,PyCharm 在支持的功能上具有大量优势。在 Python 开发方面,PyCharm 凭借远程调试、代码质量检查以及第三方软件(如 Docker 和 Kubernetes)集成等绝佳功能脱颖而出。”

— Swapnil Kulkarni,OpenStack 活跃技术贡献者

您能否向我们介绍一下您自己以及您成为 OpenStack 贡献者的历程?

我有超过 12 年的软件开发经验。我已经在 OpenStack 社区的容器团队工作 4 年多,参与了多个利用 OpenStack 中容器生态系统的用例,例如 OpenStack 的整个容器化部署与 Kolla 项目。我也是 OpenStack 需求团队的核心评审员。

您能否为不认识您的人介绍一下 OpenStack?

OpenStack 最初是由 NASA 和 Rackspace 贡献的开源云操作系统,它为寻求开源私有云的企业提供了必要的替代平台。OpenStack 最初只有一个计算 (Nova) 和对象存储 (Swift) 组件,如今拥有超过 250 个活跃技术合作伙伴。依赖于活跃开发者为各种功能做出的贡献,它已成为可行的私有云部署方案。

OpenStack 在哪些地方运营?

OpenStack 在超过 187 个国家/地区运营,在各大洲都拥有开发者社区和操作者团队。从具有个位数节点的小型开发集群到具有数千个节点的大规模集群(如最大的 CERN 实验室之一),用户群多种多样。

和我们讲一讲 OpenStack 作为开源项目是如何组织的?

OpenStack 生态系统中的不同项目、计划和活动均由 OpenStack 基金会管理。源代码从 OpenDev 仓库上的源代码镜像到 GitHub,并使用 Gerrit 进行彻底审查。项目和社区相关技术决策由技术委员会做出,委员会由社区范围内所有活跃贡献者公开选举组建。

生态系统中有超过 200 个项目正在获得活跃贡献。这些项目可以分为多个流,如计算、存储、网络、QA、部署、安全、AI/ML 等。面对每周成千上万的传入审查,社区依靠 Vexhost 等公司贡献的基础架构执行持续集成和交付作业。

OpenStack 团队

OpenStack 团队是如何组织的?

每个 OpenStack 项目都有自己的核心团队。团队规模取决于贡献者的数量和即将进行的项目审查,可能是 5 人左右的小型核心团队,也可能是超过 50 人的大型项目组团队。每个项目组都从属于具有社区性目标的更大流程。除开发团队外,我们还有特殊兴趣小组,例如操作者小组,这个小组协作并专注处理 OpenStack 部署的需求和问题。我们的用户委员会负责从 OpenStack 用户那里获得反馈,技术委员会则促进用户、开发者、操作者和基金会理事会成员之间的联系。

在 OpenStack,通常使用哪些主要语言和技术?

整个 OpenStack 代码库中 95% 以上使用 Python。对于 Web 开发相关需求,我们使用的是 Django 框架。

Python 有什么特别之处,您为什么选择它作为主要语言?

首先,Python 非常适合快速开发。使用 Python 开发新功能比使用其他语言快得多…当然,有些语言也很不错,但这里的重点是:交付能力。OpenStack 的开发模型节奏非常快,经常需要与子系统一同运作,这就要求语言具有丰富的技术特性和稳健的库。语言应以对象为导向并且动态类型化,而 Python 恰恰完全满足了这些需求。同时它也非常简洁直观,易于阅读和理解,所以我们格外喜欢它。

您和您的团队正在从事哪种 Python 开发?

OpenStack 团队中有多个 Python 开发流。我们有所有模块的 API、调度算法、对不同硬件组件(例如监控程序)和存储子系统进行本地调用的组件。Python 还用于 Django 框架 Web 仪表板开发中的不同需求。

您认为 OpenStack 开发者面临的主要开发挑战是什么?

OpenStack 这样的大型项目需要多个内部项目以及外部支持组件的集成点。它需要单项目和跨项目调试、Git/Gerrit 集成、管理需求、实时调试,使用 Vagrant、Docker、Ansible 和 Kubernetes 等集成,这些只是其中的一部分主要挑战。PyCharm 这样的工具带有能够满足需求的集成点或插件,无疑将帮助开发者克服很多困难。

OpenStack 有 200 名核心开发者使用 PyCharm。它如何帮助开发者提高生产力?

与文本编辑器相比,PyCharm 在支持的功能上具有大量优势。在 Python 开发方面,PyCharm 凭借远程调试、代码质量检查以及第三方软件(如 Docker 和 Kubernetes)集成等绝佳功能脱颖而出。在我的团队中,PyCharm 最突出的功能是远程调试和 Docker 集成。

PyCharm 对于大多数用户来说都非常好用,它支持项目范围的代码样式一致性和版本控制。许多开发者也喜欢快速修复功能,用它可以在修复小错误和重新设置代码格式时节省很多时间。此外,调试支持也让开发团队更容易验证功能开发。您还可以使用 Gerrit 插件从 IDE 本身管理代码审查。

那么您自己呢,PyCharm 的哪些功能最能提高您的工作效率?

我是 OpenStack 中多个容器化项目的贡献者,拥有一个支持 Docker 集成的 IDE 真的让我轻松很多。它还可以帮助我为尚未容器化的项目进行一些额外的容器测试。

您是否曾向朋友或同事推荐过 PyCharm?推荐 PyCharm 时,您首先会提到哪三项功能?

是的。我不仅经常向朋友和同事推荐 PyCharm,还会根据具体需求推荐 JetBrains 的整套产品。像我之前提到的,无论您是新手还是经验丰富的开发者,智能代码编辑器、智能代码导航、Git 和 Docker 等支持工具的集成支持等功能都会对您有所帮助。可靠的工具能够给开发者提供必要的支持,让开发者可以专注于开发工作。

联系方式

Swapnil Kulkarni,OpenStack 活跃技术贡献者

twitter.com/coolsvap
www.openstack.org

同类客户案例

RoadBotics

Matt Lucas,RoadBotics 产品主管

我们已部分改用 WebStorm,因为许多高级功能都已经预打包,这样我们就可以快速地开始工作,同时减少对其他第三方的依赖。 而且,将我们所有的软件许可证集中于一处更易于管理开发工具的访问权限。

Instil

Garth Gilmour,Instil 教学主管

当 2020 年 3 月出台社交距离限制后,作为虚拟课程的一部分,我们需要一款可以让我们与学生进行在线协作的工具,而 Space 正是理想的选择。

Autodesk

Ben Asher,Autodesk iOS 开发者

工程师可以使用 Kotlin Multiplatform 构建新功能并在一个平台上对其进行测试,然后其他平台可以只将数据模型和业务逻辑挂接到其平台上的 UI,并重用大多数基础工作。 现在,我们在共享的代码库中工作,我们会更多地跨平台协作。

更多客户案例