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

  • 僕たちはどうマイクロサービスのログを収集するのか | メルカリエンジニアリング

    Mercari Advent Calendar 2018 の14日目はメルペイ DataPlatform チームの @syu_cream がお送りします。 記事では表題の通り、メルカリとメルペイにおける、マイクロサービスのログ収集に関する課題と取り組みについて記載します。 メルカリとメルペイでは、現在クライアントアプリやサーバサイドのログを効率的に収集してサービスの他機能で活用するための基盤の開発を共同で行っています。 メルカリ・メルペイ間では、一部提供するサービスの差異やデータ管理のポリシーの都合によりインフラ構成が異なる部分はありますが、少なくとも思想や設計、実装は共有しています。 これの具体的な内容については、今回の Advent Calendar の 3 日目の記事に掲載しています。 記事では、サービスを提供するサーバサイドアプリケーションから、この構成図における “A Ser

    僕たちはどうマイクロサービスのログを収集するのか | メルカリエンジニアリング
    masa-wo
    masa-wo 2018/12/15
  • Backend Team Offsite 〜負債解消day〜 を実施しました | メルカリエンジニアリング

    こんにちは!メルカリでBackendのエンジニアリングマネージャをしている @bravewoodです。 今日はBackendチームのオフサイトをご紹介します。 サービス開発の課題 メルカリは2013年7月にサービスを開始して以来、5年以上の月日が経過しています。 メルカリのAPI単位で見ると、開発はサービス開始より約3ヶ月前の2013年4月に始まっていることがGitリポジトリへのコミットで確認できます。 $ git log --reverse <省略> Date: Sat Apr 6 16:46:32 2013 +0900 現在でもこのリポジトリはメルカリのAPIとして現役で開発が行われており、5年5ヶ月にも渡る開発結果が凝縮された巨大なリポジトリとなっています。 このリポジトリがメルカリというサービスを支え、ここまで成長させてきたことは疑いの無い事実です。しかしここまでに急速なサービス拡

    Backend Team Offsite 〜負債解消day〜 を実施しました | メルカリエンジニアリング
    masa-wo
    masa-wo 2018/09/07
  • フロントエンドチームのCircleCI設定を紹介します | メルカリエンジニアリング

    フロントエンドチームのSET(Software Engineer in Test)の @urahiroshi です。 メルカリのフロントエンドチームは、JavaScriptを中心とした技術を用いてメルカリのWebサイトやアプリ内WebViewの開発を行っています。 私はチーム内のSETとして、開発環境の構築やトラブルシューティング、CI・運用ツールの導入やビルド・デプロイ処理の修正などを主に行っているのですが、今回は私たちが利用しているCircleCIの設定についてご紹介したいと思います。 CircleCIでは以下のようなタスクを実行しています。 Lint ユニットテスト ビルド・デプロイ Storybookのデプロイ npmパッケージのpublish 脆弱性検知 各タスクの詳細について、順に記述していきます。 1. Lint コードに対してLintツールを走らせます。 最近のプロジェクト

    フロントエンドチームのCircleCI設定を紹介します | メルカリエンジニアリング
    masa-wo
    masa-wo 2018/08/22
  • Go Fridayこぼれ話:非公開(unexported)な機能を使ったテスト #golang | メルカリエンジニアリング

    はじめに メルペイ エキスパートチームのtenntennです。 メルカリグループでは、毎週金曜日にGo Fridayという社内勉強会を開催しています。 毎週やっているとそれなりに知見が溜まってくるので、定期的に”こぼれ話”としてブログを書こうという話になりました。 今回の記事では、先日のGo Fridayで話題にあがった非公開な機能を使ったテストについて扱いたいと思います。 なお、Goにおけるテストの手法やテストしやすいコードの書き方については、GopherCon 2017でも発表があったmitchellhさんの”Advanced Testing with Go”(スライド/動画)が参考になります。テーブル駆動テストやテストヘルパーなど非常に勉強になるので、まだ見たことのない方はぜひスライドや動画をご覧ください。 TL;DR Goのテストではテスト対象とテストコードを別パッケージにできる

    Go Fridayこぼれ話:非公開(unexported)な機能を使ったテスト #golang | メルカリエンジニアリング
    masa-wo
    masa-wo 2018/08/08
  • 「ノンプログラマーでも、自動化はできる」Zapier Automation Meetup Tokyo #0 を開催しました | メルカリエンジニアリング

    「ノンプログラマーでも、自動化はできる」Zapier Automation Meetup Tokyo #0 を開催しました こんにちは、メルカリの自動化&品質保証グループ(Automation & QA Group:通称AQA)の 根 征 です。 私は普段、テスト自動化・CI / CD改善・その他社内の生産性を上げるための自動化を行っています。 今回は、7/10に Zapier Automation Meetup Tokyo #0 を行いましたので、その様子をご紹介したいと思います。 zapier.connpass.com 開催にいたった背景 私は去年から、社内勉強会やZapierの導入を通じて、社内の業務自動化をサポートしています。 詳細についてはこちらの記事をご覧ください。 seleck.cc 「実際にZapierを試してみたい、導入してみたい」などの反応も多くありました。 しかし、

    「ノンプログラマーでも、自動化はできる」Zapier Automation Meetup Tokyo #0 を開催しました | メルカリエンジニアリング
    masa-wo
    masa-wo 2018/07/14
  • Microservice で実現するメルカリオファー機能 | メルカリエンジニアリング

    こんにちは、 Backend Engineer の @vkgtaro です。 メルカリでは今まで PHP で開発されたモノリシックな API に対して機能を追加してきたのですが、今後メルカリのシステムを Microservices 化していくその先駆けとして、Offer という新機能を Microservices Platform 上で開発・リリースしました。Offer は今までコメント欄でなされていた値下げ要求を機能としてできるようにしたもので、出品者から承諾が得られれば Offer した金額で購入できるというものです。受け取った人はもちろん断ることもできます。 2018/07/10 現在、「インテリア・住まい・小物」カテゴリーにて使用可能になっています。 今回はこの機能を実装するにあたってやったことをいろいろ振り返ってみようと思います。 ざっくり全体像はこんな感じになってます。 端末と

    Microservice で実現するメルカリオファー機能 | メルカリエンジニアリング
    masa-wo
    masa-wo 2018/07/12
  • mercari.go #1 を開催しました | メルカリエンジニアリング

    はじめに こんにちは、mercari.go オーガナイザーの@morikuniです。 7月3日にメルカリ主催のGo勉強会 mercari.go #1 を開催しました。 最終的に300を超える応募をいただき、多くの方に関心をもっていただけたことを大変嬉しく思っています。 残念ながら全ての方に参加いただくことはできなかったので、この記事で当日の発表の様子などをお伝えします! API GatewayによるMicroservices化 1つめのセッションは @deeeet による「API GatewayによるMicroservices化」です。 API Gatewayがどのような思想で作られ、Microservices化を進めるにあたってどのように使われているのかを紹介しました。 スライドはこちらから https://go-talks.appspot.com/github.com/tcnksm/t

    mercari.go #1 を開催しました | メルカリエンジニアリング
    masa-wo
    masa-wo 2018/07/07
  • SETチームの設立背景と次世代のSETに向けて | メルカリエンジニアリング

    はじめに SET(Software Engineer in Test)でエンジニアをやっている@masudakと申します。メルカリのSETチームは2016年10月に設立されたのち、ローカル開発環境やQA環境の構築、UIテストの自動化、フロントエンドやマイクロサービスなど各領域内において「開発生産性とプロダクト品質の向上」による取り組み等、様々な業務を行ってきました。 しかしながら、まだSETは馴染みない職種であると思われるため、この記事ではSETの設立背景やその未来像を紹介しようと思います。 SETという職種ですが、いくつかの会社で設立されており、GoogleのSETチームでは、新機能やパフォーマンスを上げるための業務を行うよりも、コードの品質やテストのカバレッジに注目した職種であるとされており、加えて単体テストのフレームワークを作りテストの記述が用意になるような共通基盤の作成も担っている

    SETチームの設立背景と次世代のSETに向けて | メルカリエンジニアリング
    masa-wo
    masa-wo 2018/06/15
  • カラクリ メルカリ カウル &#8211; iOS版アプリの週1アップデートを支えるAutomationとKarakuri | メルカリエンジニアリング

    Mercari Advent Calendar 2017 の21日目はメルカリ カウルチームのiOSエンジニアの@motokieeがお送りします。 はじめに メルカリ カウルは今年の5月のローンチしたエンタメ専用のメルカリ姉妹アプリです。立ち上げから半年ほどが経過し、日々サービスの改善を続けています。 iOS版メルカリ カウルはこの7ヶ月で30回アップデートしており、ほぼ週に一度はアップデートしていることになります。もちろん規則正しく週1でリリースをしているわけではないのですが、開発サイクルの速さがお分かりいただけるのではないでしょうか。 現在メルカリ カウルのiOS版はほぼ1人で開発をしています(自分の他にもう1人iOSエンジニアはいるのですが、PJの都合上BIがメインの業務となっています)。 少ない人数でも改善を続けることができているのは、メルカリエンジニアの行動指針の1つであるAut

    カラクリ メルカリ カウル &#8211; iOS版アプリの週1アップデートを支えるAutomationとKarakuri | メルカリエンジニアリング
    masa-wo
    masa-wo 2017/12/23
  • https://engineering.mercari.com/entry/2017/12/18/deadlock

    https://engineering.mercari.com/entry/2017/12/18/deadlock
    masa-wo
    masa-wo 2017/12/19
  • スタンドアロンAMPのススメ

    こんにちわ、@t32kです。先日、3/18に大阪で開催されたFRONTEND CONFERENCE 2017に登壇してきました。また弊社メルカリは懇親会スポンサーでした。今回は『スタンドアロンAMPのススメ』というタイトルで講演した内容をシェアしたい思います。 私が所属しているソウゾウ社ではメルカリアッテというクラシファイドサービスを作っています。メルカリは配送システムを介して売買しますが、こちらは直接会って手渡しでモノの売り買いができます。もちろん、手数料や配送料はかかりませんので、よろしかったら使ってみてください。私はそこのWeb担当で、サイトのAMP実装について話します。 今日のアジェンダです。 AMPのメリット 表現力について テンプレート分散について 構造化データについて まとめ といった内容でやっていきたいと思います。 AMPとは? まずはAMPとは何か説明します。AMPとは

    スタンドアロンAMPのススメ
    masa-wo
    masa-wo 2017/03/22
  • アッテの開発技術をお伝えする atte FeS【Go・Swift開発編】を開催しました | メルカリエンジニアリング

    こんにちは、ソウゾウの @ttsuruoka です。 メルカリの子会社ソウゾウでは新規事業に取り組んでいます。今回「メルカリ アッテ」の開発技術について、これまでに得られた知見の一部をお話させていただく機会として atte FeS 【GoSwift開発編】 を開催しました。 その発表資料を公開いたします。 発表資料 atte 開発の技術GolangGoogle App Engine speakerdeck.com 発表者:@ttsuruoka atte 開発の技術Swift と RxSwift speakerdeck.com 発表者:@ooba アッテ iOS の設計と開発フローの変遷 speakerdeck.com 発表者:@ishkawa ブログまとめ ご参加いただいた方が、ブログにまとめてくださいました: blog.mogmet.com tech-savvy.hatena

    アッテの開発技術をお伝えする atte FeS【Go・Swift開発編】を開催しました | メルカリエンジニアリング
    masa-wo
    masa-wo 2016/04/22
  • 大人のスタートアップは大人のリリースができる。そう、ChatOpsならね。 | メルカリエンジニアリング

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

    大人のスタートアップは大人のリリースができる。そう、ChatOpsならね。 | メルカリエンジニアリング
    masa-wo
    masa-wo 2015/10/15
  • Gitのつくりかた | メルカリエンジニアリング

    はじめまして。サーバサイドエンジニアの @DQNEO です。 今日はGitのつくりかたをご紹介します。 C言語学習教材としてのGit Gitと同じものをゼロから作って何の意味があるのか?と思いますよね。 私がこの再発明をやり始めた動機は「C言語を書けるようになりたい」でした。 実際に途中までやってみたところ、 C言語がチョットデキるようになった Gitの内部構造に詳しくなった というメリットが得られました。 C言語を勉強する題材は、テトリスとかWebサーバとか他にいくらでもあるのですが、Gitを実装してみるのはかなりおすすめです。理由は下記の通りです。 内部構造が意外と単純 (ローカルで動かす分には)ネットワークの知識が不要 普段使っているツールで外部仕様がわかっているので、やるべきことが明確 余談ですが、家Gitのソースコードを参考にしようと思って読んでいたら、Linus Tovals

    Gitのつくりかた | メルカリエンジニアリング
    masa-wo
    masa-wo 2015/09/15
  • nginxとGoでつくるメルカリのプッシュ通知システム | メルカリエンジニアリング

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

    nginxとGoでつくるメルカリのプッシュ通知システム | メルカリエンジニアリング
    masa-wo
    masa-wo 2015/08/12
    「Goだと言語レベルで並行処理がサポートされていることもあって比較的楽にスケールできる構成にすることができました」
  • Androidクライアントアプリのデバッグ機能

    こんにちは, Androidチームの @tomoaki_imai です。 先日 shibuya.apk というAndroid勉強会で メルカリのデバッグ機能についてお話をさせていただきました。スライドはこちらです。 www.slideshare.net 要点としては以下2点となります。 デバッグ機能はモジュール化して管理し、productionのコードに入れないようにする メルカリではクライアントのデバッグ設定画面以外にデバッグメニューもあるが、メニュー表示はUIに影響を及ぼすので、ビジビリティをデバッグ機能上で制御できるようにする 今回は発表ではほとんど話さなかった、メルカリのAndroidで実装しているデバッグ機能そのものについてもう少し触れたいと思います。 そもそもデバッグ機能とは このデバッグ機能は開発者が効率よく開発を進めるためにDEV版のみに追加しているものです。 例えば サー

    Androidクライアントアプリのデバッグ機能
    masa-wo
    masa-wo 2015/08/07
    「開発者が効率よく開発を進めるためにDEV版のみに追加しているもの」
  • メルカリの「エンジニアブログ」はじめました | メルカリエンジニアリング

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

    メルカリの「エンジニアブログ」はじめました | メルカリエンジニアリング
    masa-wo
    masa-wo 2015/07/01
  • 1