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

OSS貢献活動

Kubernetesに対するNECの取り組み

NEC では、Kubernetes (クーバネティス) コミュニティにおいて開発貢献しており、そこでの成果やノウハウを活用しながら、Kubernetes をベースに様々な OSS を組み合わせたコンテナ実行基盤である new windowRed Hat OpenShift Container Platform (以降「OpenShift」と表記) や、Kubernetes を活用したサービスを提供しております。 ここでは、Kubernetes に対するNECの取り組みを紹介します。

Kubernetes とは

現在 (2024年2月時点)、クラウド向けアプリケーションでは動作環境をコンパクトにパッケージングしたコンテナという単位での稼働が増えつつあり、Kubernetes はそのようなコンテナを管理するコンテナオーケストレーターと呼ばれるソフトウェアのデファクトスタンダードです。コンテナの状態管理やリクエストの量に応じた稼働数の調整、コンテナの動作に必要なネットワークやストレージの提供、監視など、多種多様なコンテナを大規模システムとして稼働するために不可欠な機能を提供しており、クラウドコンピューティングを支える重要なオープンソースソフトウェア (以下、OSS) の一つになっています。

Kubernetes は、Google 社から2014年に OSS として公開されました。2015年に Google 社と Linux Foundation は、コンテナ技術の推進を目的とした団体である、Cloud Native Computing Foundation (以降「CNCF」と表記) を設立し、CNCF のプロジェクトとして、Kubernetes の開発を推進することになりました。この結果、多数のグローバル企業やエンジニアが開発に参加することになり、Kubernetes コミュニティは急速に成長し、2021年の時点で、new window総勢6万2千人のコントリビューターが参加する規模になっています。この Kubernetes コミュニティによるオープンイノベーションに支えられ、Kubernetes は日々強化され進化しています。また、CNCF は、Kubernetes のみならず、これらクラウドコンピューティング関連のnew window様々な OSS プロジェクトをホストしています。

Kubernetes のエコシステム

クラウドコンピューティングを支えるプラットフォームは、Kubernetes を基盤として、サービスメッシュ、サーバレス、Function as a Service などのクラウドネイティブフレームワーク、コンテナレジストリや CI/CD、テスト環境などの開発環境、機械学習や人工知能などのインテリジェンス、エッジや IoT、WebAssembly など、様々な領域へと拡大しています。詳細は new windowCNCF Cloud Native Interactive Landscape を参照ください。

また、Kubernetes の企業導入をサポートするため、Kubernetes や周辺の OSS をベースとした商用サービスや製品が様々なベンダーから提供され、導入の選択肢が広がっています。このようなベンダーは、開発者コミュニティにアイデアや課題、利用者の声をフィードバックしたり、改善のために自ら開発に参加したりして、Kubernetes をより良い OSS に進化させています。

Linux Foundation は、new windowクラウドネイティブ技術を学ぶためのトレーニングや、企業や開発者が一定の技術力を有することを証明するnew window認定制度を提供し、クラウドネイティブ技術を持つ開発者を育てる取り組みを推進することで、エコシステムの発展を推進しています。

CNCF は、Kubernetes の普及促進のため、KubeCon+CloudNativeCon を年2回定期開催(new window米国開催new window欧州開催)しています。Kubernetes エコシステムのメンバーが一堂に会するイベントで、個人開発者や企業はイベントに参加して、その技術力をアピールするだけでなく、併設の Kubernetes Contributor Summit (new window米国開催 new window欧州開催にて互いにアイデアを持ち寄り、直接議論しています。近年では数千から1万数千人の大規模なものとなるほか、リモート参加も可能となり、ますます活況を呈しています。また、世界各国で Kubernetes 関連のローカルイベントが開催されています。国内では、new windowKubernetes Meetup Tokyo コミュニティ主催のイベントが開催されています。

Kubernetes コミュニティ

Kubernetes コミュニティの構成

Kubernetes を開発している Kubernetes コミュニティ (開発者コミュニティ) は「中央集権化より分散化」「製品や会社よりコミュニティ」「プロセスの自動化」「排他的より包括的」「進化は停滞に勝る」のnew window価値観を持ち、Kubernetes プロジェクトの継続的な成功の鍵となっています。これを実践するためのnew windowガバナンスアプローチが、new windowコミュニティグループです。コミュニティグループは次のようなグループで構成され、様々な活動が行われています。

Special Interest Group (SIG): Kubernetes プロジェクトは複数のnew windowサブプロジェクトから構成されていますが、Kubernetes コミュニティでは、複数の同一領域のサブプロジェクトを Special Interest Group(特定の技術領域について開発を行うエンジニアのグループ)と呼ばれるグループで束ね、サブプロジェクト(リポジトリ)毎に開発が進められています。

ワーキンググループ: 複数領域にまたがる課題を解決するための複数 SIG を横断したグループ

ユーザーグループ: 特定の技術や製品とKubernetes とを統合するためのテクニックとベストプラクティスについてアドバイスするグループ

委員会: Kubernetes コミュニティの運営 (new windowSteering Committee)、セキュリティ対応 (new windowSecurity Response Committee)、行動規範 (new windowCode of Conduct)

k8s-community

Special Interest Group (SIG) での開発

Kubernetes コミュニティには、多様な国や文化、立場などの背景を持つ開発者が自発的に参加して、コーディングやドキュメンテーション、フィードバックなど様々な貢献を行っています。SIG では、開発者は Kubernetes コミュニティの価値観や行動規範を共有し、オープン性や多様性、公平性を重視した持続的な開発が行われています。

SIG とそのグループに属する複数のサブプロジェクトでは、開発者はnew window様々な役割のもとで開発を進めています。SIG Chair は、複数のサブプロジェクトを統括する開発者です。Subproject Owner は、特定のサブプロジェクトを統括する開発者です。他にも次のような役割があります。

役割 説明
SIG Chair 同じ領域のサブプロジェクトを統括する開発者
Subproject Owner サブプロジェクトを統括する開発者
Approver コードをマージする責務を負う開発者
Reviewer コードをレビューする責務を負う開発者
Member アクティブにコードを提出する開発者
New Contributor 新たに貢献を始めた開発者

サブプロジェクトのソースコードリポジトリは、ソフトウェア開発プラットフォームの new windowGitHub にあり、普段の開発はオンラインでオープンな形で進められています。GitHub のイシュートラッカー (課題追跡) を使った課題提起と議論、プルリクエスト (変更要求) での機能仕様やソースコードの提案と議論、あるいは、オンラインコミュニケーションツールの new windowSlack で議論を行いながら、仕様検討やコーディング、ドキュメンテーション、および、それらのレビューを進めています。年に2回の Kubernetes Contributor Summit(new window米国開催new window欧州開催では、対面 (Face to face) で集中した議論も行ったり、新しいコントリビューターを直接支援したりしています。

NEC の取り組み

Kubernetes 開発活動

NEC は、Kubernetes コミュニティで下記の領域でプロジェクトの開発に貢献しています。お客様の課題解決に貢献するべく、ユーザーの観点や運用者の観点で幅広く開発に携わっています。

SIG GitHub
リポジトリ
ポジション 活動内容
UI kubernetes/dashboard SIG Chair お客様のユーザーエクスペリエンス向上に寄与することを目的として、機能開発や国際化、セキュリティ対応などに貢献しています。
Cluster Lifecycle kubernetes-sigs/cluster-addons Reviewer kubernetes-declarative-pattern リポジトリのモジュールを使った実装例の品質向上に貢献しています。
kubernetes/minikube Member 品質向上や日本国内のニーズに応えるための日本語訳に貢献しています。
API Machinery kubernetes-sigs/kubebuilder-declarative-pattern Approver Kubernetes に独自の管理対象を追加できる kubebuilder のプラグインの品質向上及び機能追加を行なっています。より効率的な Kubernetes クラスタの管理を支援することが目的となります。
Contributor Experience kubernetes-sigs/contributor-playground/japan Approver Kubernetes コミュニティに参加するための導入トレーニング「new windowKubernetes アップストリームトレーニング」を日本人向けに提供し、日本におけるコミュニティの拡大を支援しています。
Docs kubernetes/website Reviewer new windowKubernetes のドキュメントに対して、日本語ページの追加や更新を行なうことで、日本国内のニーズに応えています。また、必要に応じて原文の修正にも携わり、ドキュメントの品質向上に貢献しています。
CLI kubernetes/kubernetes Member 案件適用する際に顕在化した機能追加要望や障害の対応を行っており、お客様の課題解決に貢献しています。
Node kubernetes/kubernetes Member
Storage kubernetes/kubernetes Member

(2024年2月時点の情報)

NEC グループの主なコントリビューターについてはnew windowこちらをご覧ください。また、一部のコントリビューターは、new windowCertified Kubernetes Administrator (CKA) の資格を持ち、NEC は、new windowKubernetes Certified Service Providers (KCSP) になっています。

CNCF プロジェクト支援

NECは、開発貢献に加えて、Kubernetes が継続発展し、お客様に安心してご利用いただけるよう、2018年5月より new windowCNCF のゴールドメンバーとなり、CNCF のプロジェクトを支援しています。

Kubernetes 普及促進の活動

NECは、KubeCon+CloudNativeCon や new windowOpenSource Summit Japannew windowCloudNative Days などの国内外のイベントで Kubernetes の普及促進の活動に取り組んでいます。

Kubernetes コミュニティへの参加支援

Kubernetes コミュニティに参加を希望する日本人エンジニアのために、new windowアップストリームトレーニングを国内イベントとして開催しています。コミュニティで開発を行うために必要な作業と手順、そして考え方を紹介し、実際の作業をハンズオンで体験できる日本語のトレーニングです。コミュニティへの参加を支援するだけなく、オープンソースへの貢献文化の浸透やクラウドネイティブ技術の普及を目指したものであり、Kubernetes コミュニティやイベント主催者の協力を得て、オープンに実施しています。

Kubernetes に関する情報発信

NECグループのコントリビューターが、Kubernetes 開発の最新情報や Kubernetes コミュニティとともにお客様の課題解決に貢献したエピソードなどを各種イベントでの講演やブログにて紹介しています。

Kubernetes を活用したコンテナ実行基盤への取り組み

NEC では Kubernetes コミュニティにおける NEC の貢献成果の反映、活用を含め、new windowOpenShift と連携して、以下のような取り組みを行っており、エンタープライズレベルのコンテナ実行基盤を安全に安心して利用可能な形で提供しています。

・NEC の Kubernetes エンジニアを米国 Red Hat 社に送り込み、開発現場でダイレクトにお客様要件の実現や迅速な改善をドライブ

・NEC 独自の検証と知見をベースに、安全に利用可能な機能、アップデートパスの見極め、推奨構成や設計を確立

・推奨構成/設計リファレンス/手順書の提供および、お客様環境を踏まえた調整、デリバリ、アップデートなどの包括的支援

・推奨構成をベースとしたお客様環境を安心してご利用可能とするサポートサービスの提供

今後の取り組み

NEC は Kubernetes エコシステムの一員として、Kubernetes の持続可能な発展に貢献するとともに、お客様には安心してご利用いただける Kubernetes を活用したコンテナ実行基盤を提供して参ります。