SlideShare a Scribd company logo
Copyright©2019 NTT Corp. All Rights Reserved.
PTLのお仕事とリリースパイプラインの裏側
NTT 室井 雅仁
2Copyright©2019 NTT Corp. All Rights Reserved.
⾃⼰紹介
• 室井 雅仁 (むろい まさひと)
• IRC: masahito
• OpenStack コミュニティ役職
• Blazar Core Reviewer (元PTL)
• Congress Core Reviewer
• 発表・投稿履歴
• OpenStack Summit 8 件 (2013件~)
• https://www.openstack.org/videos/search?search=muroi
• OPNFV Summit 1 件
• https://youtu.be/qV4eLhsFR28
• ThinkIT 記事 (Summit 速報記事)
• https://thinkit.co.jp/author/8439
• @IT (OpenStack 使い⽅のコツ)
• http://www.atmarkit.co.jp/ait/articles/1509/17/news006.html
3Copyright©2019 NTT Corp. All Rights Reserved.
Project Team Lead
• OpenStack プロジェクトの代表
• Technical Committee や別グループとのコンタクトポイント
• リリースサイクルごとに⽴候補形式の選挙制
• 最近は 2~4 サイクルごとの交代が多くなってきた
• 主な役割
• 開発ロードマップの作成
• 開発者ミーティング (PTG) の議⻑・司会進⾏
• 公式リリースの作成
• 新規 Core Reviewer の推薦
• プロジェクト管理の雑務全般
パッチ作成 パッチ作成 パッチ作成
パッチレビューパッチレビュー
コミュニティ運営
PTL
Core Reviewer
⼀般コントリビュータ
4Copyright©2019 NTT Corp. All Rights Reserved.
OpenStack のリリースモデル
master branch
2.0.0.0b3
2.0.0.0rc1, 2.0.0
2.0.1
stable/rocky branch
開発 milestone は tag で対応
rc1 tag を起点として stable branch を作成
release tag は、最新 rc へ設定
bug fix のバックポートがあった場合、
マイナーバージョンアップアップした tagを作成
5Copyright©2019 NTT Corp. All Rights Reserved.
OpenStackプロジェクトのリリース作業
release リポジトリ内のファイルに
release tag の Commit ID を記述するだけ! 簡単!!
branch 作成は起点となる tag を指定するだけ
releases/deliverables/rocky/blazar.yaml
6Copyright©2019 NTT Corp. All Rights Reserved.
リリースフロー全体像
releases blazar
リリースパッチ投稿
パッチレビュー
Gerrit
2. release tag ��与
1. update trigger
3. tag 更新 trigger
4. build & upload package
PTL
Release team
7Copyright©2019 NTT Corp. All Rights Reserved.
Zuul
• CI/CD (delivery & deployment) system
• プロジェクト (git リポジトリ) をまたがったパッチの依存関係を考慮した CI/CD が可能
であることが特徴
• patch A for X repository depends on patch B for Y repository
• リポジトリの特定のイベントに pipeline を定義、プロジェクトごとに pipeline の実⾏
job を設定
• Gerrit, Github などの配下のプロジェクトを管理可能
• OpenStack Foundation 配下のプロジェクト
• https://zuul-ci.org/docs/zuul/
• Zuul の詳細はこの後のセッション
「ZuulとOpenStackで作る気の利いたCI環境 」 で!
8Copyright©2019 NTT Corp. All Rights Reserved.
リリースパッチのマージから tag の付与まで
• openstack/releasesリポジトリの更新を契機に、追加
された tag の情報を、対象のリポジトリへ反映
• refs/heads/* の更新が実⾏契機
releases blazar
Gerrit
update trigger release tag 付与
openstack/releases/.zuul.yaml
openstack/project-config/zuul.d/jobs.yaml
openstack/project-config/playbooks/release/tag.yaml
9Copyright©2019 NTT Corp. All Rights Reserved.
tag の付与から pypi へのアップロード
• プロジェクトリポジトリへの tag 追加を契機に、パッ
ケージングと pypi へのアップロードを実施
• プロジェクトリポジトリの refs/tag
blazar
Gerrit tag 更新 trigger builds and uploads package
openstack/project-config/zuul.d/projects.yaml
openstack/openstack-zuul-jobs/zuul.d/project-templates.yaml
openstack/project-config/zuul.d/jobs.yaml
zuul/zuul-jobs/roles/build-python-release/task/main.yaml
10Copyright©2019 NTT Corp. All Rights Reserved.
FAQ.1
Q. 簡単と⾔ってるけどリリースノートの作成とか、総合したら⾯倒なんじゃ
ない?
A. リリースノートなども release tag の設定を契機にすべて⾃動化されてい
ます
release team がめっちゃ頑張ってくれています、感謝
詳しくは “openstack reno” で検索してみてください
11Copyright©2019 NTT Corp. All Rights Reserved.
FAQ.2
Q. zuul の job や template がどこに定義されているか分かりづらい
A. 私もそう思います。
次のくくりで覚えて grep して検索しています。
• openstack/project-config, openstack/openstack-zuul-jobs
• OpenStack に特化した job や template
• tempest のテスト, API リファレンスやリリースノートのビルドなど
• zuul/zuul-base-jobs, zuul/zuul-jobs
• ⼀般的な job
• pypi upload など
12Copyright©2019 NTT Corp. All Rights Reserved.
まとめ
• PTL の仕事はいろいろあります
• OpenStack のリリース作業は超簡単
• リリース作業も git 管理のためリリーストラッキングも簡単
• Zuul の pipeline 機能便利
• ぜひ皆様も CI/CD に導⼊してみてはいかがでしょうか

More Related Content

PTLのお仕事とリリースパイプラインの裏側

  • 1. Copyright©2019 NTT Corp. All Rights Reserved. PTLのお仕事とリリースパイプラインの裏側 NTT 室井 雅仁
  • 2. 2Copyright©2019 NTT Corp. All Rights Reserved. ⾃⼰紹介 • 室井 雅仁 (むろい まさひと) • IRC: masahito • OpenStack コミュニティ役職 • Blazar Core Reviewer (元PTL) • Congress Core Reviewer • 発表・投稿履歴 • OpenStack Summit 8 件 (2013件~) • https://www.openstack.org/videos/search?search=muroi • OPNFV Summit 1 件 • https://youtu.be/qV4eLhsFR28 • ThinkIT 記事 (Summit 速報記事) • https://thinkit.co.jp/author/8439 • @IT (OpenStack 使い⽅のコツ) • http://www.atmarkit.co.jp/ait/articles/1509/17/news006.html
  • 3. 3Copyright©2019 NTT Corp. All Rights Reserved. Project Team Lead • OpenStack プロジェクトの代表 • Technical Committee や別グループとのコンタクトポイント • リリースサイクルごとに⽴候補形式の選挙制 • 最近は 2~4 サイクルごとの交代が多くなってきた • 主な役割 • 開発ロードマップの作成 • 開発者ミーティング (PTG) の議⻑・司会進⾏ • 公式リリースの作成 • 新規 Core Reviewer の推薦 • プロジェクト管理の雑務全般 パッチ作成 パッチ作成 パッチ作成 パッチレビューパッチレビュー コミュニティ運営 PTL Core Reviewer ⼀般コントリビュータ
  • 4. 4Copyright©2019 NTT Corp. All Rights Reserved. OpenStack のリリースモデル master branch 2.0.0.0b3 2.0.0.0rc1, 2.0.0 2.0.1 stable/rocky branch 開発 milestone は tag で対応 rc1 tag を起点として stable branch を作成 release tag は、最新 rc へ設定 bug fix のバックポートがあった場合、 マイナーバージョンアップアップした tagを作成
  • 5. 5Copyright©2019 NTT Corp. All Rights Reserved. OpenStackプロジェクトのリリース作業 release リポジトリ内のファイルに release tag の Commit ID を記述するだけ! 簡単!! branch 作成は起点となる tag を指定するだけ releases/deliverables/rocky/blazar.yaml
  • 6. 6Copyright©2019 NTT Corp. All Rights Reserved. リリースフロー全体像 releases blazar リリースパッチ投稿 パッチレビュー Gerrit 2. release tag 付与 1. update trigger 3. tag 更新 trigger 4. build & upload package PTL Release team
  • 7. 7Copyright©2019 NTT Corp. All Rights Reserved. Zuul • CI/CD (delivery & deployment) system • プロジェクト (git リポジトリ) をまたがったパッチの依存関係を考慮した CI/CD が可能 であることが特徴 • patch A for X repository depends on patch B for Y repository • リポジトリの特定のイベントに pipeline を定義、プロジェクトごとに pipeline の実⾏ job を設定 • Gerrit, Github などの配下のプロジェクトを管理可能 • OpenStack Foundation 配下のプロジェクト • https://zuul-ci.org/docs/zuul/ • Zuul の詳細はこの後のセッション 「ZuulとOpenStackで作る気の利いたCI環境 」 で!
  • 8. 8Copyright©2019 NTT Corp. All Rights Reserved. リリースパッチのマージから tag の付与まで • openstack/releasesリポジトリの更新を契機に、追加 された tag の情報を、対象のリポジトリへ反映 • refs/heads/* の更新が実⾏契機 releases blazar Gerrit update trigger release tag 付与 openstack/releases/.zuul.yaml openstack/project-config/zuul.d/jobs.yaml openstack/project-config/playbooks/release/tag.yaml
  • 9. 9Copyright©2019 NTT Corp. All Rights Reserved. tag の付与から pypi へのアップロード • プロジェクトリポジトリへの tag 追加を契機に、パッ ケージングと pypi へのアップロードを実施 • プロジェクトリポジトリの refs/tag blazar Gerrit tag 更新 trigger builds and uploads package openstack/project-config/zuul.d/projects.yaml openstack/openstack-zuul-jobs/zuul.d/project-templates.yaml openstack/project-config/zuul.d/jobs.yaml zuul/zuul-jobs/roles/build-python-release/task/main.yaml
  • 10. 10Copyright©2019 NTT Corp. All Rights Reserved. FAQ.1 Q. 簡単と⾔ってるけどリリースノートの作成とか、総合したら⾯倒なんじゃ ない? A. リリースノートなども release tag の設定を契機にすべて⾃動化されてい ます release team がめっちゃ頑張ってくれています、感謝 詳しくは “openstack reno” で検索してみてください
  • 11. 11Copyright©2019 NTT Corp. All Rights Reserved. FAQ.2 Q. zuul の job や template がどこに定義されているか分かりづらい A. 私もそう思います。 次のくくりで覚えて grep して検索しています。 • openstack/project-config, openstack/openstack-zuul-jobs • OpenStack に特化した job や template • tempest のテスト, API リファレンスやリリースノートのビルドなど • zuul/zuul-base-jobs, zuul/zuul-jobs • ⼀般的な job • pypi upload など
  • 12. 12Copyright©2019 NTT Corp. All Rights Reserved. まとめ • PTL の仕事はいろいろあります • OpenStack のリリース作業は超簡単 • リリース作業も git 管理のためリリーストラッキングも簡単 • Zuul の pipeline 機能便利 • ぜひ皆様も CI/CD に導⼊してみてはいかがでしょうか