Mercari Engineering Blog

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

メルペイにおける大規模バッチ処理

この記事は MERPAY TECH OPENNESS MONTH の 13日目の記事です。

こんにちは、メルペイ ソフトウェアエンジニアの laughngman7743 です。 メルペイではマイクロサービスにおけるデータストアのデータや、アプリケーションのログを有効活用できるような基盤づくりをデータプラットフォームチームとして行っています。

データプラットフォームではラムダアーキテクチャに基づき、スピードレイヤとして Cloud PubSub と Cloud Dataflow を利用した仕組みに加え、バッチレイヤとして Cloud Composer と Cloud Dataflow を利用した仕組みを構築しています。

この記事ではバッチレイヤのアーキテクチャについてご紹介します。
スピードレイヤのアーキテクチャについては 「GCPでStreamなデータパイプライン始めました」 を参照ください。

続きを読む

WebAuthnことはじめ

  こんにちは。株式会社メルペイのID Platformチームでエンジニアをしている @nerocrux です。この記事はMERPAY TECH OPENNESS MONTHの12日目の記事です。

  • はじめに
  • WebAuthnについて
    • 概要
    • システム構成
    • 登録と認証
  • 登録
  • 認証
  • Attestation について
    • Attestation検証の概要
    • AttestationObject のフォーマット
    • AttestationObject の検証
      • 1. AttestationObject のデコード
      • 2. authenticatorData について
      • 3. credentialPublicKey のパース
      • 4. verificationData の準備
      • 5. 証明書フォーマットの変換
      • 6. 署名検証
  • Assertion について
    • Assertion の検証
      • 1. authenticatorData について
      • 2. verificationData の準備
      • 3. 公開鍵の取得と署名検証
  • 実装ヒント
    • CBOR の取扱
    • WebAuthnのライブラリ
  • まとめ

はじめに

  人類は20年以上前からパスワードと戦ってきました。子供の誕生日をパスワードとして使うのをやめて乱数生成器に生成させたり、ノートにパスワードを書き込むのをやめて、1passwordを使ったりして進化してきました。そして最近ようやくパスワード自体が問題の根源だと理解し、パスワードを使わない認証技術に手を付けた。パスワードの代わりに、指紋・虹彩などの生体特徴や、セキュリティチップが組み込まれたUSBキー、Android携帯などの端末を利用して認証できる仕組みと、それを利用するWebサービスが増えてきました。

  このような仕組みを取りまとめ、標準化するのを目指して、2013年に標準化団体FIDO Alliance (Fast IDentity Online) が結成されました。

  WebAuthn (Web Authentication API の略)はFIDO Allianceが発表した標準仕様FIDO2の一部として策定され、ブラウザ経由でパスワードレス認証を可能にする仕組です。この仕組は、2019年3月にW3Cの標準化勧告にされていて、注目を集めています。各メジャーなブラウザもすでにWebAuthnをサポートしており、開発者にとって実装環境が整っています。

  メルカリでは常にこういった新しい技術に対するキャッチアップを行っており、技術検証(あとは単純に筆者の趣味)の文脈で、Go言語でWebAuthnの認証サーバを作ってみました。

  本記事では、WebAuthnの仕組みと実装を紹介したいと思います。

続きを読む

styled-componentsによる抽象コンポーネント作成のすゝめ

この記事は MERPAY TECH OPENNESS MONTH の 11 日目の記事です。

こんにちは、メルペイのフロントエンドエンジニアの @sawa-zen です。本記事では React ベースのプロジェクトでのコンポーネント作成をちょっと楽するテクニックをご紹介します。

続きを読む

Mercari Meetup for Microservices Platform #2 を開催しました

Microservices Platform Team の @masartz です。

昨年に引き続き、Mercari Meetup for Microservices Platform #2 を先週5月22日に開催しました。
ちなみに昨年版の記事はこちらです、合わせてご確認ください。

f:id:masartz:20190522203646j:plain

第1回から約1年ぶりとなりますが、その間にメルカリグループではC2Cアプリ「メルカリ」におけるMicroservices移行、決済サービス「メルペイ」のリリースなどが行われており、Microservices Platform Teamはその両方を支える基盤を構築しながらグループを横断した取り組みをしてきました。自分たちの成果を広げつつ、組織を拡大させることを目的としています。
そのような背景の中で、チームとしてどのようなアウトプット・アプローチをしてきたか、またPlatformを使う側の立場であるメルペイエンジニアの視点も交えて、我々の成果を振り返る内容となりました。以降に、当日の発表内容を簡単にご紹介します。

続きを読む