ossコミッタの生活とその必要性
TRANSCRIPT
Copyright©2017 NTT corp. All Rights Reserved.
OSS コミッタの生活とその必要性
NTT ソフトウェアイノベーションセンタ第三推進プロジェクト
市原 裕史
2Copyright©2017 NTT corp. All Rights Reserved.
市原 裕史
• 所属• NTT SIC 第三推進プロジェクト
• 年次• 5 年目
• OpenStack Developer• Neutron Core Reviewer 、その他プロジェクトへの貢献
• 技術 : SDN/NFV 中心• Cloudn ClosedNW タイプの開発• Linuxcon で DPDK の性能の発表• Neutron への機能提案
自己紹介
3Copyright©2017 NTT corp. All Rights Reserved.
• Cloud Operating System• 競合として CloudStack や(今はなき ? ) Eucalyptus
• マルチハイパーバイザサポート• KVM, QEMU, Xen, VMware, Hyper-V, LXC などをサポート
• 様々な SDN アプライアンス、ストレージアプライアンスが OpenStack に対応
OpenStack 概要
出典 : http://www.openstack.org/software/
4Copyright©2017 NTT corp. All Rights Reserved.
3,716,027 Lines
https://www.openhub.net/p/openstack/analyses/latest/languages_summary
5Copyright©2017 NTT corp. All Rights Reserved.
OPEN
https://www.openstack.org/videos/barcelona-2016/openstack-for-the-work-that-matters-1
6Copyright©2017 NTT corp. All Rights Reserved.
• 最新版 Newton リリース実績• レビュー人数 2386 人• パッチ数 2715
OSS 開発コミュニティ規模
http://stackalytics.com/?release=newton
7Copyright©2017 NTT corp. All Rights Reserved.
他 OSS プロジェクト比較
https://octoverse.github.com
Mitaka 、 Newton リリース (1 年間 ) のレ
ビュー、コミット、バグ報告、新機能提案で集計
( コメント抜き )
5940
8Copyright©2017 NTT corp. All Rights Reserved.
1. コミュニティ活動がなぜ必要か?2. なぜ Core Reviewer ( OSS コミッタ)になる必
要があるのか?3. Core Reviewer の仕事って何?4. Core Reviewer にどうやればなれるのか?5. 業務で Core Reviewer のお仕事をする際の壁は?6. Core Reviewer の生活はどんな感じ?
本日の内容
9Copyright©2017 NTT corp. All Rights Reserved.
コミュニティ活動がなぜ必要か?
10Copyright©2017 NTT corp. All Rights Reserved.
OpenStack 独自改良版
Cinder GlanceNeutronNovaKeystone
独自パッチ
独自パッチ 独自パッチ
独自パッチ
独自パッチ
独自パッチ
コミュニティファースト開発へのシフト
OpenStack コミュニティ版
Cinder GlanceNeutronNovaKeystone
一部は外部で管理
一部はコミュニティに提供
外部機能 外部機能 外部機能 外部機能
NOVACompute
SWIFTObject Storage
NEUTRONNetworking
GLANCEImage
IRONICBare-Metal Provisioning
SAHARAData Processing
CONGRESSGovernance Service
CEILOMETERTelemetry
TROVEDatabase
MISTRALWorkflow Service
HORIZONDashboard
MURANOApplication Catalog
OpenStack Projects
BIG TENT
CORE SERVICESHEATOrchestration
MAGNUMContainer Service
KEYSTONEIdentity
CINDERBlock Storage
Copyright©2017 NTT corp. All Rights Reserved.
NOVACompute
KEYSTONEIdentity
SWIFTObjectStorage
NEUTRONNetworking
IRONICBare-MetalProvisioning
HEATOrchestration
SAHARAData Processing
CONGRESSGovernance Service
MAGNUMContainer Service
CEILOMETERTelemetry
TROVEDatabase
MISTRALWorkflow Service
HORIZONDashboard
MURANOApplication Catalog
OpenStack Projects
BIG TENT
CORE SERVICES
- KVM 版ライブマイグレーション
- IPv6 サポート- 複数 NIC サポート- マルチベンダプラグインサポート- 仮想ルータの Static Route 設定- L3 Agent/DHCP Agent の
複数ノード対応- ノード追加時のサービス閉塞機能- Availability Zone 対応- Resource Tagging 機能
- Glance と Cinder 間のイメージ転送機能
- ライセンス情報付イメージ DL 制御
- Global Cluster 改良- Erasure Code 機能のプラグイン I/F- S3 互換 API M/W ( Swift3) 機能拡
充- Slogging 機能拡充- Swift 向け Tempest の改良- Swift の堅牢性計算ツール
- 利用可能な仮想資源にネットワークゲートウェイを追加するための拡張
- Hadoop 連携の機能拡充
- 全データソースへのPolicy Enforcement 対応
- 非 JSON 形式のデータソース情報の対応
- Push 型のデータソースドライバ対応
NTT の貢献領域
- Taskflow 実装- Sheepdog 接続プラグイ
ン
CINDERBlock Storage
GLANCEImage
- Log Request ID mappingCross Project
- シグナル送付よる設定再読み込み機能- 複数ファイルシステム対応ストア
- 性能向上のためのデータモデル改善
Copyright©2017 NTT corp. All Rights Reserved.
13Copyright©2017 NTT corp. All Rights Reserved.
• コミュニティ版のコードと全く同じものを使うプロダクトファーストからコミュニティファーストへ
• 純粋に OSS への貢献活動を増やし、コミュニティの一員となることを目指す露崎の Swift コアメンバー入り、室井の Congressコアメンバー入り、市原の Neutron コアメンバー入り
• デベロッパとしてだけではなくオペレータとしても参加Ops Meetup へ参加、サミットのスポンサー枠獲得、OpenStack User Award 受賞
現在のコミュニティ活動
Superuser Awards 2015OpenStack Summit Tokyo
14Copyright©2017 NTT corp. All Rights Reserved.
コミュニティファーストなサービスを提供するためのコミュニティ活動
Q. コミュニティ活動がなぜ必要か?
15Copyright©2017 NTT corp. All Rights Reserved.
なぜ Core Reviewerになる必要があるのか?
16Copyright©2017 NTT corp. All Rights Reserved.
よくある例 開発者失踪
開発者 A
機能 A が必要!この機能を入れ
て欲しい!Core Reviewer
うん、良さそうOK!
〜時は流れて〜
開発者 B
機能 A よりも機能 B のほうがもっと良い
Core Reviewer
うーん、違いがよくわからない
開発者 C
機能 A は重大なバグがある!
このバグ修正は機能 A 自体を壊すことになるかも…
開発者 A はどこへ行ったんだ…?
17Copyright©2017 NTT corp. All Rights Reserved.
よくある例 こいつ誰?
開発者 Z
新機能提案したい!
Core Reviewer
誰?初心者?
この機能も提案!
どんどんパッチ投げ
るよ!
すごくネイティブな部分に触るパッチだけど副作用考慮してるのか?
そもそもこのプロジェクトのこと本当に理解してる?
別の Core Reviewer
新機能提案するわ
LGTM!
18Copyright©2017 NTT corp. All Rights Reserved.
よくある例 プロジェクト過疎
Core Reviewer
新しい API を作るぜ!
開発者
賛成!
利用者
賛成!
〜時は流れて〜
Core Reviewer?開発者
意見を投げても返信がない…
利用者
全然進まないからプロプラでパッチ書いて運用始
めたさよなら
パッチへのレビューが全くない…
19Copyright©2017 NTT corp. All Rights Reserved.
よくある例 プロジェクト過疎
Core Reviewer
新しい API を作るぜ!
開発者
賛成!
開発者
賛成!
〜さらに時は流れて〜
Core Reviewer?開発者 ?
利用者 ?
そして、誰もいなくなった
20Copyright©2017 NTT corp. All Rights Reserved.
Neutron Advanced Services 軌跡
VPN
ロードバランサ
ファイアウォール
Neutron
2013
neutron-vpnaasneutron-fwaas
neutron-lbaas
2015
2017
neutron-vpnaasneutron-fwaas
v2
Octavia
21Copyright©2017 NTT corp. All Rights Reserved.
Neutron Advanced Services 軌跡
VPN
ロードバランサ
ファイアウォール
Neuron
2013
neutron-vpnaasneutron-fwaas
neutron-lbaas
2015
2017
neutron-vpnaasneutron-fwaas
v2
Octavia
Dev-ML: http://lists.openstack.org/pipermail/openstack-dev/2016-November/107384.htmlneutron-vpnaas core: https://review.openstack.org/#/admin/groups/502,members
22Copyright©2017 NTT corp. All Rights Reserved.
コミュニティの信頼を得るため&プロジェクト自体の成長を止めないため
Q. なぜ Core Reviewer になる必要があるのか?
23Copyright©2017 NTT corp. All Rights Reserved.
Core Reviewer の仕事って何?
24Copyright©2017 NTT corp. All Rights Reserved.
コミュニティ活動例 パッチ投稿
開発者 利用者
バグ報告新機能提案 Launchpa
d
開発者
担当者決定
Gerritパッチ・ spec の提案
Core Reviewer
レビュー
Github
ソースコードへの取り込み
開発者 利用者
開発者 利用者承認
コメント
利用者
ソースコードを取得して利用
報告・提案フェーズ
開発フェーズ
利用フェーズ
進捗管理
25Copyright©2017 NTT corp. All Rights Reserved.
コミュニティ活動例 ML
26Copyright©2017 NTT corp. All Rights Reserved.
コミュニティ活動例 IRC channel
http://eavesdrop.openstack.org/irclogs/%23openstack-neutron/%23openstack-neutron.2015-06-22.log.html
27Copyright©2017 NTT corp. All Rights Reserved.
コミュニティ活動例 Meeting
ミーティング開始の hi 合戦
要望は積極的に伝える
28Copyright©2017 NTT corp. All Rights Reserved.
コミュニティ活動例 Launchpad
29Copyright©2017 NTT corp. All Rights Reserved.
コミュニティ活動例 Gerrit
30Copyright©2017 NTT corp. All Rights Reserved.
その他の仕事
プロジェクトの運営に関わる大きなトピックの議論
プロジェクト内のチームをリードコミュニティの CI の監視と修正
31Copyright©2017 NTT corp. All Rights Reserved.
プロジェクトを成長させ、維持する仕事
Q. Core Reviewer のお仕事って何?
32Copyright©2017 NTT corp. All Rights Reserved.
Core Reviewer にどうやればなれるのか?
33Copyright©2017 NTT corp. All Rights Reserved.
0 20 40 60 80 100
120
140
160
180
200
220
240
260
280
300
320
340
360
0
200
400
600
800
1000
1200
XXX
何のグラフでしょう?
days
34Copyright©2017 NTT corp. All Rights Reserved.
0 20 40 60 80 100
120
140
160
180
200
220
240
260
280
300
320
340
360
0
200
400
600
800
1000
1200
レビュー数
年間レビュー数推移
days
35Copyright©2017 NTT corp. All Rights Reserved.
• パッチレビュー 1087件 / 年•修正パッチ提案数 56件 / 年• 新機能提供 4件 / 年• その他のボランティア
• バグのトリアージ• IRC や ML への質問の回答• Meetup幹事
Neutron Core Reviewer の指標
Neutron Tokyo Meetup の様子
Neutron レビュー数ランキング (16/04/18)
36Copyright©2017 NTT corp. All Rights Reserved.
• 自分が Core Reviewer になったつもりでレビューする
• 自分が見落としたらバグがプロジェクトに混入してしまうという意識を持つ
• 自分が +1 したパッチが新たなバグを生んでしまったら、自分の責任として、そのバグの修正やレビューも行う
• 他のプロジェクトへの影響まで考慮してレビューする• -1 を付けたパッチの投稿者から激しい反論があっても日和ら
ない。 -1 を付けたまま、自分の意見をきっちりと伝える
•量よりも質を重視
パッチのレビュー
・・・
・・・
・・・
レビュー数に対するプラス
の割合
37Copyright©2017 NTT corp. All Rights Reserved.
•会社のユースケースやコーナーケースではなくコミュニティにとって重要なバグパッチや新機能を提案する
• Core からのレビューは待つのではなく催促する
パッチ投稿&新機能提案
Neutronコーナーケース
会社のユースケース
コミュニティユースケース
ど真ん中を狙え
Core Reviewer開発者
ping on IRCping on ML
ping on Gerritping with face to face
38Copyright©2017 NTT corp. All Rights Reserved.
良質なレビュー&重要なパッチの投稿&ボランティア
Q. Core Reviewer にどうやればなれるのか?
39Copyright©2017 NTT corp. All Rights Reserved.
業務でCore Reviewer のお仕事をする際の壁?
40Copyright©2017 NTT corp. All Rights Reserved.
• Core Reviewer への道は長く険しい道程• いつ・誰が Core Reviewer になれるのか基準はない• 会社として必要としている物よりもプロジェクトとして必要と
している物を優先しなければいけない
上司の説得
コミュニティ活動の必要性や細かい進捗報告が重要
上司
優秀なエンジニアの稼働をすべて取られるのはきつい
コミュニティ活動がうまくいってるのかよくわからな
い 本当にCore Reviewer
を目指す必要ある?
41Copyright©2017 NTT corp. All Rights Reserved.
上司の説得道具
コミュニティ活動の必要性
細かい進捗報告が重要
半期単位 週単位
計画書
42Copyright©2017 NTT corp. All Rights Reserved.
上司の説得道具
コミュニティ活動の必要性
細かい進捗報告が重要
半期単位 週単位
計画書
43Copyright©2017 NTT corp. All Rights Reserved.
業務時間と OSS 活動時間
日本の業務時間
裁量労働
在宅勤務
深夜勤務
44Copyright©2017 NTT corp. All Rights Reserved.
上司の説得と進捗報告&柔軟な勤務制度の活用
Q. 業務で Core Reviewer のお仕事をする際の壁?
45Copyright©2017 NTT corp. All Rights Reserved.
Core Reviewer の生活はどんな感じ?
46Copyright©2017 NTT corp. All Rights Reserved.
業務として OSS へコミット
90%
10%
業務割合
OSS 活動 一般業務
80%
10%
10%
OSS 活動割合
レビュー パッチ作成 その他
OSS 活動のほとんどはパッチのレビュー
47Copyright©2017 NTT corp. All Rights Reserved.
月曜日 火曜日 水曜日 木曜日 金曜日
在宅勤務と MTG 最小化
在宅勤務 在宅勤務
MTG
MTG
48Copyright©2017 NTT corp. All Rights Reserved.
作業環境
家の様子
会社デスクの様子
49Copyright©2017 NTT corp. All Rights Reserved.
業務の 90% は OSS 活動&自分に最適な環境で作業
Q. Core Reviewer の生活どんな感じ?