OpenStack コミュニティの現在と今後
NEC 元木顕弘、吉山晃
NEC Technologies India Ghanshyam Mann
SUSE 井川征幸
CloudNative Days Tokyo 2019 / OpenStack Days Tokyo 2019
Day 1
Jul 22, 2019
自己紹介
井川 征幸
OpenStack QA
コア開発者
(顔写真) 元木 顕弘
OpenStack Networking,
Dashboard,
OpenStack Client
コア開発者
吉山 晃
OpenStack 開発者
アンバサダー
Ghanshyam Mann
OpenStack QA PTL,
Technical Committee (TC)
Nova, Infra, FC SIG etc
アジェンダ
● OpenStack 概要
● OpenStack コミュニティと状況
● OpenStack 開発 (Dev)
● OpenStack ユーザ(Ops)コミュニティ
● Dev-Ops Collaboration
○ Fast Forward Upgrade
○ Extended maintenance
● Community Goals
● 今後の OpenStack
OpenStack 概要
OpenStack 概要
クラウド基盤を構築する
オープンソースソフトウェア(OSS)
開発プロジェクト
● 2010年6月,米Rackspace社が立ち上げ
● 全世界で182カ国、672社、9万人近くの
コミュニティメンバーが参加
OpenStackの特長
真にオープンであること、幅広いエコシステム
● ソースコード、開発プロセスをすべて公開、誰でも参加可能
○ コミュニティのポリシーとして 4つの「Open」を定義
Open Source, Open Design, Open Development, Open Community
● 共通のインタフェースで多くの製品群から希望の組合せで利用可能
○ 他のOSSや製品群との連携を積極的に実施
OpenStack全体 https://www.openstack.org/assets/software/projectmap/openstack-map.pdf
オープンなアーキテクチャ
ユーザアプリケーション
OpenStackコントローラ ※簡略化の為主要機能の概要のみ記載
仮想サーバ管理
(Nova)
仮想NW管理
(Neutron)
仮想ストレージ管
理(Cinder)
Web UI
(Horizon)
ユーザ認証/認可
(Keystone)
ドライバ
(OSS/製品)
ドライバ
(OSS/製品)
ドライバ
(OSS/製品)
サーバ
仮想化機能
汎用サーバ
VM VM
ネットワーク
仮想化機能
汎用サーバ/
SDN製品
仮想
ルータ
仮想
FW
ストレージ
仮想化機能
汎用サーバ/
ストレージ製品
仮想ストレージ
アプリ層のエコシステム
OpenStack API
API/独自インタフェース
(検証された組み合わせを提供)
実行層のエコシステム
管理層
実行層
OpenStackの利用形態
オンプレミス
プライベート
パブリック
ホステッド
プライベート
コミュニティ
オンプレミスプライベートクラウドでの
導入数が最も多い
https://www.openstack.org/user-survey/2018-user-survey-report
最新版:Steinリリース
● Kubernetes 等のコンテナ実行基盤の構築・運用に有用な機能を多数実装
○ Magnum:Kubernetes基盤の構築時間を大幅に短縮
○ Manila:Kubernetesの永続ストレージとして利用可能に (OpenStack Cloud Provider経由)
○ Neutron:仮想ポートの一括作成に対応
○ Ironic:構築テンプレートに対応。
● 5G、エッジコンピューティング、NFV用途でのネットワーク機能を強化
○ Neutron:ネットワークセグメント範囲管理 REST API を実装され、柔軟に設定可能に
○ Neutron:ネットワークの最小帯域を管理可能に
○ Neutron:QoS 関連 REST API のポリシー(アクセス制御)を改善
● 各種リソース管理機能を強化
○ Blazar:運用者がクラウドリソースの予約状態を取得可能に
○ Placement:Novaから分離、独自プロジェクトに
○ Sahara: コア部分+プラグインにリファクタリング
4 Opens
● Open Source
○ 開発成果物は 100% OSS。オープンソース戦略を採用せず、 「商用版」も作らない
○ Apache License, 2.0 を採用
● Open Design
○ 設計過程をオープンに。コミュニティが設計過程をコントロール
○ 各開発サイクル毎に開発者が F2F で次期開発版の要件定義と仕様策定を実施。誰でも参加可
● Open Development
○ ソースコードリポジトリを公開し、全開発過程をオープンに。
○ オープンなコードレビューを実施。ロードマップも公開。
● Open Community
○ 意思決定に Lazy Consensus モデルを採用。全過程は明文化され、オープンでクリア。
○ プロジェクトの技術的統括は、コミュニティ内で選出された TC、PTL が実施。
○ プロジェクトのミーティングはオープンな IRCチャネルで行われ、記録される。
○ 技術MLでの議論も可能で、アーカイブを公開。
https://governance.openstack.org/tc/reference/opens.html
OpenStack コミュニティ
OpenStackのコミュニティ
大きく分けて2種類のコミュニティ
● 開発コミュニティ(Dev)
● ユーザコミュニティ(Ops)
○ operators meetups
○ 各国の OpenStack User Groups
日本では2010年より「日本OpenStackユーザ会」が活動中
← Dev〜Ops の相互フィードバック
を表現したもの
OSF and Board of Director
-----------------------------------
● Technical Committee
● User Committee
OpenStackサミット参加者数とPTG参加者数
〇〇以降のサミットと各 PTG 参加者数は公式発表値ではない事に注意 (参考値)
PTG
同時
開催
PTG
開始
350〜400
OpenStackサミット参加者数とPTG参加者数
● サミット参加者は OpenStack の成熟に伴い減少
● 「実際に使っている人」が参加者の中心に
● 主要な開発者の数は PTG (開発者会議) 開始以降あまり変化なし
→ 開発が安定期に入り、堅実な開発体制になってきている
開発者数と開発企業数の推移 (コミットベース)
出典:https://www.stackalytics.com
TOP3の活動度(Kernel, Chromium, ..)
パッチのコミット数とレビュー数
出典:https://www.stackalytics.com
開発期間
短縮
パッチのコミット数とソースコード改変行数
出典:https://www.stackalytics.com
開発期間
短縮
OpenStack 開発
OpenStack 開発コミュニティの体制
● Technical Committee (TC)
○ 13名
○ 半年ごとに約半数が改選
○ https://governance.openstack.org/tc/
● Project Team Lead (PTL) (63 projects)
○ プロジェクトごとのリーダ(プロジェクト毎に 1人)
○ https://docs.openstack.org/project-team-guide/ptl.html
● Core Reviewer Team
○ パッチをマージする権限を持つ
● Contributors
OpenStack 開発動向
● 開発サイクル
Upstream: 6ヶ月毎のリリース
Development: Train
Maintained: Queens, Rocky, Stein
Extended Maintenance: Ocata, Pike
● Community Goals ( https://governance.openstack.org/tc/goals/train/index.html )
● Support IPv6-Only Deployments
● Enabling PDF generation support for project documentation
● Update Python 3 test runtimes for Train
各プロジェクトの運営状況
プロジェクトを継続的に回していくための仕組みが構築されている
Neutron プロジェクトの例
● Feature Request
○ RFE (request for enhancement) が登録されると、
要望内容の妥当性を spec レビューチーム (neutron drivers team) で
週次のミーティングで議論。合議制で方針決定
○ 要望の妥当性が承認されると、 spec という形で実装の詳細を議論
● Bug Traging
○ 新規バグの影響度判断、カテゴリ分けを常時行う体制になっている
○ Bug deputy: 毎週チームメンバーがローテーションで担当
● Code Review (もちろん)
OpenStack
ユーザ(Ops)コミュニティ
OpenStack Ops Meetup / Ops Workshop
OpenStack 運用者の「声」を OpenStack 開発に取り入れるため、
2014年より実施されてきた OpenStack 運用者の勉強会/ワークショップ
今回 CNDT / OSDT 2019 も Ops Workshop を実施します。
日時:7/22(月) 13:00-18:30 ←本日
場所:ミーティング2
Ops の声を取り入れる体制が整ってきた
→ SIG
→ Summit での Forum セッション (ユーザーからのフィードバック)
→ openstack-discuss への統合
https://wiki.openstack.org/wiki/Operations/Meetups
OpenStack SIGs
SIGs = Special Interest Groups
特定のトピックを中心に議論するグループ。現在14グループ。
API, Auto-scaling, Bare Metal, Extended Maintenance, FEMDC, First Contact,
K8s, Meta, Operation Docs, Public Cloud, Resource Management, Scientific,
Security, Self-healing
SIG の議論から出てきた成果も!
https://governance.openstack.org/sigs/
Extended Maintenance (EM)
● Upstream Community による stable branch サポートが 12ヶ月から18ヶ月に
● 18ヶ月以降もパッチのバックポートが可能に (Extentended maintenance)
○ ただし、リリース番号が付与されるリリースは行われない
● stable branch の EOL は各プロジェクト単位で判断
● LTS は upstream community では行わず、distributor の判断に任せる
● リリースサイクルは6ヶ月を継続
Fast Forward Upgrade
● “Skip Upgrade” の要望の中から
「早回し」でアップグレードする方法でコンセンサスが得られた
● Controller Node (DB含む) は N→N+1→N+2 と順番に早回しでアップグレード
● Compute Node は Rolling Upgrade の Strategy でアップグレード
○ 早回しでアップグレードするが、全部を一度にはアップグレードできない
○ アップグレード中は リリース N の Compute ノードと N+X の Controller ノードが混在
● Upgrade SIG は目的を達成したということで、完了
Community Goals
● OpenStack プロジェクト全体としてリリースごとに取り組むテーマ
● OpenStack 全体として一定レベルの一貫性や User Experience を 提供していく取
り組み
○ ユーザーやオペレーターは OpenStack を一つのプラットフォームと見ている
● 当初はプロジェクト毎の実装の差異を吸収する側面が強かったが、 最近は運用者
視点でのゴール設定が行われてきている。
● どうやって決まるのか?
○ Summit の Forum で議論 (項目の頭出し, Developer & Operator からのフィードバック )
○ 次の開発サイクル開始までの間で具体化
○ 前の開発サイクルの終盤に TC 主導で、次のサ イクルのテーマを決定
https://governance.openstack.org/tc/goals/index.html#release-cycles
これまでの Community Goal
● Ocata
○ Remove Copies of Incubated Oslo Code
● Pike
○ Control Plane API endpoints deployment via WSGI
○ Support Python 3.5
● Queens
○ Register and Document Policy in Code
○ Split Tempest Plugins into Separate Repos/Projects
● Rocky
○ Enable mutable configuration
○ Remove use of mox/mox3 testing
● Stein
○ Run under Python 3 by default
○ Support Pre Upgrade Checks
Community Goals for Train release (ongoing)
● Support IPv6-Only Deployments
● Enabling PDF generation support for project documentation
● Update Python 3 test runtimes for Train
Towards “Open Infrastructure”
OpenStack Foundation
2012 年に設立されたベンダ中立の非営利団体。
コミュニティを構築してコラボレーションを促進し、オープンソース技術の
統合を支援するための一連の共有リソースを提供することによって、
開発者、ユーザー、オープンインフラストラクチャ エコシステム全体に
サービスを提供することを目的としている。
当初は OpenStack プロジェクトのみ対象としていたが、最近は Zuul, Airship, StarlingX,
Kata Containers の各プロジェクトをホスティングしている。
https://www.openstack.org/foundation/
“Open Infrastructure”
● “Collaboration without Boundaries”
○ 今後はさまざまな OSS が垣根なく共創していくことがポイント
○ OpenStack のみではない。OpenStack は大きな要素だが。
● OpenStack Foundation は OpenStack 以外のプロジェクトもホスト開始
○ Zuul, Airship, StarlingX, Kata Containers
● 2019年5月第1回 Open Infrastructure Summit 開催
○ “OpenStack Summit” から改名
● “OpenDev” (← “OpenStack infra”)
● OpenStack 開発で長年改善され確立された CI/CD 環境を
OpenStack 以外でも使えるように、新たにブランディング
OpenStack の今後
● OpenStack 自体は安定化、機能追加は概ね完了
● 今後も着実に開発が行われていくだろう
○ “Open Infrastructure” の動きの中でも、OpenStack 自体には大きな影響は見えていない
● プロジェクト単体で活用する動きも拡大していく
○ Ironic の Kubernetes Baremetal Cloud Provider など
● 運用性、使い勝手の向上は今後も重要なトピック
● Upstream Development の重要性は今後も変わらない
Let's contribute upstream development!!
● OpenStack Upstream Investment Opportunities: If Companies looking to
invest in upstream development of OpenStack.
https://governance.openstack.org/tc/reference/upstream-investment-opportunities/index.html
● Upstream Training
○ 7/23(Tomorrow) 13:20-18:20 @ Meeting Room1
ご静聴
ありがとうございました

20190722 OpenStack community past present future