ビズリーチのDBRE/DBA Role
組織体制
株式会社ビズリーチには大小10以上のサービスが存在し、それらのサービスほぼすべてでMySQL、もしくはPostgreSQLのようなRelational Databaseを使用しています。
その中の代表的なサービスである即戦力人材と企業をつなぐ転職サイト「ビズリーチ」や人材活用クラウド「HRMOS」といった事業には専属のDBAが複数人存在しています。逆にその他の事業ではDBAという明確なRoleが存在せず、事業のエンジニアが(良く言えば)フルスタックにDatabase関連の作業をする、という体制になっています。
そうなると必然的に専属のDBAがいる部署といない部署でDatabaseそのものの運用方法や、管理の質に差が出てきてしまいます。また、属人化による弊害として、Databaseに強い人材が異動や退職でいなくなった場合に、残されたエンジニアの心の平穏が保てなくなってしまい、健康的にアプリケーション運用をしていくことが難しくなる、ということもあるかもしれません。
これらのよくある解決策としてはDatabase Administrationを中央集権の形にし、管理運用をそこで行う、という方法です。しかし(ビズリーチの場合)、アプリケーションそのもののソースコードや仕様と密結合しすぎているためDatabase Administratorとしての作業を中央集権で行うことは、現実的に難しい状況でした。また、限られたリソースでは事業の実現したいスピードに合わせられないケースが発生し、中央にいるDBAとアプリケーションエンジニアの間に無意味な壁ができてしまうことも考えられます。
そこで私たちはDBREとしてEngineeringという側面から各事業のDatabase Operationに関する手助けを行う、といった方向に舵を切ることを決断しました。
ビズリーチ流のDBRE
Database Reliability Engineeringはあくまでも概念であり役割ではありません。『Database Reliability Engineering』(O'Reilly Media)にも書かれていますが、これからのDatabase ProfessionalはAdministratorではなくEngineerであるべきである、という思想が根底にあります。
各事業のエンジニアの自律性を尊重し、その方々の活動を最大化させるために、Databaseの管理運用に対するMonitoring Policyを決めたり、Database Operation Platformを開発し提供したり、トラブルが発生した際などはトラブルシューティングを行い、現状復旧⇒根本原因⇒Postmotemなどのプロセスを経て正常な状態を維持したりすることなどが挙げられます。
私たちの場合は、まだこのチームができたばかりであり、理想だけを求めてDBREを実践していくにはまだまだ時間もリソースも経験も知識も足りないものばかりです。だからこそ、こうあるべき、ということに固執しすぎず、これから柔軟にビズリーチ流のDBREを進化させます。
DBREチームのビジョン
- Make it Visible
- No Ops, More Code
私たちのすべての活動はこの2つの上に成り立っています。
チームを発足する際に、事業のビジネス規模を見ながら、どのようにバリューを発揮するか、ということを何度も認識合わせを行いました。その上で事業に対してどういったバリューを提供したいか、を抽象化した言葉をビジョンとして設定しました。
これらの言葉は、チームが新しいことをする、となった場合のやる、やらないの判断、自分たちのアウトプットの指標としてこの2つに落とせるか、をしっかりと見つめ直させてくれるもので、大変重要なものです。
