tshohe's memo

おぼえたことをかく

Mercari meetup for SRE のメモ

メルカリさんが開催しているSREイベントに参加したのでそのメモ。

mercari.connpass.com

発表

オープニング&SREチームのご紹介 by @masartz

  • 2015/11から発足
  • Application ~ Infrastructureまで見る
  • 全員で16人。内訳は下記の通り。
    • ML Platform * 1
    • Microservice * 5
    • Reliability, Scalability * 9 ★今日はココ
    • Engineering Manager * 1
  • 朝の監視は当番制
    • 打刻から出社確認
  • 朝会はSlackで実施。スレッドにずらっとやること書いていく。
  • ITSはJIRA
    • Slackから「add todo (.*)」というメッセージで起票できるようにしている。
  • ポストモーテム残す文化あり
    • 批判しない、原因特定に集中
    • 障害報告や再発防止策の振り返りは全員参加

Traffic Optimization by @cubicdaiya

  • API通信に関する話
  • コンテンツ配信ではakamai, fastlyといったCDNを利用
  • モバイルは通信速度遅いのを前提とする。WiFiは前提にしない。
  • アプリのデータ通信量は極力減らし低速でもストレスが貯まらないように作る
  • JSONgzip圧縮
  • レイテンシのほうが圧縮オーバヘッドより圧倒的に高いらしい。
    • コストもネットワークのほうがCPUよりも高くつく

構成

API Gateway --gRPC--> 各種Service --JSON over HTTPS--> Sakura(旧API)
  • nginxはgzipのデフォルト圧縮レベルが低い2(apacheは6)
    • メルカリは6指定
  • マスターデータのJSONのサイズが大きい

    • 基本はgzip
    • zopfliはgzipの最高レベルより圧縮率が高いが処理時間が長すぎ
    • brotliも高圧縮率だが、CPUコストが大きく対応プラットフォームが限られており使っていない
  • アクセス数等は10ヶ月で1.5倍くらいのペースだけど帯域幅は変化なし

    • --> akamai <--> imageFlux(画像変換) <--> s3
    • imageFluxによるリサイズ/WebP化が効果的(半分くらいになるものも)
    • 変換はオンザフライ、リサイズのCPUコストは無視できるレベル
    • iOSはWebP非サポート、Android5+なら使える
  • "ネットワークはCPUより高い"

Expanding World of Data @kazeburo

  • DCが石狩にある(Sakura Internet)
  • GCP東京リージョンとのレスポンスタイムは205ms
  • DatabaseはMySQLを利用中
    • 現在はMySQL5.6~5.7を利用
    • 出品数が10億個超えたのでitemテーブルも10億レコード
    • 400,000 qps
    • outbound 14Gbps
  • 東京DCMySQLのマネージドサービスを提供検討中
    • 3台構成クラスタ(Galera Clusterとか検討中)
    • innodb clusterは来年から(FBが使い始めたら...)
  • データベース運用
    • DBクラスタはサービスごとに分ける。小さいものはCloud SQL
    • ストレージは6.4TB
    • 1U4TBのが出るらしいのでストレージはしばらく耐えられそう?(メモリが高いから辛いとか)
    • RAID0