More Related Content Similar to Nova からみる OpenStack プロジェクトの歴史 (rev.3) (20) More from Akira Yoshiyama (18) Nova からみる OpenStack プロジェクトの歴史 (rev.3)4. REST API
初公開当時のの歴史Nova 0.9.0 (2010/7/28)
ユーザ会/テナントの歴史管理
リソース管理管理
メータリング VM管理
ボリューム管理管理ネットの歴史ワーク管理
VMテンプレートの歴史管理
オブジェクトの歴史ス管理トの歴史ア
nova-api
nova-volumenova-network
nova-instancemonitor nova-compute
nova-objectstore
nova-rsapi
Redis RabbitMQ
5. 初公開当時のの歴史Nova 0.9.0 (2010/7/28)
●
Amazon EC2 互換のの歴史REST API
– クライアントの歴史は euca2ools (!)
– Rackspace 互換の REST API も
あった
●
Amazon S3 互換のの歴史オブジェクトの歴史
ス管理トの歴史レージ(!)
– ユーザ会認証なしなし(!)
●
REST API の歴史フレーム管理ワークは
Tornado (!)
●
マイクロサービス管理
アーキテクチャ
– 内部通信に に RabbitMQ
●
DB は Redis (!)
●
テンプレートの歴史エンジンは
Cheetah (!)
●
RRDtoolベース管理の歴史
メータリング機能(!)
●
VPN機能あり(cloudpipe)
6. Austin: Nova 2010.1 (2010/10/22)
メータリング VM管理
ボリューム管理管理ネットの歴史ワーク管理
VMテンプレートの歴史管理
オブジェクトの歴史ス管理トの歴史ア:Swift
nova-volumenova-network
nova-instancemonitor nova-compute
nova-objectstore
SQL
DB
RabbitMQ
ユーザ会/テナントの歴史管理
リソース管理管理
nova-scheduler
クォータ管理
REST API
nova-api
7. Austin: Nova 2010.1
●
nova-api に独自に開発したの歴史 API (OpenStack API) 追加
– 一方でで独自に開発したRackspace APIサービス管理廃止
●
nova-scheduler 追加
– リソース管理管理・割当機能の歴史インテリジェンス管理化
●
クォータ(Quota)管理実装
●
使用ミドルウェア/フレームワークの一般化ミドルウェア/フレーム管理ワークの歴史一般化
– DB は Redis から見る RDBMS に変更 (SQLalchemy経由)
– REST API の歴史フレーム管理ワークは WSGI に変更
●
Swift とはまだ連携できず連携できずで独自に開発したきず
8. REST API
nova-direct-api
nova-api
コンソール
Bexar: Nova 2011.1 (2011/2/2)
メータリング VM管理
ボリューム管理管理ネットの歴史ワーク管理
VMテンプレートの歴史管理
Glance
オブジェクトの歴史ス管理トの歴史ア
Swift
nova-console
nova-ajax-
console-proxy
nova-volumenova-network
nova-instancemonitor nova-compute
ログ転送
nova-spoolsentry
nova-logspool
ユーザ会/テナントの歴史管理
リソース管理管理
nova-scheduler
クォータ管理
9. Bexar: Nova 2011.1
●
Glance 経由で独自に開発したSwift と連携できず可能に
– この歴史時の点では で独自に開発したは Swift と認証なし連携できずしていない
●
2種類のの歴史VMコンソール機能を初実装初実装
– nova-console:専用クライアントコマンドで接続専用ミドルウェア/フレームワークの一般化クライアントの歴史コマンドで独自に開発した接続
– nova-ajax-console-proxy:専用クライアントコマンドで接続Web ブラウザ会で独自に開発した接続
●
nova-direct-api 追加
– nova-compute の歴史内部 API を初実装その歴史まま export (管理者が 用ミドルウェア/フレームワークの一般化)
●
QEMU/KVMに加えてXenに対応
●
ログ転送機能追加 (nova-logspool, nova-spoolsentry)
10. REST API
nova-direct-api
nova-api
コンソール
Cactus: Nova 2011.2 (2011/4/5)
メータリング VM管理
ボリューム管理管理ネットの歴史ワーク管理
VMテンプレートの歴史管理
Glance
オブジェクトの歴史ス管理トの歴史ア
Swift
nova-console
nova-ajax-
console-proxy
nova-vncproxy
nova-volumenova-network
nova-instancemonitor nova-compute
ログ転送
nova-spoolsentry
nova-logspool
ユーザ会/テナントの歴史管理
リソース管理管理
nova-scheduler
クォータ管理
11. Cactus: Nova 2011.2
●
nova-vncproxy 追加
– 初の歴史 GUI コンソール
– noVNC ベース管理 (→nova-novncproxy)nova-novncproxy)
●
QEMU/KVM, Xen に加えて VMware, LXC に対応
●
VMリサイズ、ライブマイグレーションに対応
●
REST API で独自に開発した Flavor を初実装管理可能に
●
IPv6 に対応
●
ここまで独自に開発したの歴史開発サイクルは3ヶ月間ヶ月間月間
– 次の の歴史 Diablo から見る6ヶ月間ヶ月間月間
13. Diablo: Nova 2011.3
●
Keystone 認証なしに対応
– Swift, Glance とユーザ会認証なし連携できずを初実装実現
●
Quantum ベース管理の歴史仮想ネットワークに対応ネットの歴史ワークに対応
●
EC2 API, OpenStack APIの歴史片方でだ連携できずけ提供可能に提供可能に
– nova-api-ec2:専用クライアントコマンドで接続Amazon EC2互換のAPI
– nova-api-os:専用クライアントコマンドで接続OpenStack API
●
QEMU/KVM, Xen, VMware に加えて HyperV に対応
●
イベントの歴史通知機能(notification)実装
●
メータリング機能(nova-instancemonitor)廃止
15. Essex: Nova 2012.1
●
REST API サービス管理を初実装強化
– nova-api-volume, nova-api-metadata, nova-cert追加
– RBAC (ロールベース管理アクセス管理制御)対応
●
コンソール機能の歴史変更
– nova-xvpvncproxy, nova-consoleauth追加
– nova-vncproxy, nova-ajax-console-proxy 廃止
●
HyperV 対応廃止、物理マシンに対応
●
ログ転送機能を初実装廃止
●
(参考) Dashboard (Horizon) 登場
17. Folsom: Nova 2012.2
●
ボリューム管理関連コードが Cinder として独立
– 移行措置として、として、Folsom で独自に開発したは Nova の歴史
ボリューム管理機能は温存(Grizzly で独自に開発した削除)
●
HyperV対応復活、PowerVM対応
●
nova-api の歴史マルチプロセス管理対応(workers)
●
内部通信に (RPC)メッセージの歴史バージョン対応
●
nova-novncproxy 追加
– 事実上の の歴史 nova-vncproxy 復活
19. Grizzly: Nova 2013.1
●
nova-conductor導入
– nova-computeから見るの歴史DBアクセス管理を初実装代替として
– VM作成/再作成/移動のワークフローを管理の歴史ワークフローを初実装管理
●
nova-spicehtml5proxy
– QEMU/KVM の歴史 SPICE プロトの歴史コル用ミドルウェア/フレームワークの一般化
●
nova-cells 導入
– Nova クラス管理タ(セル)を初実装階層構造化→nova-novncproxy)大規模化
– 子セルは親セルから見ると巨大な セルは親セルから見ると巨大な セルから見る見るると巨大な Compute ノード
●
各種ハイパーバイザ会に加え、物理マシンに対応
–
21. Havana: Nova 2013.2 (2013/10/12)
ユーザ会/テナントの歴史管理
Keystone
リソース管理管理
VM管理
ボリューム管理管理
Cinder
VMテンプレートの歴史管理
Glance
オブジェクトの歴史ス管理トの歴史ア
Swift
nova-scheduler
nova-compute
物理マシン管理
nova-baremetal-deploy-helper
ワークフロー/DBプロキシ
nova-conductor
セル連携できず
nova-cell
ネットの歴史ワーク管理
Neutron
コンソール
nova-console
nova-xvpvncproxy
nova-consoleauth
nova-novncproxy
nova-spicehtml5proxy
メータリング
Ceilometer
クォータ管理
REST API
nova-api-ec2
nova-api-os-compute
nova-api-os-metadata
nova-cert
nova-api
24. Icehouse: Nova 2014.1 (2014/3/20)
VM管理 VMテンプレートの歴史管理
Glancenova-compute
物理マシン管理
nova-baremetal-deploy-helper
コンソール
nova-console
nova-xvpvncproxy
nova-consoleauth
nova-novncproxy
nova-spicehtml5proxy
ボリューム管理管理
Cinder
オブジェクトの歴史ス管理トの歴史ア
Swift
ネットの歴史ワーク管理
Neutron
メータリング
Ceilometer
鍵管理
ユーザ会/テナントの歴史管理
Keystone
リソース管理管理
nova-scheduler
ワークフロー/DBプロキシ
nova-conductor
セル連携できず
nova-cell
クォータ管理
REST API
nova-api-ec2
nova-api-os-compute
nova-api-os-metadata
nova-cert
nova-api
26. Juno: Nova 2014.2 (2014/10/9)
物理マシン管理
Ironic
コンソール
nova-console
nova-xvpvncproxy
nova-consoleauth
nova-novncproxy
nova-spicehtml5proxy
nova-serialproxy
ボリューム管理管理
Cinder
オブジェクトの歴史ス管理トの歴史ア
Swift
ネットの歴史ワーク管理
Neutron
メータリング
Ceilometer
VM管理 VMテンプレートの歴史管理
Glancenova-compute
鍵管理
ユーザ会/テナントの歴史管理
Keystone
リソース管理管理
nova-scheduler
ワークフロー/DBプロキシ
nova-conductor
セル連携できず
nova-cell
クォータ管理
REST API
nova-api-ec2
nova-api-os-compute
nova-api-os-metadata
nova-cert
nova-api
27. Juno: Nova 2014.2
●
リソース管理管理の歴史即応性改善
– VMの歴史NIC状態の 変更
– ホス管理トの歴史の歴史状態の 変化
●
Computeノード障害時のの歴史VM移動のワークフローを管理対応(Evacuate)
●
Ironic(物理マシン管理)に対応
– 旧来の物理マシン管理コードは次の の歴史物理マシン管理コードは次の の歴史 Kilo で独自に開発した削除
28. Kilo: Nova 2015.1.0 (2015/4/28)
コンソール
nova-console
nova-xvpvncproxy
nova-consoleauth
nova-novncproxy
nova-spicehtml5proxy
nova-serialproxy
ボリューム管理管理
Cinder
オブジェクトの歴史ス管理トの歴史ア
Swift
ネットの歴史ワーク管理
Neutron
メータリング
Ceilometer/Aodh/
Gnocchi
物理マシン管理
Ironic
VM管理 VMテンプレートの歴史管理
Glancenova-compute
鍵管理
Barbican
ユーザ会/テナントの歴史管理
Keystone
リソース管理管理
nova-scheduler
ワークフロー/DBプロキシ
nova-conductor
セル連携できず
nova-cell
クォータ管理
REST API
nova-api-ec2
nova-api-os-compute
nova-api-os-metadata
nova-cert
nova-api
29. Kilo: Nova 2015.1.0
●
Compute API v2.1 追加
– Compute API v2 との歴史後に削除される)機能をいくつか追加方で互換の成
– API マイクロバージョン
– 強力なバリデーション機能なバリデーション機能
●
Cells v2 の歴史実装が始まるまる
– しかしKiloで独自に開発したは利用ミドルウェア/フレームワークの一般化不可
●
対応ハイパーバイザ会に Parallels 追加
●
鍵管理で独自に開発した Barbican に対応
31. Liberty: Nova 12.0.0
●
REST API
– Compute API v3 削除、v2.1 がデフォルトの歴史に
– EC2 API (nova-api-ec2) が別リポジトリ化リポジトの歴史リ化
– mark host down/force down API 追加
●
DBレイヤのポリシーチェックを廃止の歴史ポリシーチェックを初実装廃止
●
Nova Cells v2 実装継続
– で独自に開発したもまだ連携できず実用ミドルウェア/フレームワークの一般化で独自に開発したきない
●
Volume ハンドル部分が が os-brick モジュール化
●
参考) Ceilometer が Aodh, Gnocchi と連携できず
32. Mitaka: Nova 13.0.0 (2016/3/31)
コンソール
nova-console
nova-xvpvncproxy
nova-consoleauth
nova-novncproxy
nova-spicehtml5proxy
nova-serialproxy
ボリューム管理管理
Cinder
オブジェクトの歴史ス管理トの歴史ア
Swift
ネットの歴史ワーク管理
Neutron
メータリング
Ceilometer/Aodh/
Gnocchi
物理マシン管理
Ironic
VM管理 VMテンプレートの歴史管理
Glancenova-compute
鍵管理
Barbican
ユーザ会/テナントの歴史管理
Keystone
リソース管理管理
nova-scheduler
ワークフロー/DBプロキシ
nova-conductor
セル連携できず
nova-cell
クォータ管理
REST API
nova-api-os-compute
nova-api-os-metadata
nova-cert
EC2-API
nova-api
33. Mitaka: Nova 13.0.0
●
Nova Cells v2 実装継続
– API 専用ミドルウェア/フレームワークの一般化の歴史 DB 追加
– で独自に開発したもまだ連携できず実用ミドルウェア/フレームワークの一般化で独自に開発したきない
●
ライブマイグレーション強化
– 実行中のライブマイグレーションが中止可能にの歴史ライブマイグレーションが中のライブマイグレーションが中止可能に止可能に
– ライブマイグレーションの歴史強制完了が可能にが可能に
●
ボリューム管理付VMの歴史ブロックマイグレーションが可能に
●
Nova内の歴史 EC2 API コード削除
●
nova-objectstore 削除
34. Newton: Nova 14.0.0 (2016/9/29)
セル連携できず:Cells v2
コンソール
nova-console
nova-xvpvncproxy
nova-consoleauth
nova-novncproxy
nova-spicehtml5proxy
nova-serialproxy
ボリューム管理管理
Cinder
オブジェクトの歴史ス管理トの歴史ア
Swift
ネットの歴史ワーク管理
Neutron
メータリング
Ceilometer/Aodh/
Gnocchi
物理マシン管理
Ironic
VM管理 VMテンプレートの歴史管理
Glancenova-compute
鍵管理
Barbican
ユーザ会/テナントの歴史管理
Keystone
リソース管理管理:Placement
nova-scheduler
ワークフロー/DBプロキシ
nova-conductor
クォータ管理
REST API
nova-api-os-compute
nova-api-os-metadata
nova-cert
EC2-API
nova-api
35. Newton: Nova 14.0.0
●
Nova Cells v2
– 1セル構成で独自に開発したの歴史運用ミドルウェア/フレームワークの一般化が可能に
– 但ししNewtonで独自に開発したはオプショナル
●
Placement サービス管理導入
●
Glance アクセス管理に Image API v2 を初実装使用ミドルウェア/フレームワークの一般化
●
鍵管理に Castellan ライブラリを初実装採用ミドルウェア/フレームワークの一般化
●
QEMU/KVM の歴史 VM ライブマイグレーション強化
– VCPU の歴史速度調整による強制ライブマイグレーションによる強制ライブマイグレーション
– Post Copy ライブマイグレーション (通常は は Pre Copy)
36. Placement API
Cell-CCell-BCell-A
Nova Cells v2
Nova API
Cell0 DB
MQ
API DB
MQ
Cell DB
nova-conductor
nova-compute
nova-compute
nova-api
nova-scheduler
nova-conductor
placement-api
Placement DB
MQ
Cell DB
nova-conductor
nova-compute
nova-compute
MQ
Cell DB
nova-conductor
nova-compute
nova-compute
nova-api
nova-scheduler
nova-conductor
nova-conductornova-conductor nova-conductor
placement-api
REST API メッセージキュー
38. Ocata: Nova 15.0.0 (2017/2/17)
コンソール
nova-console
nova-xvpvncproxy
nova-consoleauth
nova-novncproxy
nova-spicehtml5proxy
nova-serialproxy
ボリューム管理管理
Cinder
オブジェクトの歴史ス管理トの歴史ア
Swift
ネットの歴史ワーク管理
Neutron
メータリング
Ceilometer/Aodh/
Gnocchi
物理マシン管理
Ironic
VM管理 VMテンプレートの歴史管理
Glancenova-compute
鍵管理
Barbican
セル連携できず:Cells v2
ユーザ会/テナントの歴史管理
Keystone
リソース管理管理:Placement
nova-scheduler
ワークフロー/DBプロキシ
nova-conductor
クォータ管理
REST API
nova-api-os-compute
nova-api-os-metadata
nova-cert
EC2-API
nova-api
39. Ocata: Nova 15.0.0
●
Neutron がデフォルトの歴史の歴史 NW バックエンドに
●
Placement が必須にに
●
OSProfiler 対応
●
バージョンアップチェック実装
– nova-status upgrade check
●
複数セルで独自に開発したの歴史動のワークフローを管理作も可能(評価段階)機能をいくつか追加
40. Pike: Nova 16.0.0 (2017/8/25)
コンソール
nova-console
nova-xvpvncproxy
nova-consoleauth
nova-novncproxy
nova-spicehtml5proxy
nova-serialproxy
ボリューム管理管理
Cinder
オブジェクトの歴史ス管理トの歴史ア
Swift
ネットの歴史ワーク管理
Neutron
メータリング
Ceilometer/Aodh
物理マシン管理
Ironic
VM管理 VMテンプレートの歴史管理
Glancenova-compute
鍵管理
Barbican
セル連携できず:Cells v2
ユーザ会/テナントの歴史管理
Keystone
リソース管理管理:Placement
nova-scheduler
ワークフロー/DBプロキシ
nova-conductor
クォータ管理
REST API:
Apache HTTPD
nova-api-os-compute
nova-api-os-metadata
EC2-API
nova-api
41. Pike: Nova 16.0.0
●
フィルタス管理ケジューラが Placement に対応
●
Nova Cells v2が複数セル構成に対応
●
nova-cert 廃止
●
REST API が WSGI に対応
– Apache HTTPD 等が管理する各種リソースの在庫管理を行うの歴史バックエンドで独自に開発した動のワークフローを管理作可能に
●
Ironic で独自に開発した仮想ネットワークに対応インターフェース管理の歴史アタッチ/デタッチが可能に
●
アタッチ状態の の歴史ボリューム管理の歴史リサイズが可能に
●
参考) Gnocchi が OpenStack プロジェクトの歴史から見る独立。
42. Queens: Nova 17.0.0 (2018/2/22)
コンソール
nova-console
nova-xvpvncproxy
nova-consoleauth
nova-novncproxy
nova-spicehtml5proxy
nova-serialproxy
ボリューム管理管理
Cinder
オブジェクトの歴史ス管理トの歴史ア
Swift
ネットの歴史ワーク管理
Neutron
メータリング
Ceilometer/Aodh
物理マシン管理
Ironic
VM管理 VMテンプレートの歴史管理
Glancenova-compute
鍵管理
Barbican
ユーザ会/テナントの歴史管理
Keystone
リソース管理管理:Placement
nova-scheduler
ワークフロー/DBプロキシ
nova-conductor
クォータ管理
セル連携できず:Cells v2
REST API:
Apache HTTPD
nova-api-os-compute
nova-api-os-metadata
EC2-API
nova-api
43. Queens: Nova 17.0.0
●
Nova Cells v2
– 複数セル構成時のの歴史課題での歴史一部が解決
– Cells v1, nova-network が廃止予定にに
●
QEMU/KVM, Xen が仮想ネットワークに対応 GPU に対応
●
QEMU/KVM で独自に開発した複数VMから見る単一ボリューム管理の歴史
同時のアタッチが可能に
●
Ironic で独自に開発した Trait ベース管理の歴史ス管理ケジューリングが可能に
44. Rocky: Nova 18.0.0 (2018/8/24)
コンソール
nova-console
nova-xvpvncproxy
nova-consoleauth
nova-novncproxy
nova-spicehtml5proxy
nova-serialproxy
ボリューム管理管理
Cinder
オブジェクトの歴史ス管理トの歴史ア
Swift
ネットの歴史ワーク管理
Neutron
メータリング
Ceilometer/Aodh
物理マシン管理
Ironic
VM管理 VMテンプレートの歴史管理
Glancenova-compute
鍵管理
Barbican
ユーザ会/テナントの歴史管理
Keystone
リソース管理管理:Placement
nova-scheduler
ワークフロー/DBプロキシ
nova-conductor
クォータ管理
セル連携できず:Cells v2
REST API:
Apache HTTPD
nova-api-os-compute
nova-api-os-metadata
EC2-API
nova-api
45. Rocky: Nova 18.0.0
●
Nova Cells v2
– 特定にセルを初実装 disabled (無効化)可能に
●
Placement
– DB を初実装独立可能に
– REST API が RBAC (ロールベース管理の歴史アクセス管理制御) に対応
●
VMライブマイグレーション時のの歴史ネットの歴史ワーク切断時の間を初実装最小化
●
ボリューム管理起動のワークフローを管理VMで独自に開発したエフェメラルディス管理ク分が の歴史リソース管理消費カウンカウン
トの歴史を初実装解消
●
zVM を初実装サポートの歴史
46. コンソール
nova-console
nova-xvpvncproxy
nova-consoleauth
Stein: Nova 19.0.0 (2019/4/10)
nova-novncproxy
nova-spicehtml5proxy
nova-serialproxy
ボリューム管理管理
Cinder
オブジェクトの歴史ス管理トの歴史ア
Swift
ネットの歴史ワーク管理
Neutron
メータリング
Ceilometer/Aodh
物理マシン管理
Ironic
VM管理 VMテンプレートの歴史管理
Glancenova-compute
鍵管理
Barbican
ユーザ会/テナントの歴史管理
Keystone
リソース管理管理:Placement
nova-scheduler
ワークフロー/DBプロキシ
nova-conductor
クォータ管理
セル連携できず:Cells v2
REST API:
Apache HTTPD
nova-api-os-compute
nova-api-os-metadata
EC2-API
nova-api
47. Stein: Nova 19.0.0
●
Placement
– 別リポジトリ化プロジェクトの歴史として独立リポジトの歴史リ化
●
Train で独自に開発した Nova リポジトの歴史リ内の歴史既存コード削除予定に
– Trait として Compute の歴史機能群を公開可能にを初実装公開可能に
●
Nova Cells v2
– 障害セル/応答の悪いセルがある環境での一部 の歴史悪いセルがある環境での一部 いセルがある環境での一部 で独自に開発したの歴史一部 RESET API 処理を初実装改善
– 複数セル構成におけ提供可能にるVM一覧処理を初実装バッチ化して効率化
●
サーバ作成時のにアタッチするボリューム管理の歴史タイプを初実装指定に可能に
●
サーバ作成時のに Neutron ポートの歴史の歴史最小帯域 QoS を初実装指定に可能に
48. 今後に削除される)機能をいくつか追加
●
Train で独自に開発した Cells v1 が廃止される。
●
nova-cells, nova-network 削除
●
クォータ管理は以下での空きリソースのアトミックなの歴史方で向で議論・開発されている。で独自に開発した議論・開発されている。
●
上の 限値(Limit)管理→nova-novncproxy)Keystone
●
使用ミドルウェア/フレームワークの一般化量(Usage)管理→nova-novncproxy)Placement
●
ス管理タンドアロンの歴史 REST API サービス管理が廃止され、
Apache HTTPD+WSGI に統一される。
50. まとめ
●
オールインワンだ連携できずった Nova の歴史機能単位は、現在は、現在10の歴史
プロジェクトの歴史に分が 離され、それぞれ独自に発展している。され、それぞれ独自に開発したに発展している。している。
●
Placement は Nova から見る各プロジェクトの歴史に分が 散したした
各種(空きリソースを確保き)リソース管理管理を初実装再び一元化し、理想的な一元化し、理想ネットワークに対応的な管理が可能にな
リソース管理割当を初実装実現する可能性を初実装持っている。っている。
●
Nova は完成形に近いと思われるが、完成にはもう少しに近いと思われるが、完成にはもう少しいと思われるが、完成にはもう少しわれるが、完成にはもう少しし
開発が必要。
– 開発者が 募集中のライブマイグレーションが中止可能に。