タグ

ブックマーク / engineering.mercari.com (33)

  • サーバサイドWebアプリケーションエンジニアにとって必携の一冊。「nginx実践入門」が発売されます | メルカリエンジニアリング

    SRE(Site Reliability Engineering)チームの@kazeburoです。 1/16(土)にSREチームの久保(@cubicdaiya)が執筆に参加した「nginx実践入門」が技術評論社から発売されるので、紹介します。 gihyo.jp 電子版も同時に発売されます。こちらもどうぞ gihyo.jp メルカリとnginx このブログでもnginxの利用方法を何度も紹介していますが、メルカリではTLSのターミネーション、リバースプロキシや内部で使用する各種ミドルウェアのロードバランサーなどとしてnginxを利用しています。さらに、軽量スクリプト言語であるluaでnginxを拡張するngx_luaを活用してログ解析基盤を構築したり、ロードバランサーの動作をカスタマイズして一部ミドルウェアのレスポンス速度の向上を実現しています。nginxがメルカリのスケーラビリティを支えて

    サーバサイドWebアプリケーションエンジニアにとって必携の一冊。「nginx実践入門」が発売されます | メルカリエンジニアリング
  • fluent-agent-hydraで省エネログ転送 - Mercari Engineering Blog

    Site Reliability Engineering Teamの@cubicdaiyaです。 今回はGo製のログ転送エージェントであるfluent-agent-hydraとメルカリでの利用事例について紹介します。 メルカリとFluentd メルカリではAPIサーバのアクセスログやアプリケーション固有のログをはじめとする各サーバに散らばっているログデータを転送・集約するのにFluentdを活用しています。 具体的にはローカルに書き込まれるログファイルのin_tailやそれらを転送するための(out|in)_forward、ElasticsearchやBigQueryにログを放り込むためのプラグインを利用しているほか、いくつか特殊な用途のプラグインを独自に開発して運用してたりもします。 ログの流量とFluentdのパフォーマンス 多機能で柔軟なプラグイン機構を持つ便利なFluentdですが

    fluent-agent-hydraで省エネログ転送 - Mercari Engineering Blog
    cubicdaiya
    cubicdaiya 2015/12/15
    書きました
  • PHP BLT #1を開催しました。 #phpblt | メルカリエンジニアリング

    サーバサイドエンジニアの@yui_tangです。 先日、メルカリオフィスにて PHP BLT #1を開催しました。 全員がLTで発表するというコンセプトのPHP周辺/Web/サーバサイド全般の勉強会 というコンセプトを打ち出した初回開催、どの程度応募が来るのか不安もありましたが。 しかし、イベント公開直後にはLT発表枠が最初に埋まるという驚きの結果に!! 皆さん、LTに飢えているんですね。 会場 さて、会場はメルカリオフィスに隣接した、現在はまだ使用していない増床予定のお部屋。 昼間はこんな素敵な景色。 美味しいクラフトビール🍺とべ物🍔も大量にご用意しました。 発表内容 今回、参加者の枠に”ブログまとめ枠”というものをご用意しました。 発表の詳細はこちらのブログをご参照下さい。 fortkle.hatenablog.com tomo358.hatenablog.com “自作Arra

    PHP BLT #1を開催しました。 #phpblt | メルカリエンジニアリング
  • インフラチーム改め Site Reliability Engineering (SRE) チームになりました | メルカリエンジニアリング

    インフラチーム改めSite Reliability Engineering チームの @kazeburo です。この記事ではまだ馴染みの薄い Site Reliability Engineer とは何かについて紹介したいと思います。 SREとGoogleのSRE Site Reliability Engineerは日語にすると「サイト信頼性エンジニア」となりますが、あまりキャッチーではないので普段は略語の「SRE」を使用しています。SREという職種は日ではあまり聞く事はありませんが、FacebookやAirbnb、Dropboxなどの企業でSREが募集され、それぞれのサービスを支える重要な役割を担っていると思われます。中でもSREのパイオニアとしてGoogleのSREチームが有名です。 GoogleのSREチームはGoogleの検索、広告、Gmail、YouTube、App Engin

    インフラチーム改め Site Reliability Engineering (SRE) チームになりました | メルカリエンジニアリング
  • 大人のスタートアップは大人のリリースができる。そう、ChatOpsならね。 | メルカリエンジニアリング

    このブログをご覧のみなさま初めまして。@siroken3です。メルカリではインフラチームに所属しており、リリースの仕組み構築を担当しています。 メルカリのリリースについて メルカリではカスタマーサポートから受け取る改善要望、プロダクトとしてまだやれてないことなど多くのタスクがあり現在も継続して開発とリリースが行われています。 Issue管理はRedmine、ソースコードのリポジトリはGitHub privateを使用しています。Pull Request(以下PR)でのコードレビューを実施、masterブランチへマージされたものをリリースするのが基的なフローです。 一方、1年前まではリリース頻度は週1回のリリース日を決めて実施していましたが、この1年で大きく変わりました。現在では日版とUS版を合わせて10回〜30回/日の頻度でリリースしています。この記事では大きく変わったメルカリのリリー

    大人のスタートアップは大人のリリースができる。そう、ChatOpsならね。 | メルカリエンジニアリング
  • PHPカンファレンス2015 で会いましょう!! #phpcon2015 | メルカリエンジニアリング

    こんにちは @sotarok です。 今週末 10/3(土) は、PHPカンファレンス2015 です。 PHPカンファレンスは年に1度開催される、日最大のPHPの祭典です。 今年のテーマは、まもなくリリースされる (11年ぶりのメジャーバージョンアップ!) の PHP 7 にちなんで “7”。PHP 生みの親 Rasmus Lerdorf を招待したり、海外からも発表者を募るなど、実行委員もみんな気合が入っていますね。(おつかれさまです) 参加登録者は2000名を超えてすでにオーバーしていますが、まだの方はまぁとりあえず登録すると良いと思います。 というわけで、メルカリからも2名のエンジニアが発表で採択されましたので、今日はそれを紹介したいと思います。 フリマアプリ「メルカリ」の急成長を支えるエンジニアリング by @cubicdaiya フリマアプリ「メルカリ」は2013年7月に日

    PHPカンファレンス2015 で会いましょう!! #phpcon2015 | メルカリエンジニアリング
  • Pascal〜Puree + ngx_lua + Fluentd + BigQueryでつくるメルカリのログ分析基盤〜

    Pascal〜Puree + ngx_lua + Fluentd + BigQueryでつくるメルカリのログ分析基盤〜 Backend Author: cubicdaiya エンジニアではなくプログラマと呼ばれたい@cubicdaiyaです。今回はメルカリのログ分析基盤のお話です。 メルカリにおけるログデータ分析 メルカリでは初期の頃からログデータの分析をサービスの成長にとって重要なタスクとして位置づけ、そのための基盤作りに取り組んできました。ログの種類はいくつかありますが、中でも代表的なのがアプリケーションサーバで出力されるアクセスログやアプリケーション固有のログです。これらのログはサイズが大きいので効率良くログデータを転送するための工夫が必要になります。そこで活躍するのがFluentdです。 大雑把に説明するとアプリケーションサーバで出力されたログはFluentdから最終的にBigQu

    Pascal〜Puree + ngx_lua + Fluentd + BigQueryでつくるメルカリのログ分析基盤〜
  • nginx-build〜nginxのビルドプロセスを自動化〜 | メルカリエンジニアリング

    インフラチームの@cubicdaiyaです。今回はnginxのビルドプロセスを自動化するツールであるnginx-buildについて紹介します。 メルカリとnginx メルカリでは多数のnginxを活用し、高速なレスポンスやサービスの安定稼働を実現するのに重要な役割を果たしています。実際の活用事例には、 リバースプロキシ、L7ロードバランサ TLSターミネーション、SPDYゲートウェイ 静的コンテンツの配信、キャッシュ ngx_dynamic_upstreamを用いたゼロダウンタイムデプロイメント ngx_lua(OpenResty)を用いたサービスコンポーネントの開発 などが挙げられます。そしてメルカリではこれら多数の用途のnginxnginx-buildでソースコードからビルドしています。(OpenResty以外は合わせてrpm化も行っています) 既存のビルド済みパッケージの利用とソー

    nginx-build〜nginxのビルドプロセスを自動化〜 | メルカリエンジニアリング
    cubicdaiya
    cubicdaiya 2015/08/26
    書きました
  • WEB+DB PRESS Vol.88 にメルカリのデータベース設計の記事を書きました | メルカリエンジニアリング

    2015年8月22日発売のWEB+DB PRESS Vol.88 にメルカリのデータベース設計、運用に関する特集記事をインフラチームの@cubicdaiya、@siroken3、@kazeburoの3人で書かせて頂きました。 gihyo.jp 特集のタイトルは「実戦データベース設計 サービスの急拡大に耐えるスケール戦術」です。メルカリでは、これまでサービスの急激な成長に伴い、何度もデータベースのスケールアップ・スケールアウトを行ったり、NoSQLの導入をして増え続ける負荷とデータに対応してきました。 この特集では、まず、これまでの大規模なWebサービスが直面したデータベースのスケーラビリティの問題とその対応方法を4つの期に分けて紹介します。続く2章、3章ではメルカリでのテーブル設計の工夫や、実際の運用で起きていたデータ領域の不足問題にどのように対処していったのか説明します。4章では視点を変

    WEB+DB PRESS Vol.88 にメルカリのデータベース設計の記事を書きました | メルカリエンジニアリング
  • YAPC::Asia Tokyo 2015 で会いましょう!! | メルカリエンジニアリング

    こんにちは! メルカリでインフラを担当しております @kazeburo です。 YAPC::Asia Tokyo 2015 の開催まで1週間とちょっととなりました。メルカリからは私も含め2名が登壇しますので、このエントリーでセッションの紹介をさせてください。 実践nginxモジュール開発〜CとLua〜 by @cubicdaiya nginxはOSSのHTTPサーバで、その高いパフォーマンスから大規模なWebサービスほどnginxの利用している割合が大きくなっています。メルカリではリバースプロキシやロードバランサとして多数のnginxを活用し、高速なレスポンスやサービスの安定稼働を実現する重要な役割を果たしています。 このセッションではnginxの機能を拡張するモジュールの開発ノウハウを、発表者がこれまで開発またはコントリビュートしてきたngx_small_light、ngx_dynami

    YAPC::Asia Tokyo 2015 で会いましょう!! | メルカリエンジニアリング
    cubicdaiya
    cubicdaiya 2015/08/12
    スライド作らないと(・_・)
  • nginxとGoでつくるメルカリのプッシュ通知システム | メルカリエンジニアリング

    原稿の締め切りを越えた先にあるもの、それは校正です。「俺達の戦いはこれからだ!」的な展開に胸が熱く・・・いえ、ちょっと胃のあたりがチクチクする@cubicdaiyaです。 今回はメルカリのプッシュ通知システムとその変遷について紹介します。 メルカリとプッシュ通知 メルカリではアプリ内でのさまざまなイベントの発生時に対象ユーザに対してプッシュ通知を行うようになっています。アプリ内で発生するイベントというのは例えば、 商品の購入 購入した商品の発送 商品に対するいいね!、コメント といったものです。通常アプリ内でイベントが発生した際はAPIサーバにHTTPSリクエストを発行し、MySQLデータベースへの参照・更新が行われた後ユーザにレスポンスを返します。そして必要であればプッシュ通知を行います。 メルカリのプッシュ通知システムの課題と変遷 メルカリのプッシュ通知システムはこの1年間で2度刷新さ

    nginxとGoでつくるメルカリのプッシュ通知システム | メルカリエンジニアリング
  • cachectld〜無駄なページキャッシュの削除を自動化〜 | メルカリエンジニアリング

    原稿の執筆が一段落して心に余裕が出てきた@cubicdaiyaです。 今回はサーバを運用しているとありがちなページキャッシュに関する問題とメルカリのアプローチについて解説します。 Fluentdによるログ転送 話は変わりますが、メルカリの各サーバ上ではプログラムが吐いたログデータをKibanaやNorikraといった各種コンポーネントに転送するためにFluentdが稼働しています。各ログデータは原則単一のファイルに追記されてFluentdのtailプラグインによって各所に転送されていきます。 ログデータのサイズはまちまちで、1日で数GB程度のログデータもあれば数十GB以上のログデータもあります。 ページキャッシュと巨大なログファイル 各サーバに吐かれるログデータのサイズはサーバに搭載されているメモリのサイズと比べると1日分だけでもかなりの量になります。そして、このように絶えず書き込まれる巨

    cachectld〜無駄なページキャッシュの削除を自動化〜 | メルカリエンジニアリング
  • メルカリの「エンジニアブログ」はじめました | メルカリエンジニアリング

    はじめまして。1エントリ目を書くことになった id:sotarok です。光栄です。 メルカリは、2013年7月にリリースされて現在急成長中のフリマアプリで、今週2周年を迎えます。 ダウンロード数1500万ということで多くのユーザーに利用していただいていて、サービスとしても会社としても大きくなる中で、日々多くの技術的課題への挑戦が行われています。 そうした内容を、今日からこの “Mercari Engineering Blog” で、あれやこれや発信していきたいと思っています。 さて、1発目のご挨拶エントリーということで特段大きなネタは用意していないのですが、、 これまでのメルカリではエンジニアブログをやっていなかったため、技術的なアウトプットは各人がそれぞれやっていました。そこで、ここ2年のメルカリエンジニアメンバーによる技術的なアウトプットをまとめてみました! インフラからクライアント

    メルカリの「エンジニアブログ」はじめました | メルカリエンジニアリング