More Related Content
Similar to OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて - (20)
More from Masahiko Sawada (20)
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
- 1. Copyright©2019 NTT Corp. All Rights Reserved.
OSS活動のやりがいとそれから得たもの
- PostgreSQLコミュニティにて -
NTT OSSセンタ
澤田 雅彦
Developers Summit 2019 (C-1)
- 2. 2Copyright©2019 NTT Corp. All Rights Reserved.
業務としてのOSS活動(PostgreSQLの例)
PostgreSQL
ユーザ
(NTTグループ)
NTT
OSSセンタ
PostgreSQL
コミュニティ
フィードバック
• ユーザからのフィー
ドバックを
PostgreSQLに直接反
映する
• 企業・個人としての
強みにも繋がる
• 技術力、提案力の強
化ノウハウ展開・
サポート提供
- 3. 3Copyright©2019 NTT Corp. All Rights Reserved.
• オープンな開発体制
• 特定の企業などに依存せず、誰でも自由に開発に参加可能
• 合意を基本とする意思決定
• ソースコードの追加変更は、メーリングリストでの合意が前提
PostgreSQLコミュニティ
- 4. 4Copyright©2019 NTT Corp. All Rights Reserved.
• PostgreSQL Global Development Group
• OSSセンタからは8名参加、うち1名はCommitterとして参加
開発体制
5名
・コミュニティ運営の
種々取りまとめ
28名
・ソースコードを
追加変更できる
権限を有する
約300名
・パッチの開発
・パッチのレビュー
図は次の発表資料から引用:
「De-mystifying contributing to PostgreSQL」(PGCon 2018)
人数は不明
・出力メッセージの
翻訳など
- 5. 5Copyright©2019 NTT Corp. All Rights Reserved.
• ミートアップ、カンファレンスへの参加
• ミートアップ、カンファレンスでの登壇
• ドキュメント改善
• バグ報告
• バグ修正
• パッチのレビュー
• パッチのテスト
• 新機能開発
など様々
OSS活動ってどんなことをするの?
- 6. 6Copyright©2019 NTT Corp. All Rights Reserved.
技術サポート対応で出てくる問題や、検証作業等で不便
と感じた点を直すことが多い
例
• 想定どおりにBEFORE ROW DELETEトリガを駆動するようにロジカルレプ
リケーションを修正しました
• pgbenchにログ・ファイルのプレフィックを制御するオプション--log-
prefixを追加しました
• VACUUM VERBOSEがスキップした凍結されたページの数と最も古いxminを
報告するようにしました
バグ修正・軽微な機能改善
- 7. 7Copyright©2019 NTT Corp. All Rights Reserved.
既存の課題、将来のユースケースに対応するために
PostgreSQLをより強力なデータベースにする活動
• シャーディング
• 透過的暗号化
新機能開発
- 8. 8Copyright©2019 NTT Corp. All Rights Reserved.
• 大規模データを複数ノードにデータを分散して格納し、
性能向上を図る機能(Sharding)を、PostgreSQLの本体
機能の中(=Built-in)で実現する
シャーディング
データノード1 データノード2 データノード3
コーディネータノード
アプリケーション
- 9. 9Copyright©2019 NTT Corp. All Rights Reserved.
• DBデータを透過的に暗号化する機能の開発
• 鍵管理サーバ(サービス)と連携することで、強固な暗
号化機能を実現する
• PCI-DSS等のセキュリティ規約に対応しやすくなる
セキュリティ
PostgreSQL
鍵管理システム
連携
INSERT INTO ...
(‘1234-56...’)
- 12. 12Copyright©2019 NTT Corp. All Rights Reserved.
• 国内外問わず年平均10回くらいの社外発表
• PGCon 2018 @Ottawa
• 関西DB勉強会 @Osaka
• Japan PostgreSQL Conference 2018 @Tokyo
• PGConf.ASIA 2018 @Tokyo
• FOSDEM 2019 @Brussels
• デブサミ 2019 @Tokyo
• 雑誌への寄稿や、インタビューも経験出来た
社外で発表する機会が増えた
- 13. 13Copyright©2019 NTT Corp. All Rights Reserved.
• 自分が書いたコードがマージされると嬉しい
• 社外で発表する機会が増えた
• アウトプットの機会増
• 成果を対外的に示せる
• 製品の開発動向に詳しくなった
• 目利き力の向上
• 英語が少し上手になった
OSS活動をしていて良かった事
- 14. 14Copyright©2019 NTT Corp. All Rights Reserved.
• 英語でのコミュニケーション
• 心理的障壁はなくなってきたが、わからないことが多い
• 評価してもらえる仕組みが必要
• パッチの件数?パッチのサイズ?
• レビューは成果に入る?
• 成果が出るまで長い時間がかかる場合ある
• 1年以上同じ機能を開発していることもよくある
• 会社・上司の理解が不可欠
• 欧米時間帯に合わせた勤務も時には必要
OSS活動で辛い事・注意が必要な事
- 16. 16Copyright©2019 NTT Corp. All Rights Reserved.
• これからOSS活動を始めてみたい
→ミートアップへの参加、バグレポート、ドキュメント
の修正、開発中機能のテスト
• バグレポートくらいは送ったことがある
→バグ修正、開発中機能のテスト
• がっつりコードにも触りたい
→新機能の開発、開発中機能のレビュー
OSS活動のススメ
- 17. 17Copyright©2019 NTT Corp. All Rights Reserved.
長い目で見るとPostgreSQL本体に反映した方が良いもの
が多い
• ドキュメントの不備に対する知見を内部で抱えている
• 変な挙動に合わせたツール
• 独自のパッチを当てている
秘蔵のパッチ、眠ってませんか?
- 18. 18Copyright©2019 NTT Corp. All Rights Reserved.
人生最初のパッチ
一番最初に書いたパッチは、ベンチマークツール(pgbench)の不具合
を直すもの
• ベンチマークで流すSQLが最大1024文字の制約があった
• DBマイグレーションの検証中に本制約にかかり、検証を進めるこ
とが出来なかった
• 検証を進めるためにとりあえず、プロジェクト内でpgbenchのコー
ドを修正
• PostgreSQLコミュニティに修正を提案し、マージ
“秘伝のpgbench”化を防ぐことができた。
同プロジェクトにも他プロジェクトにもメリットあり。
- 20. 20Copyright©2019 NTT Corp. All Rights Reserved.
• コミッタ(Committer)
• ソースコードへの変更権限を持った役割
• OSS開発者にとって一つの目標
• PostgreSQLコミュニティでは28人(内3人は日本人)
• コミッタになるための条件はOSSプロジェクトそれぞれ
• PostgreSQLでは7,8年活動している人がコミッタになっ
ていることが多い
• 長い人で10年以上、早い人で2,3年
• 活動を継続できるか、良いプロジェクトに取り組めるかが非常
に重要
• 必ずしもコミッタを目指す必要はない
コミッタを目指す
- 21. 21Copyright©2019 NTT Corp. All Rights Reserved.
すでにOSSを利用しているならOSS活動を仕事にしよう
あまりあるメリット
• 自身・チームの技術力向上
• 製品の開発動向が把握できる
• 英語力も向上する
• エンジニアとしてのプレゼンス向上
• 自分が書いたコードが世界中で使われる!
OSS活動へのモチベーションは人それぞれ。
まずは簡単なことから始めてみよう!
最後に - PostgreSQLの開発コミュニティに参加しよう!-