Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20190805_DBRE_Night
Search
_awache
August 05, 2019
Technology
1
1.4k
20190805_DBRE_Night
20190805 そーだいなる DBRE Night での発表資料です
_awache
August 05, 2019
Tweet
Share
More Decks by _awache
See All by _awache
KTC_DBRE.pdf
_awache
1
410
_オープニング__GitLabに学ぶ_世界最先端のリモート組織のつくりかた_そーだいなる輪読会キックオフ.pdf
_awache
0
47
[Opening] DBRE Summit 2023
_awache
0
430
CUS-11_AWS-Summit-2023_DBRE_Practice.pdf
_awache
1
2.7k
DBRE 活動と information_schema
_awache
1
1.8k
クラウドネイティブとDBRE
_awache
0
200
実践:Cloud Center of Excellence を中心としたクラウド戦略/The Practice of Cloud Center of Excellence
_awache
0
4k
PostgreSQLUnconference#19
_awache
0
120
introduceDBREJP
_awache
0
460
Other Decks in Technology
See All in Technology
中年男性がメインフレームから クラウドへキャリアシフトしてみた
uechishingo
1
450
今日からできる!簡単 .NET 高速化 Tips -2024 edition-
xin9le
8
5.1k
【リラン】AIの光と闇?失敗しないために知っておきたいAIリスクとその対応 ①政府の動き編
tkhresk
0
120
M5と自作基板をくっつけてみた〜M5 Japan Tour 2024 Spring 福冈 (Fukuoka|福岡)〜
keropiyo
1
260
「できる!」を増やすGitHub Copilot活用法 / How to use GitHub Copilot to expand your possibilities
sansan_randd
1
190
Domain-driven Design: A Complete Example
ewolff
1
170
エムスリーQAチーム紹介資料 / Introduction of M3 QA Team
m3_engineering
1
220
能動学習のいろは:書籍「Human-in-the-Loop機械学習」3〜5章
hiroyoshiito
0
270
Amplify 🩷 Bedrock 〜生成AI入門〜
minorun365
PRO
10
1.2k
開発スピードの維持向上を支える、テスト設計の 漸進的進化への取り組み / Continuous Test Design Development for Speed of Product Development
ropqa
0
170
データ分析力を高めるSQL研修サービス『SQL Everyone』
hikarut
1
310
複雑なビジネスルールに挑む:正確性と効率性を両立するfp-tsのチーム活用術 / Strike a balance between correctness and efficiency with fp-ts
kakehashi
5
2.8k
Featured
See All Featured
Designing Experiences People Love
moore
136
23k
Raft: Consensus for Rubyists
vanstee
133
6.3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
649
58k
The Invisible Side of Design
smashingmag
294
49k
GraphQLの誤解/rethinking-graphql
sonatard
56
9.3k
RailsConf 2023
tenderlove
9
580
Mobile First: as difficult as doing things right
swwweet
217
8.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
Designing with Data
zakiwarfel
96
4.8k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
242
1.2M
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
Docker and Python
trallard
35
2.7k
Transcript
そーだいなる DBRE Night #1 ~ ぼっちにならない、横断的DBAの作り方 ~ https://www.bizreach.co.jp/ プラットフォーム基盤推進室
DBRE 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 ✅ Theme by Template Park. >https://template-parks.com/
1. 横断組織としてのDBA
横断組織 誕生 ◦ 2018年 8月 ➢ インフラ・SREメンバーが集まって構成 ▪ DB系は一人 ▪
当時の MGR「あわっちをどうしたらいいか悩むわ」 • ならなぜ僕をここに呼んだ Σ(゚ロ゚;) ▪ 一人で組織横断DBAってどうなの? • 最初は組織横断DBAとして何をしたらいいかが分からなかった • まずは何をしたいか、自分の目標設定からスタート
自分の活動の軸を決める(1) ◦ 事業の成長を妨げる要因にならない ➢ 例えば 3年後に売り上げが 10倍 〜 となったとしても ▪
成長についていける基盤を作る必要性 ▪ Database が要因となって事業戦略を諦めさせない ▪ 同時に事業の成長スピードを上げる手助けを行う
自分の活動の軸を決める(2) ◦ 事業に対するリスクを最小化 ➢ 外部要因によるリスク ▪ 個人情報流出の危険性の排除 ➢ 流動的な人の移動を可能にさせる標準化 ▪
個別最適の削減 • 標準 Backup/Restore の仕組み • 共通モニタリング
ビズリーチのDBA事情 ◦ 専属のDBAがいる組織とそうでない組織 https://www.bizreach.co.jp/
DBAはいなくてもアプリは動く ◦ ちょっとぶっ飛びすぎ感はあるけれども ➢ 実際問題 DBA はエンジニア全体からするとかなり希少 ▪ 大抵は問題が起こった時 DBちょっとできる人が筋肉運用
▪ インフラエンジニア と呼ばれる人が兼任することが多い気が する ➢ アプリケーション設計や実際に流れるクエリの組み立ては アプリケーションエンジニアが行う ▪ DBA による Review がなくても自由に作ればいい • 最近は ORM も充実しているので。。。
なぜDBAが必要か ◦ アプリケーションの稼働率に直結するから(雑) ➢ 色々なタスクはあれど、基本的にはここに辿り着くのでは? ▪ Provisioning ▪ Backup・Restore ▪
セキュリティ ▪ パフォーマンス, etc.
ビズリーチの課題 ◦ DBA そのもののリソース不足 ➢ DB運用に必要な最低限のモノゴトが無い ▪ DB にかける時間が考慮されていない ▪
Monitoring/Backup/Restore など ➢ 各事業で同じものを別々の方法で作っている ▪ Monitoring/Backup/Restore など ➢ DB設計などの相談先の不在 ▪ アプリケーションのソースコードと密結合された DBスキーマ ▪ それまでの開発の文化が設計にそのまま反映されてしまう • 複数の意味を持つカラムの存在 • 先人のマジカルな仕様の聖域化 など
割とある解決策 ◦ 中央集権の組織を作ってそこで管理運用を行う ➢ Provisioning に必要な秘伝のタレができて ➢ スキーマやクエリ Review のフェーズができて
➢ 大量に来る依頼を無心に捌く
自分が中央集権をしたら ◦ こんな 横断DBA になりそう ➢ ゲートキーパー ➢ サイロ化 ➢
アプリケーションエンジニアとの無意味な壁、確執 ➢ アプリケーションの求めるスピードについていけない
やりたいことを整理していく中で ◦ とあるDBAからの一言 ➢ DBRE じゃん、それ ▪ なにそれ?! ➢ O'REILLY
本出てたので即購入 ▪ 英語版のみ ▪ パラパラとめくって惚れた
2. ビズリーチ流の DBRE
DBRE が守るべきものを定義 ◦ (仮置きで) 稼働率と置いた ➢ 稼働率って具体的には? ▪ DB インスタンスとしての稼働率
▪ 企業としての稼働率 ▪ ヒトとしての稼働率
DBRE グループ 稼働率の定義 ◦ DB インスタンスとしての稼働率 ➢ 直接的には 各プロダクトが守るべきもの ➢
間接的に守る手段を DBRE としての稼働率として定義 ▪ Backup ▪ Monitoring ▪ Provisioning etc. 品質と信頼性を一本化するためのアクション 本質的には各プロダクトに存在する
開発部署を雁字搦めにしない ◦ できる限りルールだけを持ち込まない ➢ ルールを取り入れたければ `Engineering` によって解決 ▪ Backup を必ず取得してください
↓↓ ▪ Backup の為の Platform を作ったので権限だけ 設定してもらえればこちらでやらせていただきます
DBRE グループ 稼働率の定義 ◦ 企業としての稼働率 ➢ 各部署のサポート ▪ 現段階では ビズリーチ、キャリトレに対して実施
• DBA が存在するところでまずは実施 • DBA がいることによる課題の吸い上げ、 アプローチ方法 などを一緒に実施できる ▪ このナレッジを横展開していく土台作りの段階
ナレッジの横展開 ◦ DBAがいない部署に展開するために ➢ できる限り コード化する ▪ PITR が必要なら •
画面からぽちぽちしていく作業をコマンドにする • 定期的にテスト実行することで信頼性も上げる ▪ 大量の Slow Query をなんとかしたい • Cloudwatch に Slow Query を吐いておいて • 時間指定で取得して pt-query-digest に喰わせる コマンドにしてみる • クエリチューニングの判断材料に
DBRE グループ 稼働率の定義 ◦ ヒトとしての稼働率 ➢ 人材育成 ▪ 新卒研修、DB設計ハンズオン ▪
DB設計相談 ▪ クエリチューニング ➢ 属人化排除 ▪ Platform 化
DBRE グループ の今後の理想像 DBRE 推進していく中で新しい技術などを積極的に取り入れて • 社内のプラットフォームだからこそ、ある程度の自由が許される • 周りから見て DBRE
って面白そうと思ってもらえるような技術の選定をしながら • 共通プラットフォームとしての機能を開発していき • 迷える若手がいた際には 「俺んとこ来ないか?」 • って自信を持って言える組織にしたい • いつでも SWE、QA、SRE などのロールに柔軟に Job Change できれば更によし
まとめ ◦ ぼっちにならない為に ➢ まずは周りを巻き込む基盤を作る ▪ ルールで雁字搦めにしない • 誰でも同じことができる仕組みを作って協業する ➢
Database を聖域化しすぎない ▪ DBA は希少かもしれないが エンジニアはたくさんいる ▪ その人たちの強みを上手く活かしつつヒトのサイクルも考えながら組織づ くりを進める
3. DBRE 本との歩き方
Database Reliability Engineering ◦ オライリー本 ➢ 英語版しかない ▪ Amazon で買うのが一番安い
• 古巣の本屋さんとかあるけど ¥12,096- とか。。 • とりあえずイギリスから届く
DBRE本 輪読会 ◦ 英語そんなに得意じゃない人材なので ➢ しっかり読むためにはまずは写経 ▪ 某翻訳さんと 某検索エンジンさんのコンボ •
大枠をそのまま翻訳にかけて • 分からないところは句や節で ggrks すると スラングにも多少は対応できた • 社内の有志が巻き込まれてくれて輪読会実施中
4. お知らせ
dbtech showcase 2019 ◦ BizReach から 3名が登壇します ➢ 応援よろしくお願いしますmm
Thanks!! @_awache Contact me!