Slide 1

Slide 1 text

Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 2023.08.24 @DBRE Summit2023 くぼ(@amamanamam)/ 株式会社アンドパッド テーブル定義変更の ガイドラインを作った話 
 


Slide 2

Slide 2 text

ANDPAD Inc. DBRE Who I am @amamanamam Ayumu Kubo 好きな車種:シエンタ

Slide 3

Slide 3 text

INDEX 1 ガイドラインって? 2 背景と課題 3 ガイドラインの概要 4 導入した結果....! 5 次にやること 6 最後に

Slide 4

Slide 4 text

ガイドラインって? Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止

Slide 5

Slide 5 text

テーブル定義変更のガイドラインを作りました! 今回あなたは何の話をするんですか? ルールのこと....?規約のこと......?

Slide 6

Slide 6 text

ガイドラインとは、行動方針を決定するための記述です。ガイドラインは、設定されたルーチンまたは 健全な実践に従って特定のプロセスを合理化することを目的としています。ガイドラインは、従業員ま たは部門の行動をより予測可能にし、より質の高いものにするために、あらゆる組織 (政府または民間) によって発行され、使用される場合があります。https://en.wikipedia.org/wiki/Guideline ガイドラインの定義を今一度

Slide 7

Slide 7 text

ガイドラインとは、行動方針を決定するための記述です。ガイドラインは、設定されたルーチンまたは 健全な実践に従って特定のプロセスを合理化することを目的としています。ガイドラインは、従業員ま たは部門の行動をより予測可能にし、より質の高いものにするために、あらゆる組織 (政府または民間) によって発行され、使用される場合があります。https://en.wikipedia.org/wiki/Guideline ガイドラインの定義を今一度

Slide 8

Slide 8 text

ガイドラインとは、行動方針を決定するための記述です。ガイドラインは、設定されたルーチンまたは 健全な実践に従って特定のプロセスを合理化することを目的としています。ガイドラインは、従業員ま たは部門の行動をより予測可能にし、より質の高いものにするために、あらゆる組織 (政府または民間) によって発行され、使用される場合があります。https://en.wikipedia.org/wiki/Guideline ガイドラインの定義を今一度 一律的でかつ質が高いプロセスになるように定めた行動方針(≠ ルール)

Slide 9

Slide 9 text

今回は....あらゆるチームのテーブル定義変更(ALTER TABLE …)の本番実施が 一律的でより質が高くなるような行動方針を作ったぞという話をします 結局なんの話ですか?

Slide 10

Slide 10 text

背景と課題 Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止

Slide 11

Slide 11 text

背景 プロダクトチームがテーブル定義変更をする場合 DBREがレビューする運用 Product Team DBRE Team Pull Request

Slide 12

Slide 12 text

背景 DBREでは以下に着目してレビューを行う ● スキーマ変更内容 ● スキーマ変更時の負荷やサービス影響 Product Team DBRE Team Pull Request

Slide 13

Slide 13 text

背景 DBREでは以下に着目してレビューを行う ● スキーマ変更内容 ● スキーマ変更時の負荷やサービス影響 Product Team DBRE Team Pull Request

Slide 14

Slide 14 text

テーブル定義変更時の検証の質がチームで異なる ● 本番実施判断するには不十分な検証の場合がある ● PRに十分な検証結果が記述されていない場合がある 課題

Slide 15

Slide 15 text

課題 検証が不十分なままマイグレーション実行 →サービス影響や障害の恐れ テーブル定義変更時の検証の質がチームで異なる ● 本番実施判断するには不十分な検証の場合がある ● PRに十分な検証結果が記述されていない場合がある

Slide 16

Slide 16 text

次のような情報があったりなかったり・・・ ● 実行予定のALTER文/テーブル情報 ● 検証環境での実行時間/負荷 ● 日中or夜間or計画停止などの実施タイミング PRに検証結果が記述されていない

Slide 17

Slide 17 text

なぜその課題が起こってしまう?? 原因

Slide 18

Slide 18 text

● 検証手順が分からない ● 検証する時に注目すれば良いポイントが分からない ● PRに何を載せれば良いかよく分からない ● 検証手順がやや手間 ● PRに情報載せるのが手間 原因

Slide 19

Slide 19 text

● 検証手順が分からない ● 検証する時に注目すれば良いポイントが分からない ● PRに何を載せれば良いかよく分からない ● 検証手順がやや手間 ● PRに情報載せるのが手間 進め方 まずは分からないに対応するために明確なガイドライン作成 その後、FBを貰いつつ手間に対応していく

Slide 20

Slide 20 text

ガイドラインの概要 Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止

Slide 21

Slide 21 text

● 検証手順が分からない ● 検証する時に注目すれば良いポイントが分からない ● PRに何を載せれば良いかよく分からない ● 検証手順がやや手間 ● PRに情報載せるのが手間 ガイドラインの概要 ガイドラインで開発者の分からないを解消

Slide 22

Slide 22 text

● 本番実行までにやること一覧 ○ どういう順番で何をやればいいか分からないに対応 ● PRに載せてほしいこと ○ PRに何を載せればいいか分からないに対応 ● リリースタイミング検討フロー ○ 日中or夜間リリースの判断基準が分からないに対応 ● …etc テーブル定義変更のガイドラインの概要

Slide 23

Slide 23 text

● 本番実行までにやること一覧 ○ どういう順番で何をやればいいか分からないに対応 ● PRに載せてほしいこと ○ PRに何を載せればいいか分からないに対応 ● リリースタイミング検討フロー ○ 日中or夜間リリースの判断基準が分からないに対応 ● …etc テーブル定義変更のガイドラインの概要

Slide 24

Slide 24 text

● 本番実行までのやることをリスト化 ● 詳細を書きすぎずに同ページの ガイドへのリンクを載せる ● 視認性の良い状態にするため ● 手順を理解している部分は適宜飛 ばせるようにするため テーブル定義変更のガイドラインの概要

Slide 25

Slide 25 text

開発者の方が認識&使いやすいように チェックリスト&マークダウン形式でチケットやPRにコピペできるようにしている テーブル定義変更のガイドラインの概要

Slide 26

Slide 26 text

● 本番実行までにやること一覧 ○ どういう順番で何をやればいいか分からないに対応 ● PRに載せてほしいこと ○ PRに何を載せればいいか分からないに対応 ● リリースタイミング検討フロー ○ 日中or夜間リリースの判断基準が分からないに対応 ● …etc テーブル定義変更のガイドラインの概要

Slide 27

Slide 27 text

テーブル定義変更のガイドラインの概要 ● テーブル定義変更実施の判断に最 低限欲しい情報をリスト化 ● これも詳細を書きすぎない ● 視認性の良い状態にするため ● 本番実施までにやること一覧 に則れば得られる情報のため

Slide 28

Slide 28 text

● 本番実行までにやること一覧 ○ どういう順番で何をやればいいか分からないに対応 ● PRに載せてほしいこと ○ PRに何を載せればいいか分からないに対応 ● リリースタイミング検討フロー ○ 日中or夜間リリースの判断基準が分からないに対応 ● …etc テーブル定義変更のガイドラインの概要

Slide 29

Slide 29 text

リリースタイミング検討フローでは、以下で条件分岐するフローを用意 ● オンラインDDLに対応しているか否か ● alter実行時間が基準より長いか短いか ● 日中/夜間に長時間のトランザクションが存在していないか テーブル定義変更のガイドラインの概要 開発者の方が混乱しないように できるだけ分岐は少なく単純化させる

Slide 30

Slide 30 text

リリースタイミング検討フローの一例 オンラインDDL対応? ALTER実行時間 基準未満? 日中/夜間に長時間の トランザクションある? 通常リリース YES YES NO NO YES ※説明のために  簡略化してます 計画停止

Slide 31

Slide 31 text

導入した結果・・・! Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止

Slide 32

Slide 32 text

テーブル定義変更時の検証の質がチームで異なる ● 本番実施判断するには不十分な検証の場合がある ● PRに十分な検証結果が記述されていない場合がある 元々の課題

Slide 33

Slide 33 text

結果 ● 検証結果の内容が網羅的になった ○ どういう情報でどのような判断をしたかを記述し ていただけるようになった ● 検証結果の内容に統一性が現れた ○ チームごとに検証内容が異なる場面が減った

Slide 34

Slide 34 text

結果:開発者からいただいたコメント

Slide 35

Slide 35 text

結果:開発者からいただいたコメント どういう情報でどのような判断をし たか明確に記述されている

Slide 36

Slide 36 text

結果+α 検証の質が向上しただけではなく..... ● コミュニケーションの往復回数が大幅に減少 ○ コメントが必要な議論のみに絞られる

Slide 37

Slide 37 text

結果+α 開発者 DBRE なぜ日中リリースと 判断しましましたか? 実行時間が〇〇秒だからです 検証環境はどこですか? △△です 日中リリース問題ないです スキーマ内容について提案で... ・・・

Slide 38

Slide 38 text

結果+α 開発者 DBRE なぜ日中リリースと 判断しましましたか? 実行時間が〇〇秒だからです 検証環境はどこですか? △△です 日中リリース問題ないです スキーマ内容について提案で... ・・・ 開発者 DBRE 検証結果がこちらです ・・・・ 日中リリース問題ないです スキーマ内容について提案で...

Slide 39

Slide 39 text

結果+α 開発者 DBRE なぜ日中リリースと 判断しましましたか? 実行時間が〇〇秒だからです 検証環境はどこですか? △△です 日中リリース問題ないです スキーマ内容について提案で... ・・・ 開発者 DBRE 検証結果がこちらです ・・・・ 日中リリース問題ないです スキーマ内容について提案で... Before 往復回数:約3回 After 往復回数:1回

Slide 40

Slide 40 text

次にやること Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止

Slide 41

Slide 41 text

まだ課題あり 分からないには対応できたが 手間には対応できていない....

Slide 42

Slide 42 text

課題:開発者からいただいたコメント

Slide 43

Slide 43 text

課題:開発者からいただいたコメント 完全にガイドラインに準拠するとやや手間...

Slide 44

Slide 44 text

次にやること ● ガイドラインの細かな調整 ● PRやissueフォーマットの作成 ● 指定したディレクトリ配下に修正が入った際に ガイドラインのリンク付きコメントを添付 ● 検証環境作成と検証結果の取得を自動化

Slide 45

Slide 45 text

最後に Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止

Slide 46

Slide 46 text

Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. 無断転載・無断複製の禁止 46 私達と一緒にDBREしませんか? アンドパッド DBRE求人ページ 最後に

Slide 47

Slide 47 text

ご清聴ありがとうございました! Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止