Mercari Engineering Blog

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

Mercari Web DevOpsというチーム (DevTools編)

この記事は、 Mercari Bold Challenge Monthの10日目の記事です。

Mercari JP Web チームフロントエンドエンジニアの nekobato です。

JP Web チームでは、現在 Re-architecture のプロジェクトが進行中です。 先週実はトップページが新しいアーキテクチャに置き換わりました。

また、JP 全体で microservice 化も絶賛進行中であり、同時並行で microservice 化におけるインフラストラクチャの管理を JP Web チームで行っています。 今回は、JP Web チーム内で発足していた Web DevOps チームという小さなチームで行っていた取り組みをご紹介します。

Web DevOps チームとは

Mercari Web JP チームは歴史的には元フロントエンドチーム + α のチームです。 ですのでそのまま microservice に移行しつつ Re-architecture を行うとなると、持ちうる知見の少なさが障害となっていました。 インフラからフロントエンドまでの DevOps の仕組みを片手間で構築するにはラーニングコストが多すぎます。 新しいアーキテクチャによる機能開発とマイクロサービスの管理の構築を同時並行で進めるため、Web JP チームは内部に DevOps チームという小さなチームを作りました。 Web DevOps は、Re-architecture をリリース可能な状態に持っていくまで、専任で知識を吸収して DevOps が可能な環境を作るためのチームです。

ちなみに、Web DevOps チームは Web のファーストリリースが完了したため、めでたく先週解散しました。

Web DevOps チームによる環境構築

基本的に DevOps チームは SRE のようにチーム単体がメンテナンスを続けることを目的とはしておらず、JP Web チーム全体でメンテしていくことが最終目標です。 そのため、環境構築とルールの明文化、そしてメンテナンスのためのドキュメントはセットで作ることを心がけています。

今回はいくつかの例として、Pull Request に対して CircleCI で構築した自動化の例を挙げます。

続きを読む

ACLにおけるマイクロサービス開発の話

この記事は、 Mercari Bold Challenge Month の9日目の記事です。

はじめに

こんにちは。メルカリBackendでTech Leadをしている @kentanです。 私のいるTnSドメインチームでは現在、ACL(Access Control List)と呼ばれる機能のマイクロサービス化を進めております。

この記事ではどのようにACLのマイクロサービス化を進めていったのかを紹介していきたいと思います。

ACLとは

ACLとはAccess Control Listの略であり、一般的にユーザのリソースへのアクセス制御をするための機能です。メルカリでは不正な行為や規約に違反したユーザに対して購入や出品の制限をかけるために使用しています。利用規約に反する出品や行為をなくすことにより、安心・安全なサービスの提供に努めております。

続きを読む

写真検索の近傍探索ServiceをPythonからC++に置き換えた話

この記事は、Mercari Bold Challenge Month の 8 日目の記事です。

こんにちは。メルカリのAI EngineeringでSoftware Engineerをしている@wakanapoです。私は、2019年4月にメルカリに新卒入社して、6月にAI Engineering teamに配属されました。今回は、配属されてから私が最初に担当したタスク「写真検索の近傍探索Service実装のPythonからC++への置き換え」について紹介します。

写真検索システムについて

メルカリでは、今年の3月からiOSで写真検索の機能を提供しています。 about.mercari.com

続きを読む

CircleCI での Android プロジェクトのビルド設定と自動化の工夫

この記事は、Mercari Bold Challenge Month の 7 日目の記事です。

こんにちは。メルペイの Android チームでネット決済 (オンラインでの決済手段) の機能開発や開発基盤の改善に取り組んでいる @KeithYokoma です。

メルペイの Android チームでは CI (Continuous Integration) ツールとして Bitrise と CircleCI を使っています。それぞれを使い分けており、日々の開発フローの中でリポジトリに変更をプッシュする場面で CircleCI を、それ以外に開発に必要な成果物の生成 (たとえば API の定義から各言語用のライブラリを吐き出す) 場面で Bitrise を利用しています。

この記事では、Android プロジェクトのビルドにあたって CircleCI をどのように活用しているか、またどんな工夫をしているかを解説します。

続きを読む