Microservices の裏で動く Microservices を Go で開発している話 : Mercari Advent Calendar 2018 の 25 日目はメルカリ JP の Microservices Development Team の @codehex がお送りします。 これまで私達は Microservices を開発している旨を様々なテックイベントやカンファレンスで話してきました。中でも Mercari Tech Conf 2018 で Monolith なアプリケーションから Microservices へ移行するために、私達がどうしているかという話が目立っていたと思います。 そのうちの一つである Listing Service という出品機能の Microservice の話がありました。 資料の内容をまだ知らない方のために、本記事を理解するために補足します。 メルカリでは Microservices を基本的に Google Cloud Platform (以下、GCP と表記する) 上で作成する 現在は Monolith が持つエンドポイント単位を Microservices へ移行している(1 : N = エンドポイント : Microservices) メルカリが保持するデータは、基本的に さくらインターネット株式会社 が提供するデータセンター(以下、さくらと表記する)へデプロイしている MySQL に保存される 本記事では上記の資料で少しだけ登場した、さくら上にある Microservices の一つである Item Service を開発する際に得た知見について記述します。Listing Service から商品情報を登録する際に呼び出される Create を例にとって説明するので Go のコードもチラ見せします。 なぜ環境が分かれるのか メルカリではこれまでに 10 億品以上の出品 が行われました。 出品される各商品には沢山の付加情報(商品の説明、カテゴリ、ブランド、誰が出品したのか、etc...)もついてきます。データベースの増え続けるディスク容量への対策のために、下記のリンク先のような DB を分割する方法も採られてきました。 tech.mercari.com これらの大規模な情報量をさ...