300人から1000人へ――メルカリは開発組織を拡大するために「マイクロサービスアーキテクチャ」を採用した(後編)Mercari Tech Conf 2018(2/4 ページ)

» 2018年10月12日 08時00分 公開
[新野淳一Publickey]

開発者が自分たちでインフラのプロビジョニングができるように

 このワークフローで問題になるのは、マイクロサービスプラットフォームチームによるレビューの部分です。Terraformのコードを保守していくためにレビューは必須なのですが、マイクロサービスが増えれば増えるほど、レビューがボトルネックになってスピードが失われてしまいます。

 この問題を解決するために、GitHubのCODEOWNERSという機能を使います。これを使うとリポジトリの特定のディレクトリにコードオーナーを指定できます。コードオーナーはプルリクエストのアプルーブやマージができます。

 CODEOWNERSを使ってGitHubの各サービスの専用ディレクトリに、各サービスのチームメンバーをコードオーナーとしてアサインします。すると、自分たちのサービスに関するプルリクエストについては、自分たちでアプルーブしてマージできるわけです。

 つまり、マイクロサービスプラットフォームチームのレビューを何度か受け、自分たちでTerraformのコードを書く自信が付いたら、彼ら自身でレビューを行うことでペースを上げればいいし、不安があるチームはわれわれのレビューを受けて、書き方を覚えてもらうという形になっています。

 この仕組みはとてもうまく回っていて、今ではこのリポジトリに110人ものコントリビュータがいます。どういうことかというと、100人以上の開発者が自分たちでインフラのプロビジョニングをしているということです。

 1年前、インフラの管理ができるのはSREの10人ほどしかいませんでした。そこから10倍以上の成長です。この変化は、マイクロサービスプラットフォームチームがもたらした大きな結果だといえるでしょう。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ