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
DBRE(Database Reliability Engineering) 始めました ~ ...
Search
_awache
June 07, 2019
Technology
4
1.6k
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
Tweet
Share
More Decks by _awache
See All by _awache
Practical_Tips_for_Using_Confluence__Jira__and_Findy_Team__Right_Now.pdf
_awache
1
200
【関西DB勉強会】 ~ 全部見せます ~KINTO テクノロジーズの DBRE とは
_awache
2
1.8k
KTC_DBRE.pdf
_awache
1
550
_オープニング__GitLabに学ぶ_世界最先端のリモート組織のつくりかた_そーだいなる輪読会キックオフ.pdf
_awache
0
72
[Opening] DBRE Summit 2023
_awache
0
490
CUS-11_AWS-Summit-2023_DBRE_Practice.pdf
_awache
1
2.9k
DBRE 活動と information_schema
_awache
1
2.1k
クラウドネイティブとDBRE
_awache
0
210
実践:Cloud Center of Excellence を中心としたクラウド戦略/The Practice of Cloud Center of Excellence
_awache
0
4.9k
Other Decks in Technology
See All in Technology
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
470
いざ、BSC討伐の旅
nikinusu
2
780
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
2
520
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
170
Evangelismo técnico: ¿qué, cómo y por qué?
trishagee
0
360
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
12k
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
Can We Measure Developer Productivity?
ewolff
1
150
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
120
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
250
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
220
Engineer Career Talk
lycorp_recruit_jp
0
160
Featured
See All Featured
A better future with KSS
kneath
238
17k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
89
Scaling GitHub
holman
458
140k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Typedesign – Prime Four
hannesfritz
40
2.4k
Building Applications with DynamoDB
mza
90
6.1k
Done Done
chrislema
181
16k
Code Review Best Practice
trishagee
64
17k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
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!