業界: ソフトウェア開発

使用されている JetBrains 製品: PyCharm

組織規模: 500+

国: グローバル

OpenStack

OpenStack は世界で最も広く利用されているオープンソースクラウドソフトウェアの 1 つです。 このソフトウェアは、187 カ国にまたがるエコシステムで 200 件以上のプロジェクトが登録され、積極的な貢献が行われているコミュニティのためにコミュニティが開発しているものです。 OpenStack は「PyCharm Project of the Decade」(過去 10 年間で最も優れた PyCharm プロジェクト)に選出されました。

“サポートしている機能の豊富さを考慮すると、PyCharm はテキストエディターと比較して多くのメリットがあります。Python 開発に関して言えば、PyCharm はリモートデバッグ、コード品質チェック、Docker や Kubernetes などのサードパーティ製ソフトウェアとの連携といった機能の点で間違いなく傑出しています。”

— Swapnil Kulkarni、アクティブテクノロジーコントリビューター、OpenStack

自己紹介をお願いします。また、OpenStack の貢献者になるまでの経緯について簡単にお話しいただけますか?

私は 12 年のソフトウェア開発経験があります。これまで 4 年以上にわたって OpenStack コミュニティのコンテナーチームと協業しており、プロジェクト Kolla による OpenStack 開発の完全コンテナー化といった OpenStack のコンテナーエコシステムを活用するための複数のユースケースに取り組んできました。現在は OpenStack 要件チームのコアレビュアーとしても活動しています。

まだ OpenStack を知らない方のために、説明をお願いしてもよろしいでしょうか?

OpenStack は NASA と Rackspace が最初に貢献を行い、オープンソースのクラウドオペレーティングシステムとして誕生しました。これにより、オープンソースのプライベートクラウドを求めていた企業に待望の代替プラットフォームが提供されました。当初はコンピュート(Nova)およびオブジェクトストレージ(Swift)コンポーネントだけでしたが、その後は 250 社以上のアクティブテクノロジーパートナーを獲得して開発者がさまざまな機能に活発に貢献するようになりました。その結果、最終的には実用的なプライベートクラウドのデプロイプラットフォームへと変貌を遂げました。

OpenStack はどこで運用されていますか?

OpenStack は 187 カ国以上で運用されており、各地に開発者コミュニティと運用拠点があります。ノード数が 1 桁台の小規模な開発クラスターから、数千ノードを擁する大規模なクラスターまでさまざまなユーザーベースが存在します。その中でも、CERN 研究所は最大のものです。

オープンソースプロジェクトとしての OpenStack をどのように管理しているのでしょうか?

OpenStack エコシステム内のさまざまなプロジェクト、活動、イベントは、OpenStack Foundation によって管理されています。ソースコードは OpenDev リポジトリで管理されているソースコードから GitHub にミラーリングされており、Gerrit を利用してレビューされています。プロジェクトとコミュニティに関する技術的な決定は、コミュニティ全体から公開選挙プロセスを経て選出された有効貢献者が参加する専門委員会によって行われています。

現在、エコシステムで積極的に貢献が行われているプロジェクトは 200 件以上存在します。これらのプロジェクトは、コンピュート、ストレージ、ネットワーキング、QA、開発、セキュリティ、AI/ML などに分類されています。毎週数千件のレビューが寄せられているため、コミュニティは Vexhost のような企業のインフラストラクチャを利用して継続的インテグレーションとジョブのデリバリーを実施しています。

OpenStack チーム

OpenStack チームの構成について教えていただけますか?

各 OpenStack プロジェクトにコアチームが存在します。チームの規模は貢献者数と寄せられるレビューの数によって異なります。5 名程度の小規模なコアチームの場合もあれば、大規模なプロジェクトグループでは 50 名以上のチームになる場合もあります。各プロジェクトグループは、コミュニティ全体の目標達成というより大きな流れを構成しているものです。また、開発チームとは別に要件や OpenStack のデプロイに関する問題に協力し、集中的に取り組む運用者グループのような専門部会も存在します。さらには、OpenStack ユーザーからフィードバックを募るユーザー委員会と、ユーザー / 開発者 / オペレーター / Foundation 理事会メンバーとを仲介する技術委員会もあります。

OpenStack ではどんな言語とテクノロジーが主に使用されていますか?

OpenStack のコードベースの 95%以上は Python で書かれています。Web 開発に関しては、必要に応じて Django フレームワークを使用しています。

Python の特徴と、メイン言語に選択した理由を教えていただけますか?

Python の特徴は、何よりも迅速な開発に適していることです。Python を使用すると、他の言語よりもはるかに高速に新機能を開発できます。それだけではなく、配信の容易さも重要です。OpenStack の開発モデルは非常にハイペースであり、技術的な機能が豊富で堅牢なライブラリを備えた言語を要求するサブシステムとの連携が必要になることもしばしばです。このような言語はオブジェクト指向の動的型付け言語である必要があります。Python はこのニーズを 100%満たしています。また、簡潔で読みやすく、理解しやすい言語であることも好まれる理由の一つになっています。

御社のチームではどのような 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 をお勧めする際に紹介している主な機能を 3 つ教えてください。

承知しました。私は常に 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 に接続するだけでほとんどの基盤を再利用できます。 今では共有コードベースで作業を行っており、プラットフォーム間のコラボレーションが促進されています。

その他のカスタマーストーリー