Mercari Engineering Blog

We're the software engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

GCPでStreamなデータパイプライン始めました

こんにちは、はじめまして。メルカリでデータエンジニアをしている、しゅう (@shoe116)です。Mercari Advent Calendar 2018の3日目を担当することになりました。

メルカリではデータの活用が盛んな一方で、実はデータ処理を専門にやるエンジニアが最近まで存在しておらず、そんなこんなで僕がSREチームにデータエンジニア第1号としてjoinしました(実はこのあたりはメルペイのが少し先んじていて、あっちにはすでにデータプラットフォームチームがあって、僕は今彼らと一緒に並んでコードを書いている)。今日は僕らがGoogle Cloud Platform(以下GCP)に作っている、メルカリ(とメルペイ)の新しいログ収集基盤について簡単に紹介しようと思います。

続きを読む

Microservicesにジョインするには知らない技術が多すぎたので一通り触ってみた話

Mercari Advent Calendar 2018 の2日目はCrossUXチームの@mkazutaka(twitterは@makazutaka)がお送りします

昨日のアドベントカレンダーに@stanakaさんが取り上げているようにメルカリではMicroservices化に向けて開発が進んでおります。その流れに乗るように前QまでPHPを使って開発していた自分も今QからMicroservicesで実現されているサービスでの開発を行っております

tech.mercari.com

メルカリではMicroservicesの実現にあたってGoogleCloudPlatform(GCP)、Terraform、Docker、Kubernetes、Halyard、gRPC、Goといったさまざまなサービスからフレームワーク、言語を利用しています

メルカリでのMicroservices上での開発をする以上、これらに対して多少なりとも理解が必要です

本記事ではメルカリでのMicroservices上で使われてるサービスを理解するため自分が行ったTerraformによるGCPプロジェクトの構築からSpinnakerによる自動デプロイまでの方法を紹介します

履歴

12/03 [追記]ServiceAccountをTerraformで作成する修正及びSpinnaker欄を追加しました

続きを読む

エンジニアリングマネージャーとソフトウェア設計者に共通するスキルを考えてみた

@hidenorigotoです。現在はメルカリJPのBackendチーム全体のマネジメントをしています。以前のキャリアではマネジメントもやっていましたが、どちらかと言えば1人のエンジニアとして、ソフトウェアの設計と数多く向き合ってきました。その過程で、良い設計を生み出す設計者は、どのようなスキルを持っているものなのかと疑問を持ち、アレコレ考えることがありました。
今、メルカリでマネージャーとして仕事をする中で、この疑問は次のように形を変えました。

「マネジメントが上手いマネージャーはどのようなスキルをもっているのだろうか。」

そして、私の中で1つの仮説が浮かびあがってきました。それは、「良いソフトウェア設計者」と、「良いエンジニアリングマネージャー」には、仕事をより良く遂行するためのコアなスキルとして共通する部分がある、というものです。

続きを読む

マイクロサービスチーム編成のベストプラクティスとメルカリでの構想

今年もMercari Advent Calendar 2018 が始まりました。初日は @stanaka がお送りします。

メルカリでは創業以来開発してきたPHPのアプリケーションから(主に)Goで実装されたマイクロサービスアーキテクチャへの移行を進めています。これまでにMercari Tech Conferenceやその他のカンファレンスでMicroservice化の意義、移行の方法、基盤となるMicroservice Platformの概要などについて様々な発表をしてきました。

現在、来年からの本格的なマイクロサービスアーキテクチャでの開発に向けて、これまでのサービスの施策ドリブンのチーム編成から、マイクロサービスを軸としたチーム編成に移行しようとしています。 しかし、マイクロサービスアーキテクチャを成功させるためには、各種プラットフォームの機能を揃え、それらを利用したマイクロサービスを開発するだけでは不十分で、マイクロサービスアーキテクチャに適したチーム編成とカルチャーもセットで導入する必要があります。

有名なコンウェイの法則「組織はアーキテクチャに従う」でも知られているように、アーキテクチャと組織の関係は不可分で、片方を刷新するなら、もう片方も合わせて刷新する必要があります。望むアーキテクチャを促進するためにチームや組織を積極的に変えていく手法は、逆コンウェイの法則とも呼ばれます。

世のベストプラクティス

マイクロサービスアーキテクチャでのチーム編成は、AmazonやNetflix、Spotifyなどの事例が公開されています。それぞれをざっと見ていきましょう。(注: 外部に公開された資料から読み解いていますので、実態と違う、最新の状況は違う、部署によって違う、という可能性はあります)

続きを読む