Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
DBRE(Database Reliability Engineering) 始めました ~ ...
Search
_awache
June 07, 2019
Technology
1.9k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DBRE(Database Reliability Engineering) 始めました ~ Make it visible / No Ops, More Code ~
2019-06-07 MySQL Casual Talks vol.11 のスライドです
https://mysql-casual.connpass.com/event/131551/
_awache
June 07, 2019
More Decks by _awache
See All by _awache
[ホンマでっか SRE] あなたはなぜ SRE に?
_awache
0
620
_NIKKEI_Tech_Talk__勉強会は熱量では続かない___17回続いた輪読会の設計術.pdf
_awache
2
290
RACIで比較する DBA と DBRE の思想の違い〜データベース運用をプラットフォーム化する責任設計〜
_awache
0
390
人材育成分科会.pdf
_awache
4
520
生成 AI × MCP で切り拓く次世代 SRE!自律型運用への挑戦と開発者体験の進化
_awache
1
2.4k
Claude_Code_比較検証.pdf
_awache
0
220
o11yで育てる、強い内製開発組織
_awache
4
840
20250710-dbtech-showcase-C7.pdf
_awache
0
120
Restarting_SRE_Road_to_SRENext_.pdf
_awache
1
710
Other Decks in Technology
See All in Technology
Multica × 長期記憶:40個のミニプロジェクト管理
eiei114
1
270
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
2
630
Adaptive Warehouse を今すぐ導入すべき理由と迷ったときの判断基準
__allllllllez__
0
210
range over func 2年間の軌跡 Issue #56413 はGoのエコシステムをどう変えたか
ryujicre8ive
0
140
NW運用でNWトポロジ可視化ツールに期待すること/shumoku-meetup1
corestate55
2
120
安心して変更できるWebフロントエンドの作り方
pirosikick
4
2k
越境するなら専門用語を使うな高校校歌 / If you wanna cross border, you shouldn't use jargon
vtryo
0
130
おい、エージェントを使って終わらせろ
nwiizo
0
130
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
160
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
5
2.1k
AIネイティブプロダクトで顧客価値を最大化するプロダクトエンジニアとFDEの協働
righttouch
PRO
0
270
生成AIエージェントを用いた、 手動テスト手順書から自動テストへの 変換手法の検討
magicpod
0
100
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.8k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
A better future with KSS
kneath
240
18k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.9k
Balancing Empowerment & Direction
lara
6
1.3k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
500
Raft: Consensus for Rubyists
vanstee
141
7.7k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
570
Transcript
Database Reliability Engineering 始めました ~ Make it visible / No
Ops, More Code ~ http://www.bizreach.jp プラットフォーム基盤推進室 Database Reliability Engineer Group
Hello!! *********** 1. row ********** name: 粟田 啓介 nickname: あわっち
title: DBRE twitter: @_awache 1 rows in set (0.00 sec) mysql > SELECT * FROM me \G
README ✅ この資料は @_awache という個人の独断と偏見により作成したものです 。 ✅ 所属する組織の意見を代表するものではありません 。 ✅
合法性や安全性、情報の正確性についても保証できません。 カジュアルな会(のはず)なので内容もノリも軽めです。 カシュっとしながら 楽しんでいただければと思いますmm mysql-casual だけど MySQL のこと少なめです。 ✅ Theme by Template Park. >https://template-parks.com/
DBRE 始めました
Mission プラットフォームを通してエンジニアリングとプロ ダクトを成長させ続けられる会社を促進すること Vision Make it Visible 品質、生産性を見える化することで、 課題の発見と健全な成長を促す No
Ops, More Code エンジニアに対して開発と事業成長に 注力できる環境を提供する 組織理念 エンジニアが成長でき、居続けたいと思う会社にする 優秀なエンジニアが集まり、育て、居続けられる環境を作ることで 世の中により多くの価値を提供できる プラットフォーム基盤推進室
(直近の) DBRE Group’s Value ◦ BizReach の DBRE の存在意義 ➢
Platform を提供することで Mission/Vision を具現化 ▪ まずは3大非機能要件の共通化を行い各事業に提供 • Provisioning • Monitoring • Backup ▪ Platform 化の価値 • 機能要件に注力できるリソース確保・生産性向上 • ナレッジを使いまわせることによる社内の人材流動性向上
Provisioning Platform Backup/ Masking Platform Monitoring Platform BizReach として最低限必要なパッケージが揃った DBを素早く提供
MySQL パラメータセッティング 管理ユーザーとアプリケーションユーザー設定 … etc プロダクトから切り離された環境を構築 定期的なバックアップ データのマスクを行う 他部署はマスクされたデータを参照できる 定量モニタリングに必要なデータを Datadogに連携 人材の横断的な移動を可能にする まず Platform 化したかったこと
Platform Builders ◦ 事業に対して Database Platform の提供 ➢ 個別最適を行わない
▪ 個別機能を開発しないではない ▪ 個別の機能をいかに Platform として昇華させるか ➢ ただやるだけだとつまらない ▪ やりたいことは既に枯れたこと ▪ How の部分を今っぽく作れたら楽しくね?
Backup Platform
Backup Platform ◦ 雑なイメージ Product Account Platform Account 本番 Database
① Share ② Restore ③ mysqldump ④ S3 UPLOAD ⑤ Restore Test
セキュリティ関連① ◦ Restore をする時点で 監査 Log を全出力 ➢ 同じ会社内とはいえ他事業のデータ
▪ 自分たちの身を守るためにも、そして事業の方々に 安心して任せてもらえるようにするためにも • Database に対する監査ログを出力 • AWS アカウントそのものに対するログも全て保存 • 誰からでもそのログはオープンに見えるような仕組みづくりに今後 取り掛かる
セキュリティ関連② ◦ Restore をする時点でランダムパスワード ➢ RestoreしたDatabaseにはヒトはアクセスしない ▪ 毎回ランダムで生成されたパスワードで起動
• 必要な処理が完了すればいい • システム的にパスワードが保持されているだけでいい > response = client.modify_db_cluster( > DBClusterIdentifier='string', > MasterUserPassword='string', > ApplyImmediately=True, > )
セキュリティ関連③ ◦ 必要な処理が終わったら全てお掃除 ➢ DB Instance から作らせてもらったSnapshotまで ▪ 不要に情報を保持しておかない
▪ Snapshotの保持数に制限もあるので事業の運用に与える影 響を最小限に抑える
Parallel に dump ◦ Backup にかかる時間を短縮 ➢ アプリケーションからのアクセスない ▪
つまり更新されないので • information_schema からテーブルリスト引っ張って • その後、テーブル単位でパラレルに dump (うちでは TRIGGER や VIEW を基本的に使ってないのでシンプルに)
Restore Test ◦ Backupしても戻せなければただのゴミ ➢ 同じ Instance 内に Restore して確認
▪ 基本同じはず ▪ ここまで終わればあとはよほどのことがない限り 触る必要がないので S3に塩漬けておく
Masking Platform
Masking Platform ◦ Platform として資産を使い回し Product Account Platform Account 本番
Database ① Share ② Restore ③ data masking ④ S3 UPLOAD 違うのは ここだけ
Masking の運用① ◦ Masking Data の使い方 ➢ Masking されたデータはマーケティング用途で使用
▪ tsv 形式でファイル出力してS3にPUT ▪ そのファイルをマーケティングチームが取りに来て ▪ マーケティング用の BigQuery に入れる • 安心してください、個人情報はマスクしています • そして権限ある人しか見れないようにしています
Masking の運用② ◦ 僕たちの責任範囲 ➢ 事業から指定されたようにMaskingをすること ▪ Masking Rule
等は事業側で決める • git 上に設定ファイルを commit してもらってそれを使用 • 誰がいつ変更したのかの証跡を追えるように 責任範囲を明確にすることで自分たちの身を守ることも忘れずに
Masking の運用③ ◦ (ごく近い) 将来的な展望 ➢ Masking したデータを Restore した
DB に反映 ➢ SnapShot を取得 ➢ 各事業アカウントにShare ➢ それを起動するだけで鮮度の高い検証環境を作れる
Masking Platform ◦ 雑なイメージ Product Account Platform Account 本番 Database
① Share ② Restore ③ data masking ④ S3 UPLOAD ⑤ UPDATE ⑥ Create Snapshot ⑦ Share 検証用 Masking DB
Provisioning Platform
Provisioning Platform ◦ インスタンスの起動に関しては王道 ➢ Terraform などで構築(割愛) ◦
これからはローカル環境構築も重点的に ➢ 本番環境のパラメータグループから必要な情報を取得して ▪ バージョンとか文字コードとか SQL モードとか 検討中 ➢ my.cnf を動的に作って ➢ 前日と変わっていたら git に commit ▪ docker-compose でサービス指定したらいい感じにあげれるようにしたい
Finally
DBRE の概念 ◦ DBREとは ➢ Database に於けるモノゴトを ` Reliability Engineering
` という側面 から解決していく ▪ Databaseに対する専門知識 ▪ Database Professional としての判断 を用いて再帰性のあるプロセスや戦略決定に落とし込むこと ➢ DBRE の概念を実行するヒト、役割は DBREs
まだ僕たちの旅は始まったばかり ◦ DBREについても勉強中 ➢ そもそも自分たちでもうまく消化できてない部分も多い ▪ 社内の有志で DBRE 本輪読会をやってます
(スラング多すぎて翻訳辛い) ▪ 100% これが正しいなんて定義するには時間がかかるし 会社 にフィットさせるにはもっと時間がかかる • `こうあるべき` ということに固執しすぎず柔軟に 私達なりの DBRE を進化させます
僕たちの活動 ◦ アプローチ ➢ 基本的な部分は今までと変わらない ▪ 環境分離、Backup/Restore、Security、構成管理 , etc.
➢ 変わっているのはそれを取り巻く環境 ▪ DevOps思想の醸成、Cloud・コンテナ技術の爆発的な発展 ▪ Application に求められるスピード ▪ ほとんどを自動化し Engineering によって解決できる土壌が揃ってきてい る
僕たちだけやれるとは思えない ◦ なぜなら ➢ パラメーターは有限 ➢ 装備も有限 もちろん全部できたら
最強なんだろうけど。。 ならどうする?
1. 社内で仲間を集う ◦ 自分の足りないところを仲間で補い合う ➢ 各々得意な分野を伸ばしていきつつ ➢ 周りの力を借りて同時に周辺の知識を少しづつ蓄えていく
2. 社外で仲間を集う① ◦ AWS の SA さんとか ➢ うちの担当は控えめに言って 最
& 高 ➢ 稚拙な状態での計画も一緒に叩き直してくれる
3. 社外で仲間を集う② ◦ MySQL 業界には 神 な方々がいっぱい ➢ Slack や
Twitter で呟くといろんなAPIが反応してくれる ➢ そして優しく送り出してくれる ➢ つまり楽しい
一緒に旅をしてくれる仲間を募集中 ◦ DBRE グループはできてまだ4ヶ月 ➢ やらなければいけないこと、やりたいことはたくさん ➢ 今はまだこれまであるべきものを形にしているだけ
➢ 新しいことも手をつけていきたい ➢ 興味がある方はご連絡くださいmm
Thanks!! @_awache Contact me!