techconf.mercari.com に行ってきたメモを今更ながら。
概要
- 概要
- アプリ(Flutter製)
- アプリソースコード
- スライド
発表内容はスライド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テストしている
- メルカリではポータビリティを重視して、imageに含めてしまっている
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
Software 2.0 の話。
Listing Service: モノリスからマイクロサービスへ
MTC2018 - Listing Service: From Monolith to Microservices - Speaker Deck
- 時代はgRPC
- 変更追跡用ブランチをつくって開発
- 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週間でつくったらしい。これがテックカンパニーだ!!!!!
メルカリにおける検索サービスの現在と未来
MTC2018 - Mercari's Search Service: Now and the Future - Speaker Deck
- Query Rewriter : 動的クエリ調整 -> 重要
- 名寄せ: タップ回数の多い順に
雑感
- 今年はマイクロサービス化とMachine Learningが中心
- GCPでK8S。Golang。
- 量子アニーリングとかもやってた。 量子アニーリングの記事|mercari R4D
- 次は Software 2.0 (分岐処理などを人間がコードを書いて実装する形から、データを喰わせてMLモデルを作って実装する世界)が来るから備えときましょう。 Software 2.0 – Andrej Karpathy – Medium
- ただ今までのプログラミングに代わるものではないですよ。
- Google I/OとかWWDCとかそういうの目指すと話してた。
- 俺たちがテックカンパニーだ!!って感じがしたし、実際そう感じた。凄い。
- 作者: 奥平和行
- 出版社/メーカー: 日経BP社
- 発売日: 2018/11/22
- メディア: 単行本
- この商品を含むブログを見る