人生シーケンスブレイク

シーケンスブレイクとは

Mercari Tech Conf 2018レポート

techconf.mercari.com に行ってきたメモを今更ながら。

概要

発表内容はスライドURLがあるので、以降は気になったポイントだけ箇条書きメモ。

Microservices Platform at Mercari

MTC2018 - Microservices Platform at Mercari - Speaker Deck

1年で79個にマイクロサービス化した話。

  • API gatewayを用意して、そこから各サービスにルーティング
  • マイクロサービス化する際には、application templeteを用意してカンタンに初期構築できるように
  • デプロイ周りは terraform
  • githubのcode owner機能を利用して、専門のレビューは最初だけ、各チームに任せられるようになったら、権限を与える
  • spinnaker というCDツールが便利

Mercari ML Platform

MTC2018 - Mercari ML Platform - Speaker Deck

SREだけどなぜかML Platformをやっている中河さんの話。

  • Metrics には Prometheus を利用
  • 実装は主にGo

  • なぜコンテナを使うのか

    • 再利用可能で
    • 共通の環境を構築できるので
  • でかいモデルをどうするか

    • メルカリではポータビリティを重視して、imageに含めてしまっている
      • -> 後で訊いたらケース・バイ・ケースとのこと。
    • MLモデルを lstio で A/Bテストしている
  • Katib

    • 多くのモデルが求められている
    • 画像認識で、メルカリで平均いくらで売れるのかをリアルタイムに出したりしてる

どうして僕らは決済処理をマイクロサービス化しようとしているのか

MTC2018 - Why Are We Trying to Turn Payment Processing Into a Microservice? - Speaker Deck

決済処理もマイクロサービス化することで、決済の属人性を廃止した話。

  • 疎結合, 保守性が目的
  • 決済処理に触れる人材は限定的で、スケールできないのが課題。それをマイクロサービス化することで解消させる

  • 疎結合な決済処理の課題と解決策

  • ステートマシン
  • 決済システムとの連携
  • 併行期間は現システムと新システムで併行書き込み

GO BOLD DAY

MTC2018 - GO BOLD DAY - Speaker Deck

USでもGo Boldで開発してるんだ。アメリカでも受け入れられているよ。という話

(英語頑張って聞き取ろうとしたけどだいぶ情報欠落してしまった...)

Learning to think like a Machine: How Machine Learning changes the way we solve problems

MTC2018 - Learning to think like a Machine: How Machine Learning changes the way that we solve problems - Speaker Deck

Software 2.0 の話。

Listing Service: モノリスからマイクロサービスへ

MTC2018 - Listing Service: From Monolith to Microservices - Speaker Deck

  • 時代はgRPC
  • 変更追跡用ブランチをつくって開発
    • goに移植しながら、移植した箇所を既存PHPリポジトリの変更追跡用ブランチからは削除していく
    • もし、変更追跡用ブランチとmasterブランチの間にコンフリクトが発生すれば、コードに変更があったことが検知できる。
  • PHPの例外との互換性を保つためのGoの共通ライブラリの開発
  • 正解がない中正しさを求める楽しさ

Customer Experience Improvement

MTC2018 - Customer Experience Improvement - Speaker Deck

  • ワード検索による監視とAIによる監視は共存
  • CSToolからはGraphQLで取得
    • GraphQLは、 Go + gqlgen で

Web Application as a Microservice

MTC2018 - Web Application as a Microservice - Speaker Deck

  • Renewal でなく Re-architect
  • まずは小さなチャレンジで失敗を積み重ねる

  • 移行対象の判断ポイント

  • Web Gatewayによるルーティング、制御

    • パス制御
    • 公開制御( 0 -> 100%, WIPらしい)
    • セッション制御(WIPらしい)
  • 1年で79個のマイクロサービス化。全部の仕様を把握するのは辛い

-> そこで、BFF(background for frontend)ってのを挟むようにした -> GraphQL には apollo ってのを使っている。俺らはJS好きだからGoでなくapollo

  • セッション同期問題
  • セッション管理を行うマイクロサービスを立てて解決

    • スライドの該当箇所の図を参照
  • SSR server <-> session service <-> monolicserver でセッション管理

  • 物理的の距離課題がある
    • キャッシュストレージを配置して対応

数十億規模のデータと機械学習で描く未来

MTC2018 - Leveraging billions of data items and machine learning to map the future - Speaker Deck

  • 感動出品やばい
  • ユーザーを感動させる為の仕組み

  • 感動出品v2がもっとやばい

  • バーコード読み取り機能があり、CD, DVD, 書籍などのマスタデータから補完してた
  • 表紙をバーコードに紐づけた
  • 表紙を取るだけで商品データが補完される

1人で↓の環境を1週間でつくったらしい。これがテックカンパニーだ!!!!! f:id:ShineSpark:20181127165733p:plain

メルカリにおける検索サービスの現在と未来

MTC2018 - Mercari's Search Service: Now and the Future - Speaker Deck

  • Query Rewriter : 動的クエリ調整 -> 重要
  • 名寄せ: タップ回数の多い順に

雑感

メルカリ  希代のスタートアップ、野心と焦りと挑戦の5年間

メルカリ 希代のスタートアップ、野心と焦りと挑戦の5年間