NECが開発貢献するオープンソース

OSS貢献活動

OpenStackに対するNECの取り組み

NEC では、OpenStack プロジェクトにおいて開発貢献しており、そこでの成果やノウハウを活用しながら、OpenStack を活用したサービス・ソリューションを提供しております。 ここでは、OpenStack に対する NEC の取り組みを紹介します。

OpenStack とは

new windowOpenStack は、仮想マシン、ベアメタル、コンテナのためのクラウドインフラストラクチャーです。コンピューティング、ストレージ、およびネットワークリソースの大規模なプールを制御し、API またはダッシュボードを介して管理します。大規模なデータセンタークラウドや IoT システム、 5G 用エッジノードなどに、自動化されたスケーラブルなインフラストラクチャを提供します。

OpenStack 概要

OpenStack 概要
(new windowhttps://www.openstack.org/ から図を引用)

OpenStack プロジェクトの立ち上げのきっかけは、2010年に Rackspace Hosting がオブジェクトストレージ「Swift」、NASA がコンピュート「Nova」の基となるソースコードをオープンソース化したことです。2012年に OpenStack Foundation (現在、Open Infrastructure Foundation) が設立されて、世界中から多数のメンバーがプロジェクトに参加して開発が進められています。

現在、OpenStack は、次のような多数のコンポーネントで構成されています。

OpenStack コンポーネント

OpenStack コンポーネント
(new windowhttps://www.openstack.org/ から図を引用)

Open Infrastructure Foundation とは

new windowOpen Infrastructure Foundation (以下 OpenInfra Foundation) は、各種 OpenInfra プロジェクトをホストする米国の非営利団体です。その前身は、OpenStack プロジェクトをホストするために、2012年に設立された OpenStack Foundation です。2020年10月に、OpenStack を含む各種オープンインフラストラクチャの開発と採用をグローバルにサポートするために、OpenStack Foundation の後継団体として発足しました。

OpenInfra Foundationは、クラウド基盤 new windowOpenStack、コンテナランタイム new windowKata Containers、CI/CDプラットフォームである new windowZuul、エッジコンピューティング new windowStarlingX など多くのプロジェクトをホストしています。

ガバナンスアプローチとして、オープンソース、オープンデザイン、オープン開発、オープンコミュニティの4つのオープン (new windowFour Opens) を行動指針とし、理事会 (Board of Directors) と各プロジェクトの技術委員会 (Technical Committee) で構成されています。理事会は、OpenInfra Foundation の事業および業務を管理します。技術委員会はプロジェクトの活動を管理します。

OpenStack プロジェクト

OpenStack は複数のコンポーネントでクラウド基盤を構成しています。OpenStack プロジェクトは、OpenInfra Foundation がホストするプロジェクトの一つで、OpenStack の各コンポーネントを開発しています。

各コンポーネントには new windowOpenStack Project Teams (以下、プロジェクトチーム) があり、コンポーネントの開発や、メンテナンス、 QA (Quality Assurance) 、リリース管理等を行います。

プロジェクトチームは、4つオープンの原則のひとつのnew windowオープン開発を実践し、プロジェクトチームリード (PTL: Project Team Lead)、コアレビュアー (Core Reviewers)、開発者 (Developers) で構成されています。プロジェクトチームリード は、担当するプロジェクトを統括し、管理リーダーシップを取る責任があります。コアレビューアーはレビューを含めプロジェクト運営を共同で行います。開発者はプロジェクトの開発を行います。

new windowOpenStack 技術委員会 (Technical Committee) は、OpenStack プロジェクトの管理を行う組織です。new windowメンバーはプロジェクトへの貢献者の中から直接選出され、技術的事項を監督します。ソフトウェアの開発者、オペレーター、およびエンドユーザーが含まれます。

OpenStack Open Development

OpenStack プロジェクト

OpenInfra エコシステム

OpenInfra コミュニティは187 か国の 110,000 人を超える規模です。OpenInfra Foundation は、コミュニティに対して、OpenStack などのオープンソースインフラストラクチャーの普及促進のため、毎年、new windowOpenInfra Summit を開催しています。基調講演、プレゼンテーション、パネル、ハンズオンワークショップ、および OpenInfra Foundation がホストするプロジェクトを含む、クラウド、5G、NFV、エッジ、AI、機械学習、HPC、CI/CD、コンテナ等の様々なオープンソースプロジェクトをカバーするセッション等で構成され、オープンソースインフラストラクチャーを構築および実行している人々と直接コラボレーションできます。また、OpenInfra Foundation は、世界各地で開催される OpenInfra 関連のイベントをサポートしています。

国内では、new window日本 OpenStack ユーザ会が、OpenStack 関連の勉強会、イベント開催等の活動を行っています。クラウド運営者を対象とした、new windowCloud Operator Days Tokyo も開催されています。

NEC の取り組み

NEC は、OpenStack の開発および OpenStack エコシステムの発展に貢献しています。

OpenStack 開発への貢献

NEC は、2011年11月から OpenStack プロジェクトに参加して開発活動を行っています。2016年には、弊社のソフトウェアエンジニアが日本人として初めてプロジェクトチームリード (PTL) に就任しました。その後も、様々なプロジェクトで、PTL や Core Reviewer の役割を担い、プロジェクトをリードして、OpenStack の開発に貢献しています。

現在 (2024年1月時点) は、new windowHorizon (Dashboard), new windowCinder (Block Storage service), new windowTacker (NFV Orchestration service), new windowQuality Assurance, new windowNova (Compute service) 等のプロジェクトに参加して開発を行い、いくつかのプロジェクトで、PTL や Core Reviewer として貢献しています。OpenStack への開発貢献の詳細は、次の通りです。

コンポーネント ポジション 活動内容
Horizon Project Team Lead (PTL), Code Reviewer Horizon は OpenStack のダッシュボード機能を提供するコンポーネントです。NECは、Horizon の開発・保守で、Project Team Lead の役割を担い、開発をリードして、コード作成、バグ修正、レビュー、およびテストに関する活動を行っています。また、Horizon は、現在、非常に少数のアクティブな貢献者によって維持されている課題に直面しています。NEC がこのプロジェクトをアクティブに保つことへの貢献は、開発者コミュニティで非常に高く評価されています。活動の詳細は次のとおりです。

- Horizon と Nova、Cinder など他コンポーネントとの機能ギャップを埋める活動
- Nova、Neutron、Cinder などのすべてのサービスのポリシールールファイルの更新
- Horizon とそのプラグインが依存している、Django, AngularJS, Node.js などの OSS を最新版 や LTS (Long Term Support) 版に保つ活動
- jQuery、jQuery Migrate plugin などの Xstatic パッケージの最新バージョンとの連携
- セキュリティバグの修正
Cinder Contributor Cinder(Block Storage Service)は仮想マシンのインスタンスが使用するブロックストレージデバイス(ボリューム)を提供するコンポーネントです。NECは、Cinder のバグ修正と new windowReset State Robustification 機能の実現に貢献しています。この機能は、ボリュームのリセット状態を堅牢にする機能で、ユーザがボリュームの状態を理解しないまま、ボリュームを無効にするのを抑止します。

Tacker

Core Reviewer, Contributor NFV(Network Functions Virtualization)は、ネットワーク機能の仮想化技術で、仮想マシン上にネットワーク機器の機能を実現します。Tacker (NFV Orchestration service) は、NFV オーケストレーションを実現するコンポーネントです。NECは、コントリビューターとして、機能提案とその実装、バグ修正で Tacker の開発に貢献しています。

- new windowマルチテナント機能と機能テストケースフレームワーク
- 既存のボリュームを VNF に接続する機能
- new windowtacker-horizon 統合テストおよびnew windowユニットテストのテストフレームワーク
- マルチテナンシーでのサブスクリプションと vnf パッケージのテスト
- バグトリアージ (Bug Triage) のアイデアの提案

また、NEC は、NTT や KDDI などの テレコムキャリアと連携して活動しており、OpenStack の商用利用で上がった課題の継続的な解決を図っています。

- new window NTT and KDDI Challenges for Sustainable Infrastructure Transformation

Quality Assurance (QA)

Core Reviewer Quality Assurance は、アップストリームの OpenStack の安定性と品質、およびリリースサイクル中の任意の時点でのリリース準備を確保するためのツールと計画を開発、維持、開始する活動です。NECは、2016年のプロジェクトチームリード (PTL) への就任するなど、このプロジェクトに継続して貢献しています。現在は、Core Reviewer の立場で、様々な活動を行っています。

- OpenStack の安定性を検証する OpenStack Upstream のテスト プロジェクトの維持を支援
- Tempest を OpenStack の新しい RBAC (Role Based Access Control, 役割ベースのアクセス制御) への移行
- Quality Assurance への貢献者は少なく、NEC がこのプロジェクトを活発に維持するための活動は、開発者コミュニティで非常に高く評価されています

Nova

Core Reviewer Nova は、OpenStack の中核コンポーネントのひとつで、コンピュートノードに仮想サーバーを作成して管理するサービスです。NECは、Core Reviewer として API と RBAC (Role Based Access Control, 役割ベースのアクセス制御) の改善と安定性に貢献しています。 他にも次の機能の実現に貢献しています。

- new windowPolicy Service Role Default: サービス間 API のアクセス許可をポリシーサービスのロールに分離する機能
- new windowPolicy Default Refresh: オペレーターによるポリシーを変更を不要にするために、より豊富なデフォルトを用意
- new windowAPI Consistency Cleanup: API のバージョン間の互換性を改善
- new windowMinimal user_id based enforcement for policy: 階層的なプロジェクトが実現するまでの架け橋として機能する、最小限の user_id ベースのポリシー適用メカニズム
- new windowMerge API extensions Controller and Schema code (Stein): API 拡張コントローラーとスキーマコードの統合

Neutron

Core Reviewer Neutron は、OpenStack の中核コンポーネントのひとつで、仮想ネットワークを提供するコンポーネントです。NEC は、プロジェクト初期から Core Reviewer としてプロジェクトに参画し、API, CLI などユーザーの利便性に関わる領域を中心に、Neutron の開発に幅広く関わっています。

(2024年2月時点の情報)

また、new windowOpenStack 技術委員会の議長を 1 年半以上務め、プロジェクト間の作業とコミュニティ全体の目標のためにコミュニティを支援しています。プロジェクトにまたがる作業には、次のようなものがあります。

NEC グループの主なコントリビューターについてはnew windowこちらをご覧ください。

OpenInfra エコシステムへの貢献

NEC は、OpenStack Foundation の立ち上げ直後からゴールドメンバーとして参加し、Open Infrastructure Foundation にゴールドメンバーとして OpenStack エコシステムの発展に貢献しています。

現在(2024年2月)、new windowOpenInfra Foundation 理事 (Individual Board Of Directors) を務めており、理事会では、OpenStack 技術委員会 (Technical Committee) や OpenStack プロジェクトと、理事会との相互の橋渡しを行っています。OpenInfra Finance Committee のメンバでもあります。

OpenStack エコシステムに対しては、First Contact SIGUpstream Institute Trainings、メンターシップなどのさまざまなプログラムを通じて、Open Infra コミュニティにより多くの貢献者を呼び込み、コミュニティへの参加を支援する取り組みや、OpenInfra Summit で講演等を行っています。国内では、日本 OpenStack ユーザ会に参加して、講演や勉強会の実施に貢献しています。

今後の取り組み

NEC は OpenInfra  エコシステムの一員として、OpenStack の持続可能な発展に貢献するとともに、お客様には安心してご利用いただける OpenStack を活用したソリューションを提供して参ります。