紹介 データベース信頼性エンジニアリング 2023/09/26 YugabyteDB Japan Meetup #3で登壇した際の資料です。
データベース信頼性エンジニアリング(DBRE)とは何か? を紐解き、どのようにDBAと違うのか? を説明します。
紹介 データベース信頼性エンジニアリングYugabyteDB Japan Meetup #3株式会社スリーシェイク 中楯 直希
View Slide
\du2株式会社スリーシェイク Sreake事業部業務内容- DBRE兼SRE見習い- クラウドもオンプレも分からない- データベースも分からない- 自称データ雑用係- DBAでもDBREでもデータエンジニアでも興味あること- データベース関連ならなんでも中楯 直希@nnaka2992@nnaka2992.bsky.social
- DBREとは?- DBREに求められるもの- DBREからみたYugabyteDB- まとめAgenda3
DBREとは?01
DBREとは?5DBREってDBAの言い換えですよね?うちではインフラエンジニアもSREって呼んでるんですよ
DBREとは?6😇
DBREの成り立ち: 2015年7- データベース信頼性エンジニアリング DBAロールのモダナイズLaine Campbell- DBREという言葉の初出は2015年にO'Reillyが主催したVelocity Conference Santa Clara 2015- DevOpsの概念をDBAにとりこみ、データベースを含む開発と運用をモダナイズする手法の紹介をしているDatabase reliability engineering, modernizing the DBA rolehttps://learning.oreilly.com/videos/velocity-conference-santa/9781491927977/9781491927977-video215615/
DBREの成り立ち: 2017年8- データベース信頼性エンジニアリングLaine Campbell & Charity Majors- 前述のセッションを深堀し、DBREの概念とやるべきことの指針を示したDatabase Reliability Engineeringhttps://www.oreilly.com/library/view/database-reliability-engineering/9781491925935/今日、データベースのプロフェッショナルは管理者ではなく、エンジニアでなければなりません。...エンジニアであればこそ、オペレーション作業における繰り返しの多い作業や固定化された手順について、設計、ビルド、データ構造といった観点から問題点を洗い出し、最適化することが可能になるのです。1章 イントロダクションより
SREから見たDBRE9“class SRE implements interface DevOps”クラスSREはDevOpsというインターフェイスの実装である- SREはGoogleが提唱した概念でDevOpsの実践例の一つSite Reliability Engineering: Chapter 1 - How SRE Relates to DevOpshttps://sre.google/workbook/how-sre-relates/● 分散システムのモニタリング● 自動化の推進● 適切なリリースエンジニアリング● 単純さ● リスクの受容● SLO の定義● Toil(労苦)の撲滅
SREから見たDBRE10“class DBRE extends class SRE”クラスDBREはSREというクラスの継承である- DBREはSREがデータベースに特化した形態と考えることが出来る- データベースは専門性が高く障害が許されない- 特化することで信頼性と開発速度の両立を目指す
DBREに求められるもの02
DBREに求められるもの12DBREが求めるもの=開発・変更速度(Dev) + 安定稼働(Ops)DBAからDBREに変革するにはDevOpsへの適合が必要不可欠
DBREに求められるもの13DBREを実現するために必要なもの- データを守ること- Toil(労苦)の削減- データドリブンの意思決定- データベースの民主化- 開発と運用の境目をなくす
DBREに求められるもの14DBREを実現するために必要なもの- データを守ること- Toil(労苦)の削減- データドリブンの意思決定- データベースの民主化- 開発と運用の境目をなくすDBAも今までやってきたことただし対象はデータベースに限らない
DBREに求められるもの15DBREを実現するために必要なもの- データを守ること- Toil(労苦)の削減- データドリブンの意思決定- データベースの民主化- 開発と運用の境目をなくすSREがDevOpsを実現するためにやっていること
DBREに求められるもの16DBREを実現するために必要なもの- データを守ること- Toil(労苦)の削減- データドリブンの意思決定- データベースの民主化- 開発と運用の境目をなくすデータベースとSRE両方の専門家のみが重要度を理解しながら実現できる
DBAからDBREに17DBAが潜在的に持っている特徴- DBの門番- 芸術的にくみ上げられたデータベース- 職人による管理- 他チームからの独立
DBAからDBREに18DBAが潜在的に持っている特徴- DBの門番門番的にふるまってしまうと開発速度のボトルネックになるDBAが目で見て判断するより仕組みで解決する必要がある
DBAからDBREに19DBAが潜在的に持っている特徴- 芸術的にくみ上げられたデータベース特定のDBに固執してしまうと複雑な設定やデータ処理が必要になる必要に応じてメモリストアやドキュメントDBなどを選定する
DBAからDBREに20DBAが潜在的に持っている特徴- 他チームからの独立専門チームになってしまうことでお互い無関心になってしまうクロスファンクショナルなチームを目指し、DevとDBAを統合する必要がある
DBREの形はさまざま21DBREの取り組みは組織の文化や成熟度によって違うGoogleのとあるソフトウェアエンジニアがシステム運用を任されて、長い時間をかけて理想を形にした結果がSREである。現在サービスを運用する上で最適だと言われる方法論の一つとしてSREがありSREの本の状態を目指すことが真のゴールではない。SREのプラクティスを自分たちなりに解釈して組織やサービスと向き合い続けて、仲間を集めた先に、あなた(の組織)らしいSREが生まれるのです。あなたらしく SRE(公開用)https://speakerdeck.com/abnoumaru/anatarasikusre-gong-kai-yong
DBREのからみたYugabyteDB03
YugabyteDBの魅力23DBREからみたYugabyteDBの魅力- 分散能力に伴う可用性の向上- 障害からの自動回復能力- オンラインDDLの対応- PostgreSQLへの高い互換性
YugabyteDBの魅力24DBREからみたYugabyteDBの魅力- 分散能力に伴う可用性の向上- 障害からの自動回復能力おそらくDB関係者全員がうれしい特性高い可用性と復旧能力でSLO違反を減らし、リスクのあるデプロイが可能になる
YugabyteDBの魅力25DBREからみたYugabyteDBの魅力- オンラインDDLの対応DevOpsを実践するとデプロイ頻度が多くなるテーブルロックを気にする必要が減り、開発速度の低下を防ぐことができる
YugabyteDBの魅力26DBREからみたYugabyteDBの魅力- PostgreSQLへの高い互換性サービスの成長、縮小に伴いPostgreSQLと使い分けられるクエリレイヤはPostgreSQLからのフォークなので移行時のハマりどころが少ない
YugabyteDBの魅力27DBREからみたYugabyteDBに欲しい機能- Blue Greenデプロイメントやブランチングへの対応RDS/AuroraやNeonなどで提供されているような開発生産性を向上させるような機能が欲しい
まとめ04
まとめ29- DBREはデータベース運用にDevOps・SREを導入したもの- 他チームと融和し、定型作業を減らすことで開発サイクルを改善する- データベースに安全なアクセス・変更を提供する- YugabyteDBの停止時間を少なく出来る特性はDevOpsに向いている- YugabyteDBにも開発体験を向上させる機能が欲しい
参考資料30- Database reliability engineering, modernizing the DBA role - Laine Campbell (Pythian)- https://learning.oreilly.com/videos/velocity-conference-santa/9781491927977/9781491927977-video215615/- Database engineering- https://www.slideshare.net/lainecampbell/database-engineering- Surge 2015 - Laine Campbell - Database Reliability Engineering, Modernizing the DBARole- https://www.youtube.com/watch?v=lsiI8AIzLrE- Database Reliability Engineering- https://www.oreilly.com/library/view/database-reliability-engineering/9781491925935/- データベースリライアビリティエンジニアリング- https://www.oreilly.co.jp/books/9784873119403/- Site Reliability Engineering- https://sre.google/sre-book/table-of-contents/
参考資料31- The Site Reliability Workbook- https://sre.google/workbook/table-of-contents/- Developing a Google SRE Culture- https://www.cloudskillsboost.google/course_templates/95- Documentation Home - YugabyteDB- https://docs.yugabyte.com/- あなたらしくSRE(公開用)- https://speakerdeck.com/abnoumaru/anatarasikusre-gong-kai-yong- [SRETT #6] DBREノススメ- https://speakerdeck.com/nnaka2992/srett-number-6-dbrenosusume