いよいよ12月ですね。街中のクリスマスムードも一気に加速するんでしょうか。イルミネーション見るのも寒いのも好きなので、一年で一番楽しみな季節です。
勉強会・忘年会の予定がすでにいくつか入っているので、師走の文字通り忙しくなりそうです。ひとまず Go の勉強会でブログ担当をすることになっているので、Go 関連の記事をたまに読んでいます。
Microservices実装ガイド in Go at Mercari
メルカリの @yagi5 さんが、GoConference2018 Autumnで発表された資料です。
PHP のモノリシック API からマイクロサービスへ移行したということで、どのようにマイクロサービスで開発しているかが紹介されています。大元の定義ファイル(.proto) を GitHub にプッシュすると CI が動いて、各開発者はそれぞれの言語で自由に実装できるようです。
まだ使ったことがないのですが、通信に関するシリアライズ・デシリアライズの部分がすでに各言語ごとに提供されているのがとても良さそうです。REST API で別のサービスにリクエストするときに適切なフォーマットをドキュメントなどで確認しながら探り探り作っているので、その労力が無くなるのは嬉しい。。
個人的には、そもそも大元の定義ファイルをどうやって決めているのかも気になります。API のバージョン差なんかも吸収できるんだろうか。
3年で5パターンの分析基盤を作ってみた
「作ってみた」とありますが、これだけのサービスの構築経験があるのは凄いです。少し前の記事なのですが、Redshift, Hive, Spark, MySQL から最後は BigQuery に辿り着いています。データがそこまで多くなさそうなので、移設しやすいなどの理由もあったかもしれません。