OSS光と闇2. 2Copyright©2018 NTT corp. All Rights Reserved.
自己紹介
市原 裕史
• 所属
– NTT SIC 分散処理基盤技術プロジェクト
• OpenStack Developer
– Neutron Core Reviewer、その他プロジェクトへの貢献
• 技術: SDN/NFV中心
– パブリッククラウドの開発
– LinuxconでDPDKの性能の発表
– Neutronへの機能提案
– Docker Network Plugin開発
4. 4Copyright©2018 NTT corp. All Rights Reserved.
自社サービスをOSS化するメリット
• 自社の考えたユースケースの業界デファクト化
• 自社利用データモデルのデファクト化
• エコシステムの活性化とサポートの充実
• OSSが会社の顔となり宣伝効果がある
5. 5Copyright©2018 NTT corp. All Rights Reserved.
ユースケースの業界デファクト化
A社のユースケース
B社のユースケース
C社のユースケース
インフラ基盤
B社のユースケース
を元にした OSS
ユーザ
採用
B社
フィードバック
インフラ基盤
B社 OSS
採用事例増加
利用
利用
B社製品
容易に利用可能
6. 6Copyright©2018 NTT corp. All Rights Reserved.
ユースケースの業界デファクト化 例
https://github.com/openstack/networking-bgpvpn
https://review.openstack.org/#/admin/groups/620,members
Orange
Orange
Juniper
7. 7Copyright©2018 NTT corp. All Rights Reserved.
自社利用データモデルのデファクト化
A社のデータモデル
B社のデータモデル
C社のデータモデル
インフラ基盤
B社のデータモデル
を採用した OSS
ユーザ
連携するツールが増加
採用
B社のデータモデル
を採用した他社ツール
B社
利用
B社製品
容易に利用可能
利用
8. 8Copyright©2018 NTT corp. All Rights Reserved.
自社利用データモデルのデファクト化 例1
interfaces {
ge-0/0/1 {
vlan-tagging;
unit 101 {
vlan-id 101;
family inet {
address 192.168.101.1/24;
}
}
}
}
interface ge-0/0/1 {
subinterfaces {
subinterface 101 {
config {
index 101;
enabled true;
}
ipv4 {
addresses {
address 192.168.101.1 {
config {
ip 192.168.101.1;
prefix-length 24;
}
}
}
}
vlan {
config {
vlan-id 101;
}
}
}
}
}
A社ルータ B社ルータ
採用
B社モデル採用ルータユーザ
利用
9. 9Copyright©2018 NTT corp. All Rights Reserved.
自社利用データモデルのデファクト化 例2
https://hogehoge.com/?Action=RunInstances
&ImageId=ami-60a54009
&MaxCount=1
&MinCount=1
&KeyName=my-key-pair
&Placement.AvailabilityZone=us-east-1d
&AUTHPARAMS
http://mycompute.pvt/compute/v2.1/servers
{
"server":{
"name":”server01",
"imageRef":"70a599e0-31e7-49b7-b260-868f441e862b",
"flavorRef":"1",
"networks":"auto”
}
}
A社VM作成API B社VM作成API
採用
B社モデル採用API
ユーザ
利用
OSSインフラ基盤
VM
11. 11Copyright©2018 NTT corp. All Rights Reserved.
宣伝効果
http://stackalytics.com/?metric=commits http://stackalytics.com/?project_type=kubernetes-group&metric=commits
OpenSack Kubernetes
13. 13Copyright©2018 NTT corp. All Rights Reserved.
自社サービスをOSS化するデメリット
• OSSコミュニティの立ち上げ維持などに労力がかかる
• 自社特許、他社特許の観点で権利の問題など敷居が高い
• 想定していたメリットを享受できるとは限らない
• OSS側の進捗に自社サービスが依存してしまう
• ビジネスロジックを切り離す手間がある
• ドラスティックな変更を加えることは難しい
15. 15Copyright©2018 NTT corp. All Rights Reserved.
特許や権利の整理
A社
A社グループ会社B
OSS
開発者
開発者
A社グループ会社C
開発者
B社特許に抵触する機能
ユーザ
利用可能
C社特許に抵触する機能
17. 17Copyright©2018 NTT corp. All Rights Reserved.
OSS側の進捗に自社サービスが依存
2018.7 2018.8 2018.9 2018.9 2018.10 2018.11
設計
実装
試験
2018.7 2018.8 2018.9 2018.9 2018.10 2018.11
設計
実装
試験
当初計画
コミュニティでの議
論に決着が付かず
実際の進捗
サービスイン
18. 18Copyright©2018 NTT corp. All Rights Reserved.
自社プロダクト
ビジネスロジックの切り離し
API GUI
Log
Back
end
ビジネス
ロジック
OSSとして公開
API GUI
Log
Back
end
20. 20Copyright©2018 NTT corp. All Rights Reserved.
OSSを自社サービスに利用するメリット
• 確立されたエコシステムに乗ることができる
• 複数のOSSを比較して最も適したものを選択可能
• 既存のユースケースやモデルを取り入れることが可能
• 開発速度の加速化
• コミュニティに相談できる相手、仲間がいる
24. 24Copyright©2018 NTT corp. All Rights Reserved.
開発速度の加速化
2018.7 2018.8 2018.9 2018.9 2018.10 2018.11
設計
実装
試験
2018.7 2018.8 2018.9 2018.9 2018.10 2018.11
設計
実装
試験
当初計画
実際の進捗
サービスイン
サービスイン
重大なバグが見つかったが
コミュニティ内で対処
試験環境が壊れたが
コミュニティ内で対処
コミュニティ内で開発者が
増えて迅速に完了
26. 26Copyright©2018 NTT corp. All Rights Reserved.
OSSを自社サービスに利用するデメリット
• 開発や維持コスト削減にはつながらない
• バグ報告や作成したパッチのアップストリームが必須
• ビジネスロジックを組み込むことはできない
• 自社ユースケースを取り入れてもらうのは大変
• OSSプロジェクト消滅のリスクと発展・維持への貢献必須
27. 27Copyright©2018 NTT corp. All Rights Reserved.
開発・維持コスト削減は不可
プロプライエタリなプロダクト開発 OSS利用のプロダクト開発
設計
実装
試験
運用
追加開発
追加開発
検証
運用
プロダクト開発にかかるコスト
28. 28Copyright©2018 NTT corp. All Rights Reserved.
プロダクト
OSS v2
バグ報告やパッチのアップストリーム必須
プロダクト
OSS v1
独自パッチ
独自パッチ
独自パッチ
独自パッチ
バージョンアップ不可
30. 30Copyright©2018 NTT corp. All Rights Reserved.
自社ユースケースのアップストリーム困難
A社プロダクト
OSS
ユースケース
OSS 最新バージョン
開発者
• 仕様の明確化
• ユースケースの一般化
• 実装の妥当性
• 試験
32. 32Copyright©2018 NTT corp. All Rights Reserved.
OSSプロジェクト消滅のリスク
VPN
ロードバランサ
ファイアウォール
Neuron
2013
neutron-vpnaas
neutron-fwaas
neutron-lbaas
2015
2017
neutron-vpnaas
neutron-fwaas v2
Octavia
Neutron Advanced Services 軌跡
33. 33Copyright©2018 NTT corp. All Rights Reserved.
OSSプロジェクト消滅のリスク
VPN
ロードバランサ
ファイアウォール
Neuron
2013
neutron-vpnaas
neutron-fwaas
neutron-lbaas
2015
2017
neutron-vpnaas
neutron-fwaas v2
Octavia
Neutron Advanced Services 軌跡
Dev-ML: http://lists.openstack.org/pipermail/openstack-dev/2016-November/107384.html
neutron-vpnaas core 2017: https://review.openstack.org/#/admin/groups/502,members
34. 34Copyright©2018 NTT corp. All Rights Reserved.
OSSプロジェクトへの貢献必須
OSS
ユーザ
開発者
ベンダ
貢献
貢献
貢献
neutron-vpnaas core 2018: https://review.openstack.org/#/admin/groups/502,members
35. 35Copyright©2018 NTT corp. All Rights Reserved.
標準化とOSS
• 日本でのオープンループ
– https://www.janog.gr.jp/meeting/janog41/program/openloop
OSS
実装が真
標準化
仕様が真
36. 36Copyright©2018 NTT corp. All Rights Reserved.
標準化とOSS
• 日本でのオープンループ
– https://www.janog.gr.jp/meeting/janog41/program/openloop
OSS
実装が真
標準化
仕様が真
ユースケース
37. 37Copyright©2018 NTT corp. All Rights Reserved.
OpenStackコミュニティにおける事例
NFV(Network Function Virtualization)
SFC(Service Function Chaining)
39. 39Copyright©2018 NTT corp. All Rights Reserved.
OPNFV
https://www.opnfv.org/wp-content/uploads/sites/12/2016/11/opnfv_bp_diag_030116_notitle.png
NFV
40. 40Copyright©2018 NTT corp. All Rights Reserved.
SFC
ネットワーク
Service A Service B
IETF で議論されているプロトコル
RFC 7665
ルール: Service A のみを経由
ルール: Service A と Service B 両方を経由
41. 41Copyright©2018 NTT corp. All Rights Reserved.
OpenStack と SFC
2014.3
IETF89 SFC-WG
2015.10
SFC
RFC 7665
SFC BP: https://blueprints.launchpad.net/neutron/+spec/service-function-chaining-using-openflow
RFC 7665: https://datatracker.ietf.org/doc/rfc7665/
RFC 8300: https://datatracker.ietf.org/doc/rfc8300/
NSH support: https://bugs.launchpad.net/networking-sfc/+bug/1625278
2014.12 2016.1 2018.2
IETF
OpenStack
SFC BP networking-sfc v1.0.0 NSH support
2018.1
NSH
RFC 8300
42. 42Copyright©2018 NTT corp. All Rights Reserved.
networking-sfc project lead
SFC Key Contributors: https://docs.openstack.org/networking-sfc/latest/#service-function-chaining-key-contributors
Service Chain Header: https://www.ietf.org/archive/id/draft-zhang-sfc-sch-03.txt
RFC 8300: https://datatracker.ietf.org/doc/rfc8300/
SFC ドラフト
SFC NSH RFC
networking-sfc document