自称からはじめるDBRE

この記事は、DBRE Advent Calendar 2024 24日目の記事です
 
メディア統括本部 サービスリライアビリティグループ(SRG)の鬼海雄太(@fat47)です。
#SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。
 
本記事は、DBREを自称ではじめてみたという記事になります。

DBREとは


DBRE(Database Reliability Engineering)とは、データベースの信頼性を向上させ、システム全体の可用性を高める役割を担うエンジニアリングのことを指します。SRE(Site Reliability Engineering)と比較すると、DBREの知名度はまだそれほど高くありませんが、徐々に認知が広がってきています。

弊社に明確なDBREというロールは存在しない


サイバーエージェントグループでは、私の知っている限りDBREという独立したロールや組織は存在しません。DBA専属もいないと思います。 
※私が知らないだけで実は存在していたらごめんなさい。
 
私はメディア事業の横断SREチームに所属しており、主にMySQLに関連する業務を担当しています。現状に特段困っているわけではありませんが、DBREとしての名乗り活動を行うことで得られるものがあるのではないかと考え、今年からDBRE的な活動に力を入れています。

自称DBREとして活動してみる


Aurora MySQLアップグレードの知見共有活動

今年、私はAmebaのAurora MySQLアップグレードを担当しました。その詳細は以下のブログにまとめていますので、ぜひご覧ください。
 
このアップグレードで得られた知見を組織に還元するため、サイバーエージェントグループ内でAuroraに関する相談ができるSlackチャンネルを作成しました。
各事業部や子会社ごとにSREやそれに近い組織が存在し、それぞれがAuroraアップグレードに対応している状況でしたので、このチャンネルは知見の共有や相談窓口として活用されました。
 
また、SRGポータルブログにも新たに得られた知見を記事化し、この1年で15本以上のブログ記事を執筆しました。いくつかの記事ははてなブックマークのホットエントリーにも入り、社内外の多くの方々に注目していただけました。少しでもデータベースの信頼性向上に貢献できていれば幸いです。
 

MySQL環境の自動ドキュメント化で開発生産性の向上

Amebaはマイクロサービスアーキテクチャを採用しており、多数のマイクロサービスが存在しています。
そのため多くのMySQLクラスタが稼働しており、これらの情報が網羅的にドキュメント化されていないという課題がありました。
さらに、ドキュメント化されていても更新が止まっていることが多く、現況と乖離している場合もありました。これにより、新規開発者のオンボーディングや新機能開発のキャッチアップに時間がかかるという問題が生じていました。
そこで、稼働中のMySQLクラスタのテーブル情報とER図を自動で更新する環境を用意しました。
ER図の作成はtblsを活用させていただきました。
tblsで生成したMarkdownドキュメントを、mkdocsでhtml化しています。
tblsのconfig(yaml)ファイルはgithubで管理し、Aurora MySQLのパスワードはSecretsManagerから取得してきます。
生成されたhtmlファイルをS3にアップロードし、利用者はCloudFront経由でアクセスします。
雑に構成図にするとこんなかんじです。図には書いていませんがCloudFrontでOIDC認証を挟んでいて、参照できる開発者を制限しています。
これを日次で実行することで、自動的に常に最新のデータをドキュメントとして参照できるようになりました。
tbls sampleより引用
tbls sampleより引用

終わりに


自称DBREとして走り始めた1年で、少しずつではありますが成果が出てきたかなと思います。
来年も取り組みたいことがたくさんあるので、一歩ずつデータベースの信頼性向上や開発生産性の向上に取り組んでいきたいと思います!
 
SRG では一緒に働く仲間を募集しています。 ご興味ありましたらぜひこちらからご連絡ください。
 
このエントリーをはてなブックマークに追加