タグ

ブックマーク / tech.mercari.com (7)

  • 数百GBのデータをMySQLからBigQueryへ同期する | メルカリエンジニアリング

    SRE所属の @siroken3 です。最近はもっぱらパートナー会社様とのデータ連携環境構築を主に、時々プロダクションのMySQL環境と分析基盤との連携インフラの構築が多いです。 記事は、メルカリに出品された過去すべての商品をBigQueryへ同期するにあたって取り組んだ時のお話です。 背景 当社では分析目的などでBigQueryを以前から使用しており、プロダクションのMySQLからBigQueryへデータを同期して分析に活用してきました。特に商品を表すテーブルは重要です。 しかし、後述する課題によりBigQueryにアップロードすることができなかったため、分析用のMySQLDBのスレーブとBigQueryを併用せざるを得ませんでした。とはいえ不便なので以前からBigQueryのみで商品テーブルも分析対象としたい要望がありました。 課題 メルカリでは販売済み商品を物理削除していないため、

    数百GBのデータをMySQLからBigQueryへ同期する | メルカリエンジニアリング
  • メルカリ Microservices Team による Terraform 運用とその中で開発したOSSの紹介 | メルカリエンジニアリング

    SRE で Microservices を推進している @b4b4r07 です。 メルカリでは全社 (US/UK/JP) 的に Microservices に舵を切る経営指針が打ち出されており、Microservices Platform Team では Microservices として切り出すにふさわしいサービスの再編のサポートや、新規サービスの Microservices 化のサポート、およびそのスタンダードなインフラ基盤の開発などをしています。 記事ではその中で開発した Developer Productivity の向上につながる小さなツールを、メルカリでの Terraform の活用事例に交えてご紹介します。 メルカリでの Terraform 活用 冒頭に挙げたとおり、少しずついろいろなサービスが立ち上がり始めていますが、そのインフラとして主に GCP (GKE) が使われて

    メルカリ Microservices Team による Terraform 運用とその中で開発したOSSの紹介 | メルカリエンジニアリング
  • メルカリのデータ分析基盤の紹介〜BigQuery周辺の話〜 | メルカリエンジニアリング

    Mercari Advent Calendar 2017 の9日目はメルカリ SRE(Site Reliability Engineering) チームの @syu_cream がお送りします。 メルカリでは様々なデータを BigQuery に格納して、データ利用を可能にしています。 BigQuery に格納しているデータの具体例としては、 Web サーバや API サーバのアクセスログやアプリケーションのログ、 以前当ブログで紹介した Pascal のイベントログ などが挙げられます。 メルカリのデータ分析基盤に関する情報はこれまでに以下のようなブログやスライドで紹介しております。 Pascal〜Puree + ngx_lua + Fluentd + BigQueryでつくるメルカリのログ分析基盤〜 fluent-agent-hydraで省エネログ転送 メルカリのデータ分析基盤 / me

    メルカリのデータ分析基盤の紹介〜BigQuery周辺の話〜 | メルカリエンジニアリング
  • SpinnakerによるContinuous Delivery | メルカリエンジニアリング

    SREの@deeeetです。 新しい機能を素早くリリースしフィードバックを得てすぐにPivotの決定を行う、もしくはリスクを抑え小さな改善を継続的に行うContinuous Deliveryはソフトウェア開発において非常に重要です。 メルカリではこのContinuous DeliveryのためのPlatformにSpinnakerを採用し始めました。現在は主にkubernetes(k8s)へのコンテナアプリケーションのDeployに利用しており、既にいくつかの番アプリケーションがSpinnakerによりDeployされています。 記事ではなぜSpinnakerを採用したか、Spinnakerとは何か、実際にメルカリでどのようにSpinnakerを使っているか、について簡単な紹介をします。 kubernetes上でのDeploy問題 k8sへのコンテナイメージのDeployは非常に簡単で

    SpinnakerによるContinuous Delivery | メルカリエンジニアリング
  • ハイパフォーマンスngx_lua | メルカリエンジニアリング

    Site Reliability Engineering(SRE) Teamの@cubicdaiyaです。 今回は数あるnginxのサードパーティモジュールの中でも一際強力で、メルカリでも活用しているngx_luaの便利な活用方法や最適化集について紹介します。 ngx_luaは軽量スクリプト言語のLuaでnginxを拡張できるモジュールです。 nginxの設定ファイル内にLuaのコードを埋め込んだり、nginxの拡張モジュールをCではなくLuaで開発することができます。以下はngx_luaにおける「Hello, World!」です。 location / { content_by_lua 'ngx.say("Hello, World!")'; } 上記のロケーションにHTTPでアクセスするとnginxはボディが「Hello, World!」のレスポンスを返します。 なお、先月末にリリースさ

    ハイパフォーマンスngx_lua | メルカリエンジニアリング
  • Consulを利用したTLSセッションチケットの自動更新 | メルカリエンジニアリング

    Site Reliability Engineering Team(通称SRE)の@cubicdaiyaです。最近チーム名が変わりました。 今回はConsulを利用して複数台のnginxサーバのTLSセッションチケットを自動更新する仕組みについて紹介します。 TLSセッションチケットは簡単に言うとTLSのセッション情報を暗号化してクライアント側に保存することで HTTPS通信時に行われるTLSハンドシェイクの手順を省略してネットワークレイテンシを削減するための仕組みです。(詳細については一番下の参考情報を御覧ください) 似たような仕組みとしてTLSセッションキャッシュがありますが、こちらはセッション情報をサーバ側に保存します。 HTTPS通信ではTCPのハンドシェイクに加えてTLSのハンドシェイクが必要になるのでHTTP通信よりもネットワークのレイテンシが大きくなりますが、 これらの仕組み

    Consulを利用したTLSセッションチケットの自動更新 | メルカリエンジニアリング
  • Slackプロキシサーバ〜slackboard〜を利用したメルカリのSlack活用法 | メルカリエンジニアリング

    最近原稿の締め切りが追いかけてくる夢をよく見る@cubicdaiyaです。今回はその逃避の一環として定番のチャットツールであるSlackのメルカリでの活用法について紹介します。 メルカリでのSlack活用 多くのエンジニア組織がそうであるようにメルカリではSlackを単なる社内チャットに留まらず、所謂ChatOps的な用途にも活用しています。 たとえばメルカリではサーバの監視のためにZabbixを利用していますが、bot ack allとSlackで入力すると現在起きているすべての障害をAcknowledgedな状態にできます。 さらに、bot test masterとSlackで入力するとAPIサーバのテストが走ります。 さらにさらに、bot helloとSlackで入力すると自宅からでも出勤したことにできます。 なお、この時はうるう秒に備えて自宅で待機していたのでした。 ほかにもSla

    Slackプロキシサーバ〜slackboard〜を利用したメルカリのSlack活用法 | メルカリエンジニアリング
  • 1