タグ

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

  • Mercari Microservices Platformの進捗(2019年) | メルカリエンジニアリング

    Microservices Platform TeamでTech leadをしている@deeeeeeetです. 昨年のMTC2018ではMicroservices Platformチームの立ち上げから1年で僕らが取り組んできたことを紹介しました. speakerdeck.com 具体的にはStranglerパターンによるMonolithからMicroservicesへの段階的なリクエスト移行を行うためのAPI gatewayの開発や,Microservicesのインフラのセットアップを簡単にしサービス開発チームのSelf-service化を進めるためのStarter-kitの開発,GoでのMicroservicesの開発を高速で始めるためのTemplateプロジェクトの開発,Spinnakerの導入などについて紹介しました. これらはPlatformとして最低限の機能を整備したにすぎず,さ

    Mercari Microservices Platformの進捗(2019年) | メルカリエンジニアリング
    braitom
    braitom 2019/12/23
    これ大事だよなあ。“日々プロダクト開発に追われているサービスチームからすればそのメリットや意義をちゃんと理解してもらわないと導入の優先度は上げてもらえません”
  • より良いコードレビューをするために気をつけていること | メルカリエンジニアリング

    Merpay Advent Calendar 2019 の22日目は、メルペイスマート払いチーム/Backend Engineer の @oinume がお送りします。今日はコードレビューについて自分が普段から実践していることを書いてみたいと思います。 はじめに 世の中にはコードレビューをする時の観点については数多く共有されていますが、より良いコードレビューをするためにはどうするのが良いか、というHOWについてのノウハウはあまりシェアされていないような気がしています。そのため、今日は自分なりに心がけているコードレビューのやり方と、ついでに気をつけている観点について書きたいと思います。 Slackを閉じる (これが当に一番大事だと思っているので最初に持ってきたのですが)私は極端に集中力がないため、SlackのDesktop通知が来るとついついそれが気になって見てしまいます。コードレビュー

    より良いコードレビューをするために気をつけていること | メルカリエンジニアリング
    braitom
    braitom 2019/12/23
    コードレビューをするときに心がけるとよいことについて。IDEで確認するなどの具体的な方法から、全体像を把握するなどの観点などまで書かれている。
  • Maintain SLO 〜俺たちのSLOはこれからだ!〜

    Merpay Advent Calendar 2019 の14日目は、メルペイSREチームの@Tがお送りします。 記事では、メルペイSREチームのSLO運用状況について、紹介いたします。 メルペイリリース前 去年のAdventCalendar 2018で、メルカリのWeb MicroservicesにおけるSLI/SLOについて紹介がありました。 メルペイでは新規のMicroserviceをリリースする前に、各MicroserviceチームがSLOを定義し、品質保持の一指標を決めるルールがあります。 メルペイSREチームでは、Microserviceチームと一緒にSLOを考え、各MicroserviceにSLOを定義していますが、一からSLOを定義するのはとても難しいです。 幸いなことにGoogle社からSLOの説明や定義方法などSREに関する素晴らしい記事がたくさん共有されており、SL

    Maintain SLO 〜俺たちのSLOはこれからだ!〜
    braitom
    braitom 2019/12/16
    メルペイのSREチームでのSLO運用方法について。フォーマットの統一化、Datadogダッシュボードのテンプレ化、最低でも3ヶ月ごとに見直すなどの運用ルールについて書かれている。
  • https://engineering.mercari.com/entry/2019/12/01/microservices-migration-progress

    https://engineering.mercari.com/entry/2019/12/01/microservices-migration-progress
    braitom
    braitom 2019/12/02
    メルカリのマイクロサービス移行の現状について。マイクロサービスへ移行していくロジックをどのような基準で選定したか、ドメインチーム体制のメリデメ、今後の組織の方向性について書かれている
  • Microservices と会計システム | メルカリエンジニアリング

    この記事は、 Mercari Bold Challenge Month の18日目の記事です。 こんにちは。メルカリで Product Manager として働いている津田と申します。私は社内で「会計システム」と呼ばれる、会社が運営するサービスに付随して発生した債権債務の増減を記録・集計するシステムを開発するチームで働いています。 はじめに メルカリでは、お客さまの行動に応じて日々さまざまなお金の流れが発生しています。たとえばメルカリで商品が出品され購入された(取引が行われた)場合を考えてみます。 この取引は、会社から見るとそれぞれの相手先に対する債権債務関係の変化と捉えることができます。メルカリにとっては、購入したお客さまに対する債権(= 商品代金)と出品したお客さまに対する債務(= 売上金)が発生します。このとき、商品代金の一定割合(通常は 10%)が販売手数料としてメルカリの売上とな

    Microservices と会計システム | メルカリエンジニアリング
    braitom
    braitom 2019/09/19
    メルカリのサービスに付随して発生する債権債務を記録/集計するシステムについて。システムの変遷、現在のアーキテクチャ、課題、内部統制への対応などがまとめられている。これはすごいまとめ。
  • エキスパートチームによるSwiftコミュニティへの取り組み | メルカリエンジニアリング

    この記事は、 Mercari Bold Challenge Monthの17日目の記事です。 こんにちは、エキスパートチームの@kitasukeです。 今回はメルペイのエキスパートチームが、Swiftコミュニティに向けてどんな活動をしているか紹介します。 エキスパートチームについて メルペイでは「技術アウトプットするところに技術は集まる」という思いから、 稼働の50%以上を技術コミュニティへの貢献や技術の普及に取り組むエキスパートチームが存在します。 現在、チームは3人で構成されており、Go/GCPであればGo Conferenceやgolang.tokyoなどを運営している@tenntenn、 AndroidであればDroidKaigiや技術書典などを運営する@mhidaka、SwiftであればSwiftcKaigiやわいわいswiftcなどを運営している@kitasukeという役割分

    エキスパートチームによるSwiftコミュニティへの取り組み | メルカリエンジニアリング
    braitom
    braitom 2019/09/18
    素敵。“エキスパートチームは緊急度は低いが重要度が高いことを業務として扱える特殊なチームだと思います。目の前の問題を解決するのも大事ですが、技術コミュニティへの貢献という長期的な取り組みも大事です”
  • Windows10 / Microsoft Edge での自動テスト(Selenium WebDriver)を Azure DevTest Labs 上で実行して高速化したお話 | メルカリエンジニアリング

    Windows10 / Microsoft Edge での自動テスト(Selenium WebDriver)を Azure DevTest Labs 上で実行して高速化したお話 この記事は、Mercari Bold Challenge Month の 2日目の記事です。 メルカリで QA Automation Engineer をしている 根 征 です。 私は現在、メルカリWeb版のUIテスト自動化に取り組んでいます。 今回は、Microsoft Edge ブラウザでの UIテスト自動化 (Selenium WebDriver) とその環境構築についてお話します。 マルチブラウザ時代のUIテスト戦略 Windows10 / Microsoft Edge で Selenium WebDriver のテストを動かす Windows 10 / Microsoft Edge のテスト環境への課題

    Windows10 / Microsoft Edge での自動テスト(Selenium WebDriver)を Azure DevTest Labs 上で実行して高速化したお話 | メルカリエンジニアリング
    braitom
    braitom 2019/08/28
    Azure DevTest Labsを使ったWindowsでのテスト環境構築について。AzureのVirtual Machine利用料のみで使える、Lab内で同じパブリックIPを共有する機能があるなど。
  • Microsoft MVPを受賞しました! | メルカリエンジニアリング

    こんにちは!メルペイのコード払いチームでバックエンドエンジニアをしている@toshi0607です。趣味はサーバーレスアーキテクチャーです。 前職ではRailsサーバーやWebフロントエンドだけではなくWindowsXamarinを使ったmacOSアプリ開発もしていました。 今日はDeveloper Technologiesカテゴリー*1でMicrosoft MVPを再受賞したお話です。 Microsoft MVPとは Microsoft MVPはMicrosoftの製品やテクノロジーについてオンライン・オフラインを問わず顕著な活動を行った個人をMicrosoftが表彰する制度です*2。 MVPを受賞するとMicrosoft製品への早期アクセス、製品チームと直接やり取りできるチャネルやMicrosoft米国社で開催されるGlobal MVP Summit への招待、様々なソフトウェアライ

    Microsoft MVPを受賞しました! | メルカリエンジニアリング
    braitom
    braitom 2019/07/16
    ほう。Microsoft MVPの審査ってこういうことを書くのか。
  • React-axe で React アプリケーションのアクセシビリティを向上させる | メルカリエンジニアリング

    こんにちは、この 4 月にメルカリに新卒入社したフロントエンドエンジニアの @karszawa です。 この頃は Google I/O 2019 のキーノートでアクセシビリティが大きく取り上げられたり、Safari に Audit タブが追加されアクセシビリティに関する様々なテストできるようになったりと、フロントエンド界隈におけるアクセシビリティへの関心の高まりを感じます。 記事では React アプリケーションのアクセシビリティをチェックするためのライブラリである React-axe と、その中心技術である axe-core を応用した様々なツールをご紹介します。 React-axe とは React-axe は React アプリケーションのアクセシビリティをチェックするためのツールです。チェックの結果は Chrome DevTools に表示され、開発中にアクセシビリティの問題に気

    React-axe で React アプリケーションのアクセシビリティを向上させる | メルカリエンジニアリング
    braitom
    braitom 2019/06/20
    React-axeを使ったReactアプリのアクセシビリティチェック方法、出てきた問題とその修正方法、jest-axeを使ったJestからの利用方法などが書かれている。
  • マイクロサービスにおける決済トランザクション管理 | メルカリエンジニアリング

    この記事はMERPAY TECH OPENNESS MONTHの15日目の記事です。 こんにちは。メルペイのPayment PlatformチームでPaymentServiceの開発を担当するエンジニアの @foghost です。 メルペイではマイクロサービスのアーキテクチャで決済システムを開発しています。その中でPaymentServiceは決済トランザクション管理の基盤サービスとして、下位層のサービス(外部サービスも含め)が提供する各種決済手段を利用して、上位層のサービス(メルカリ、NFC,コード払いなど)に必要な決済フローを共通APIとして提供しています。PaymentServiceが提供する決済処理に複数のサービスを跨いでお金の動きを正確に管理する必要があるので、作り始めた頃から決済トランザクション管理を最も重要な課題として、サービスを跨いでもデータの整合性が取れる仕組みを作ってき

    マイクロサービスにおける決済トランザクション管理 | メルカリエンジニアリング
  • AMLチームがどのようにメルペイのデータをSplunkに集め活用しているか | メルカリエンジニアリング

    株式会社メルペイのAML/CFTチームでバックエンドエンジニアをしている@hatappiです。 この記事はMERPAY TECH OPENNESS MONTHの7日目の記事です。 前日は同じチームのyagi5からメルペイのAML/CFTシステムを支える技術として AML チームがやってることの全体像が書かれていました。 今回の記事ではその中でも Splunk に対してどのようにデータを集めているかにフォーカスをあてた話を書いていきます。まだ前日の記事を読んでない方はぜひ読んでみてください!! なぜSplunk にデータを集めるのか AMLチームでは Splunk にデータを集めることで次の3つのことを行います。 疑わしい取引の検出 ダッシュボードの提供 データ分析のための基盤提供 疑わしい取引の検出 「疑わしい取引の検出」はお客様にメルペイを「あんしん・あんぜん」に使っていただくためにAM

    AMLチームがどのようにメルペイのデータをSplunkに集め活用しているか | メルカリエンジニアリング
    braitom
    braitom 2019/05/29
    メルペイでのSplunkの使い方とデータ投入方法について。各サービスからProtocol BuffersにシリアライズでCloud Pub/Subにデータを送る。Sbubscriberでデータを受け取りAmazon Kinesis Data Firehoseを通してSplunkに送る。
  • メルペイのAML/CFTシステムを支える技術 | メルカリエンジニアリング

    株式会社メルペイのAML/CFTチームでバックエンドエンジニアを努めているyagi5です。この記事はMERPAY TECH OPENNESS MONTHの6日目の記事です。 私たちメルペイが目指すのは、単なる決済手段を提供することだけではありません。 「信用を創造して、なめらかな社会を創る」プラットフォームになることです。 そのためには、お客様がメルペイ、メルカリを「あんしん・あんぜん」に利用できなければなりません。 メルペイにおいてその役目を担っているのが、筆者の所属する「AML/CFTチーム」です。 この記事では、読者の皆さんには馴染みが薄いかもしれない「AML/CFT」について紹介すると共に、私たちが日々取り組んでいる、メルペイのあんしん・あんぜんを支える技術について書きたいと思います。 最後までお読みいただければ幸いです。 AML/CFTとはなにか AML/CFTとは「Anti-M

    メルペイのAML/CFTシステムを支える技術 | メルカリエンジニアリング
    braitom
    braitom 2019/05/27
    ほー、メルペイではSplunkをデータプラットフォームに使ってて不正検知のルールエンジンとしても使っているのか。
  • Datadogを使って感じた、問題調査/対応における変化とその要因 | メルカリエンジニアリング

    はじめに この記事はMERPAY TECH OPENNESS MONTHの4日目の記事です。 こんにちは。株式会社メルペイで backendエンジニアをしている cowsys です。 プロダクト/システムで発生した「問題」をいかにして解決するか。 いかに素早く原因を特定/解消し、正常化させるか。 上記のような「問題の調査と対応」は、backendエンジニアとして持ち続けている、大きなテーマの一つとしてあります。 メルペイの開発で初めてDatadogを利用してみて、このテーマが、大きく前進したような手応えを感じました。 ここでは最もインパクトのあった変化に絞り、どのような変化が起き、それは何によってもたらされたのか。 Datadogの導入事例として、また「問題の調査と対応」を考えるエンジニアとして、感じたこと、考えたことをお伝えできればと思います。 目次 はじめに 目次 利用しているData

    Datadogを使って感じた、問題調査/対応における変化とその要因 | メルカリエンジニアリング
    braitom
    braitom 2019/05/24
    Datadogの導入により問題に対する向き合い方がどのように変化したかについて。調査のために必要な情報取得が同一ツールで可能、情報の加工が容易にできるなどの理由から問題に対しポジティブになってきた。よい
  • メルペイでのSpannerとの戦いの日々 | メルカリエンジニアリング

    こんにちは、メルペイのバックエンドエンジニアの @kazegusuri です。 メルペイではメインのデータベースとしてGoogle Cloud Spannerを利用しています。 マイクロサービスによっては秒間数千リクエストをSpannerで処理しています。 いかにSpannerをスケールできるようにして安定させられるかが会社全体として重要になっています。 記事では数ヶ月間戦ってきたSpannerのレイテンシが高くなる問題とその解決法について紹介したいと思います。 社内への調査報告も含めて書いているため、かなり詳細で長い内容になっています。 なおこの問題の大部分はGoSpannerを使ったときにだけ発生する問題のため、Javaなどの他の言語では該当しない可能性があります。 CreateSession問題 ここで紹介しなくても良いくらい基的なところですが、CreateSessionが非常

    メルペイでのSpannerとの戦いの日々 | メルカリエンジニアリング
  • バッチプログラムの運用と監視について検討しよう | メルカリエンジニアリング

    こんにちは。メルペイでバックエンドソフトウェアエンジニアをしている id:koemu です。 バッチプログラムのお話、今回は運用・監視についてお話したいと思います。当社はすべての業務が24時間行われていますので、システムがオンラインのときに動作するバッチプログラムについてのみ議論します。 過去の記事はこちらにあります。 運用に備えて バッチプログラムの運用について、「プリモーテム」「実行管理」そして「ログ管理」の3点について述べていきます。 プリモーテム ポストモーテムという言葉を聞いたことがある方はいらっしゃるかと思います。ポストモーテムとは、GoogleのSREの15章*1によれば、障害などの失敗を振り返り、今後に活かすプロセスの総称と捉えることができます。 さて、プリモーテム(プリモータム)とは何でしょうか。この言葉は、私が最近読んだThe Manager’s Path*2*3で使

    バッチプログラムの運用と監視について検討しよう | メルカリエンジニアリング
    braitom
    braitom 2019/04/17
    バッチプログラムの運用について。実行管理、ログ管理、監視のしかた、通知のしかたなどの検討事項についての考察がまとめられている。
  • メルカリWeb版のUIテスト自動化で目指している世界と、そのために作った Selenium Grid・Zalenium 環境 on Azure Kubernetes Service(AKS) | メルカリエンジニアリング

    メルカリWeb版のUIテスト自動化で目指している世界と、そのために作った Selenium Grid・Zalenium 環境 on Azure Kubernetes Service(AKS) メルカリの自動化&品質保証グループ(Automation & QA Group:通称AQA)の 根 征 です。 私は普段、テスト自動化・CI / CD 改善・その他社内の生産性を上げるための自動化を行っています。 今回は、最近私たちが行なっているメルカリWeb版のUIテスト自動化と、その自動テスト環境についてご紹介したいと思います。 メルカリWeb版のUIテスト自動化について UI自動テスト環境に関する課題 Selenium Grid を Azure Kubernetes Service(AKS) 上で構築する Zaleniumを試す Azure Kubernetes Service(AKS)で受け

    メルカリWeb版のUIテスト自動化で目指している世界と、そのために作った Selenium Grid・Zalenium 環境 on Azure Kubernetes Service(AKS) | メルカリエンジニアリング
    braitom
    braitom 2019/04/17
    メルカリのWebアプリのUIテスト自動化について。UI自動テスト環境における課題、AKS上にSelenium Grid、Zaleniumを構築する方法など。KubernetesマネージドサービスにAKSを選ぶことで得られる恩恵についても書かれている。
  • バッチ処理の採用と設計を考えてみよう | メルカリエンジニアリング

    こんにちは。メルペイで、決済・振込申請のバックエンドソフトウェアエンジニアをしている id:koemu です。 今日は、バッチ処理を行う理由について、考察を深めて設計に活かしていく話をしたいと思います。 はじめに バッチ処理とは、ある決まったタイミングで1つのプログラムが複数のデータを 一括処理 することを指します。この反対の言葉として、オンライン処理があります。オンライン処理とは、お客様の操作を初めとしたイベントをもとに 逐次処理 されるものです。OLTP(Online Transaction Processing)とも言います。 エントリでは、バッチ処理を採用するにあたり、どういったユースケースが適切なのかを整理して、今後のソフトウェアの設計の指針にできることを目指しています。今回は、「バッチ処理を採用するとき」と「バッチ処理の設計」の2つについて取り上げます。 バッチ処理を採用する

    バッチ処理の採用と設計を考えてみよう | メルカリエンジニアリング
    braitom
    braitom 2019/02/27
    バッチ処理について。バッチ処理の定義、処理時間や回復可能性などのバッチ処理の設計について書かれている。
  • E2Eテストのテスト結果を可視化することで気づきが生まれた | メルカリエンジニアリング

    メルカリの自動化&品質保証グループ(Automation & QA Group:通称AQA)の おれたま@AHA_oretama です。 私は普段、テスト自動化やCI / CD を主に行っています。 今回は、Appium×Android E2Eテストのテスト結果の見やすさを改善し、テスト結果を可視化することで気づきが生まれた話について、紹介していきたいと思います。 テスト結果の見やすさ、可視化の重要性について いま使っているテストレポートの課題 Allure Framework 並列化した分だけレポートも分かれてしまうことへの対処 スクリーンショット、スクリーンレコード以外のアタッチメントを追加することができないことへの対処 過去のテスト結果と比較できないことへの対処 他の改善点 テストのタイムラインが見える トレンドも表示できる Looker 生まれた気づき 課題 終わりに テスト結果の

    E2Eテストのテスト結果を可視化することで気づきが生まれた | メルカリエンジニアリング
    braitom
    braitom 2019/02/12
    Appiumを使ったAndroidアプリのE2Eテストの結果の見やすさを改善した話。Allure Frameworkを使って過去のテスト結果と比較できるようにする、CloudSQLに保存してLockerで表示するようにするなど。
  • 人に最適化された現実 Optimized Reality (OR) = XR + DRを8th Wall Webで実装した話 - Mercari Engineering Blog

    人に最適化された現実 Optimized Reality (OR) = XR + DRを8th Wall Webで実装した話 English follows Japanese Mercari Advent Calendar 2018 の 22日目は 研究開発組織 mercari R4D の XR Research Engineer で、AR業界5年目のあっしゅ (@ashyanagisawa) がお送りします。 皆さんは XR (AR/MR/VR) でどんな世界にしたいですか? この質問に対して、私は Optimized Reality (OR) と答えます。ORの考えはAR Developer Meetup #1のLTで、多くのAR開発者に共感していただきました。今回、LTに含めることができなかったWebXR SDKの8th Wall Webで作成したORのデモの実装方法を交え、ORにつ

    人に最適化された現実 Optimized Reality (OR) = XR + DRを8th Wall Webで実装した話 - Mercari Engineering Blog
    braitom
    braitom 2018/12/24
    XR、DR、ORという考えについて。OR=人や場に応じて情報量が増減する世界、最適化された現実。なるほど面白い。
  • Chrome DevToolsを用いたメルカリWebのパフォーマンス計測 - Mercari Engineering Blog

    フロントエンドチームの @urahiroshi です。Mercari Advent Calendar 2018 12日目を担当します。 今年の8月から12月にかけて,メルカリ・メルペイのフロントエンドチーム有志で「超速!Webページ速度改善ガイド」の社内輪読会を行いました。 このの中で,「推測するな,計測せよ」という言葉が紹介されていますが,今回の記事は,輪読会で学んだことのまとめとして,Chrome DevToolsを用いてメルカリWebのパフォーマンス計測と簡単な分析を行ったものです。 なお,現在メルカリWebのアーキテクチャを刷新するための開発が進んでいるため,ここで計測したパフォーマンスの値は大幅に変化していく可能性が高いです。アーキテクチャの刷新後に振り返って見られる楽しみが増えることも、この記事を書いた目的の一つです。 計測方法,環境 計測はGoogle Chrome 71.

    Chrome DevToolsを用いたメルカリWebのパフォーマンス計測 - Mercari Engineering Blog
    braitom
    braitom 2018/12/17
    Chrome DevToolsのPerformanceパネルの項目の見方について。