サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
円安とは
engineering.mercari.com
search infra teamのmrkm4ntrです。我々の運用するElasticsearchにはFunction Score Queryを使ったリクエストが送られてきます。Function Score Queryはサブクエリのスコアに任意の関数を適用できるというもので、とても便利な機能ですが、同時にTop K(スコアが大きいものからK個を取得する場合)クエリ処理の最適化の恩恵を受けられなくなるという欠点もあります。この記事では、Function Score Queryに用いる関数の性質を利用し、Function Score QueryとTop Kのクエリ処理の最適化を両立させる方法について説明します。本記事は読者が検索エンジンの仕組みにある程度詳しいことを想定しています。 Top Kのクエリ処理の最適化 Elasticsearchの検索機能を提供しているライブラリLuceneには、T
*Security & Privacy Divisionの原動力となっているバリュー、それは「By design, by default and at scale(設計で叶える、デフォルトに組み込む、スケールに対応する)」です。 Oktaのユーザーアクセス権の棚卸し作業をPlatform Security Teamに率いてほしいという依頼が寄せられました。このプロジェクトを進める中、私たちは過去の設定や慣習と向き合わなければなりませんでした。なぜなら古いやり方が残っていることで「by design」と「by default 」な管理が難しい状態だったからです。そのような状況にも関わらず、私たちは「at scale」で組織全体を網羅した検査を実施する必要がありました。 この記事では、これらの課題に私達がどのように挑んだかを説明します。 使用したテクノロジー: Neo4j: https://n
こんにちは、メルカリの生成AIチームで ML Engineer をしている ML_Bear です。 以前の記事[1]では商品レコメンド改善のお話をさせていただきましたが、今回は、大規模言語モデル (LLM) やその周辺技術を活用して30億を超える商品のカテゴリ分類を行なった事例を紹介します。 ChatGPTの登場によりLLMブームに火がついたということもあり、LLMは会話を通じて利用するものだと認識されている方が多いと思いますが、LLMが有する高い思考能力はさまざまなタスクを解決するためのツールとしても非常に有用です。他方、その処理速度の遅さや費用は大規模なプロジェクトでの活用にあたっての障壁となり得ます。 本記事では、こうしたLLMの課題を克服するためにさまざまな工夫を施し、LLM及びその周辺技術のポテンシャルを最大限に引き出して大規模商品データのカテゴリ分類問題を解決した取り組みについ
Merpay Engineering Productivity Team の goccy です。 gRPC Federation は、gRPC で通信する複数のサービスから得た結果を合成して返すようなサービスを簡単に作成するための仕組みです。DSL ( Domain Specific Language ) を Protocol Buffers 上で記述することで利用します。まずは、GraphQL(Apollo) Federation の gRPC 用のものだと考えるとわかりやすいと思います。2023年8月に OSS として公開し、先日 Public Roadmap を公開しました。2024/6月末を目標に Version 1.0 ( GA版 ) をリリースする予定です。また、最近は Protocol Buffers のエコシステムに参加しました。Protobuf Global Extens
はじめに こんにちは、mercari.go スタッフの hiroebe です。 3月21日にメルカリ主催の Go 勉強会 mercari.go #25 を YouTube でのオンライン配信にて開催しました。この記事では、当日の各発表を簡単に紹介します。動画もアップロードされていますので、こちらもぜひご覧ください。 Learning TLS1.3 with Go 1つめのセッションは @shu-yusa さんによる「Learning TLS1.3 with Go」です。 発表資料:Learning TLS1.3 with Go TLS1.3 におけるハンドシェイクのプロセスについて、Go のコードを交えて説明しました。TLS1.3 では TLS1.2 から多くの変更が入っていて、ハンドシェイクの改善もそのうちの1つです。Go において TLS に関連する暗号技術は crypto/ 以下のパ
はじめに メルカリ Engineering Office マネージャーのhiroiです。 我々のチームでは「Establish a Resilient Engineering Organization」というミッションを元に、エンジニアリングにおける、組織横断課題の解決を目指しています。 組織横断というと、Platformチームや、インフラ周りのチームを想像する方も多いと思いますが、我々のチームでは、プロダクト開発における技術的な課題を除く、組織課題や横断的な取り組みを推進しています。 具体的には、各技術領域ごとの研修プログラムの構築、エンジニア向けのイベント企画運営、技術広報(このEngineering Websiteも我々の活動の一つです)、ナレッジマネジメント、エンジニア文化の言語化や醸成、技術戦略策定、果てはインド開発支部の立ち上げのプロマネなどをしています。 この記事ではそんな我
Background At Mercari, we utilize many microservices developed across multiple different teams. Each team has ownership over not only their code, but also the infrastructure necessary to run their services. To allow developers to take ownership of their infrastructure we use HashiCorp Terraform to define the infrastructure as code. Developers can use Terraform native resources or custom modules pr
iOSエンジニアのtakecianです。 株式会社メルカリでは YOUR CHOICE という「働く場所・住む場所」を自由に選択できる制度があります。そのため同僚とはリモートワークでコミュニケーションを取りながら仕事を進めることが多いです。(六本木にオフィスはあるので出社して仕事をすることも可能です) リモートワークで働いている時にアプリのバグを見つけたり、気になる挙動を見つけた時にアプリの画面を録画して共有することがあります。「ここの動作がおかしい気がする」「この順で操作すると画面表示が変になる」など、操作中の画面を録画してもらい、ビデオを受け取って確認してみます。ですが画面にはどこをタッチしたかは表示されないので、「どういう操作をしているか」「どこをタップしたか」が分かりにくいと思った経験が iOS エンジニアだと誰もがあるのではないでしょうか。 このエントリでは、iOSアプリで見つけ
目次 はじめに eBPFとは? eBPFのCTFチャレンジ Flagの獲得 おわりに はじめに 初めまして、Threat Detection and ResponseチームのChihiroです。昨年の7月に株式会社メルカリに入社して、主にクラウド向けのDetection Engineeringや、インシデントレスポンスを担当しています。また、メルカリで自社開発しているSOAR(Secuirty Orchestration Automation and Response)プラットフォームの開発や運用も担当しています。 メルカリには、部活を支援する社内制度が存在し、様々な部活があります。その部活の一環として、私は最近、CTF(Capture The Flag)と呼ばれるサイバーセキュリティの競技を楽しんでいます。そこで今回は、参加したCTFの中で面白かったeBPFに関するリバースエンジニアリン
search infra teamのmrkm4ntrです。我々のチームではElasticsearchをKubernetes上で多数運用しています。歴史的経緯によりElasticsearchのクラスタは全てElasticsearchクラスタ専用のnode pool上で動作していました。ElasticsearchのPodは使用するリソースが大きいため、このnode poolのbin packingが難しくコストを最適化できないという問題がありました。そこで全てのElasticsearchクラスタを専用のnode poolから他のワークロードと共存可能なnode poolへ移行しました。ほとんどのクラスタが問題なく移行できたのですが、唯一移行後にlatencyのスパイクが多発してしまうものがありました。 この記事では、その原因を調査する方法と発見した解消方法について説明します。 発生した現象 共
Platformチームでエンジニアをしているsanposhihoです。メルカリのPlatformチームでオートスケーリング周りの課題の解決を担当しており、Kubernetes UpstreamでもSchedulingやAutoscaling周りの開発に参加しています。 メルカリでは全社的にFinOpsに取り組んでおり、Kubernetesリソースは最適化の余地があるエリアです。 メルカリではPlatformチームとサービスの開発チームで明確に責務が分かれています。Platformではサービス構築に必要な基礎的なインフラストラクチャを管理し、それらを簡単に扱うための抽象化された設定やツールなどの提供を行っています。サービスの開発チームは、それらを通してサービスごとの要件に応じたインフラストラクチャの構築を行います。 サービスやチームの数も多く、そのような状況での全社的なKubernetesリ
こんにちは、メルカリのQAエンジニアのFunakiです。今回は品質改善と可視化のための取り組み、特にバグ管理(Bug Management)に焦点を当てて、QAチームがどのような活動を行っているのかをご紹介します。 我々は2018年頃からバグ管理の取り組みを始め、試行錯誤を重ねてきました。製品の品質に関する課題を抱えた方や、品質の可視化を進めたいと考えている方にとって、当ブログが現状を改善するきっかけになれば幸いです。 (出典:https://loosedrawing.com/) なぜBug Managementを実施しているのか? 我々はプロダクトの品質を推測するために、バグチケットの管理や可視化するすることを目指しています。品質を推測するために、品質の可視化するための環境構築(ダッシュボード)や、バグのチケット管理ルール(Bug Management Guideline)を作成していま
こんにちは。メルカリ Accounting Productsチーム Software Engineerのayanekoです。 この記事は、Mercari Advent Calendar 2023 の20日目の記事です。 私たちAccounting Productsチームは会計システムの開発、運用をしています。会計データを扱うという特性上、以下にあげる理由から大量のデータを保持しており、多額の費用がかかっていました。 会計データは法律上一定期間の保持が必要であること 一時ファイルやログファイルなども含めて保守的にすべてのデータを保存していたこと そこで、FinOps観点でCloud Storage(以下GCS)やCloud Spanner(以下Spanner)のリソース最適化のPJを始めました。リソース最適化とは、必要なリソースはしっかりと保存し、更新され古くなったデータは必要な期間のみ保存
こんにちは。メルカリMarketplace, Foundation EngineeringのDirector, @mtsukaです。日々新しい技術を追い求め、挑戦を続けるMercari Engineeringですが、そんな部門にしては少し毛色の違った部類のチームです。どちらかというと、中長期の視点から、より良いビジネス貢献であったり、より良い開発体験を支える基盤開発を中心に、じっくり腰を据えた仕事をしています。 この記事は、Mercari Advent Calendar 2023 の23日目の記事です。 メルカリは2021年10月から既存のシステムの解析、改善を大規模かつスピーディに行うという、難易度の高い全社的なリファクタリングプロジェクトRobust Foundation for Speed (RFS) に中期的に取り組んできました。本取り組みは、2023年7月末に各ドメインの改善が無
この記事は Merpay Advent Calendar 2023 の 24 日目の記事です。 こんにちは、メルコインの @pooh です。 メルカリグループでは金融事業を営んでいるメルペイとメルコインのEngineering Manager(EM)で普段とは別の場所に集まって1日集中して議論をするOffsitesを定期的に実施しています。 この投稿ではOffsitesそのものを紹介するのではなく、Offsitesでよく実施されるワークショップ(参加型作業)についての4つの工夫を紹介します。 複数人が集まって、何かのテーマについて意見を出し合い、意見をまとめて発表するというワークショップはよくあると思います。これから紹介する方法を使用することでより活発な成果が望めます。 本記事では私の経験とメルカリという組織での実践上の知見を書いています。そのため、組織ごとに別のよりよいやり方もあると思い
こんにちは。株式会社メルペイのSolutionsチームのデータエンジニアの@orfeonです。 この記事は、Merpay Advent Calendar 2023 の22日目の記事です。 Solutionsチームは、社内向けの技術コンサルや技術研修、部門を跨いだ共通の問題を発見して解決するソリューションの提供などを行っています。 私は主に社内のデータ周りの課題を解決するソリューションを提供しており、一部の成果はOSSとして公開しています。 過去の記事では全文検索OSSであるApache SolrをCloud Run上で利用して手軽に検索APIを構築する構成を紹介しました。 社内向けのソリューションの一つとして社内向けの検索APIを使ったサービスなど小規模な検索システムの構成に役立てています。 前回の記事の時点では、検索対象として搭載できるデータサイズなどにいくつかの制約がありました。 今回
こんにちは。メルコインのバックエンドエンジニアのiwataです。 この記事は、Merpay Advent Calendar 2023 の23日目の記事です。 私はいまメルコインのCoreチームに属しています。Coreチームでは主にお客さまからの暗号資産の売買注文を受け付ける部分のマイクロサービスを開発運用しています。 メルコインではCI環境としてGitHub Actions self-hosted runnerを使用しています。またCIだけでなく、さまざまな自動化のためのワークフローの構築もこの環境を用いて実行しています。この記事では私の所属しているCoreチームにおいてGitHub Actions上に構築しているオートメーションについて紹介したいと思います。 PR-Agent PR-AgentはOpenAI APIを使って、PRのコードレビューなどを自動化してくれるActionです。La
はじめに こんにちは。メルカリ Director of Engineering の @motokiee です。この記事は、Mercari Advent Calendar 2023 の21日目の記事です。 メルカリのサービス開始から10周年ということで、2023年9月にiOSDC Japan 2023 カンファレンスで「メルカリ10年間のiOS開発の歩み」について発表を行いました。 この発表は、10年間のiOS開発の歴史を40分のトークにまとめたものです。メルカリはこの10年多くの技術的なチャレンジをして断続的にアプリケーションをアップデートしてきました。自分が見てきた歴史と、見ていない歴史については git log を手繰りながら調査した集大成となっています。 サービスの歴史が長くなると、アプリケーションのリファクタリングはもちろん、作り直す話も出てくると思いますが、そういった意思決定の際
メルペイSREの @myoshida です。この記事は、Merpay Advent Calendar 2023 の21日目の記事です。 メルカリグループではGoogle Cloud Platform(GCP) を広く利用しており、一般的にはGCPを利用したシステム構築が推奨されています。しかし、他のプラットフォームを利用した方が要件を実現しやすかったり、よりスマートに構築できる場合はAmazon Web Services(AWS)なども利用することあります。 今回はAWS Transfer Familyを利用してSFTPでファイルを送受信する環境を構築した件について簡単にお伝えできればと思います。 SFTPでのファイル送受信について SFTP(SSH File Transfer Protocol)は、その名の通り、SSHを利用してファイル転送を行います。SSHを利用して暗号化通信が行えるた
この記事は Merpay Advent Calendar 2023 の 20 日目の記事です。 こんにちは。メルペイの Payment Core チームでバックエンドエンジニアをしている komatsu です。 普段はメルカリ・メルペイが提供するさまざまな決済機能を支えるための決済基盤の開発・運用をしています。 この記事では、我々が開発している決済基盤マイクロサービスである Payment Service を適切に監視するために、Datadog の Dashboard を大きく刷新した背景や方法について紹介します。 Observability と Datadog Dashboards 本題に入る前に、Observability と Datadog Dashboards について簡単に説明します。 Observability はシステムの内部状態を適切に監視し、外部から可視化することでシステ
こんにちは。メルペイのiOSエンジニアの@kenmazです。 この記事は、Merpay Advent Calendar 2023 の19日目の記事です。 概要 iOSアプリ開発において、お客さまにより良い体験を提供する上でナビゲーションの設計は非常に重要なトピックです。特にメルペイのように「決済」「申し込み」「登録」といった自己完結型のタスクを提供する画面が多いアプリでは、iOSのモーダル表示を活用した設計手法である「モダリティ」を意識することが Apple Human Interface Guideline において推奨されています。これにより、お客さまを迷わせることのない使いやすいアプリを構築でき、またコードの保守性も向上します。 本記事では、メルペイiOSチームが既存機能のリライトプロジェクトを進める中で発見した既存の画面設計の問題点を、モダリティの設計手法に基づいて解決した事例をご
この記事は、Mercari Advent Calendar 2023 の18日目の記事になります。 こんにちは!メルカリ Engineering Office チームの@aisakaです。 私達のチームは「Establish a Resilient Engineering Organization」というミッションを元に、様々な活動を行なっています。先日のAdvent calendarでマネージャーのhiroiさんがチームの活動の内容、目的の紹介をしているので、ぜひこちらも読んでみてください。 強いエンジニア組織に必要な、6つの技術以外のこと – メルカリ編 私はEngineering Officeがカバーする領域の中でもOnboardingを担当していて、よりよいOnboarding体験を提供していくための戦略や仕組みづくりに携わっています。 OnboardingやトレーニングといったH
こんにちは。メルペイ Engineering Managerの@masamichiです。 この記事は、Merpay Advent Calendar 2023 の18日目の記事です。 この記事では私がマネージャーを務めているMerpay Enabling Clientチームの役割や今後進めていくことについて紹介します。 Merpay Enabling Client Team メルペイの組織構造は現在Program型組織となっており、その中でもEnabling ProgramはArchitectやSRE、Data Platformなど、横断的な技術課題の解決や生産性向上など開発全体を支援する組織です。Program型組織の詳細については2日目の@keigow さんの記事をご覧ください。 メルペイのProgram型組織への移行 Merpay Enabling Clientチームはその中でWeb/
この記事は、Mercari Advent Calendar 2023 の7日目の記事です。 こんにちは!メルカリの Search Middleware チームで Software Engineer をしている @otter です。 ご存じの方も多いとは思いますが、メルカリのエンジニア組織ではグローバル化が進んでおり、チームにもよりますがコミュニケーションやドキュメントではほぼ英語が必須な環境になっています。 そのような環境のメルカリに英語がほとんど話せない私が入社してから4年が過ぎました。会社の環境も私自身も変わってきており、そこで得られたものや感じたものを紹介していきたいと思います。 どんな人にこの記事を読んでほしいか? 英語を使った環境で仕事をしてみたい人 仕事で英語を使っているがコミュニケーション方法の参考にしたい人 組織のグローバル化を検討している人 入社前のモチベーション 前職で
こんにちは。メルペイ Machine Learning エンジニアの@gucciです。 この記事は、Merpay Advent Calendar 2023 の16日目の記事です。 はじめに 2023年3月、OpenAI社がChatGPTを発表して以来、大規模言語モデル(LLM)の可能性に世界中が注目しています。企業や個人がLLMをどのように活用できるかを模索する中、実際にLLMを用いたプロダクトが市場に登場し始めています。メルカリグループでも、社内向け・プロダクト向けの両面でユースケースを探索してきました。 その一環として、7月に実施したぐげん会議[1]で入賞した返済相談チャットシミュレーターの一部分について、トライアルでオフラインの品質評価を実施しました。この記事では、その結果とそこから得られた学びについて共有します。 品質評価における課題意識 各種の学術試験やベンチマークテスト等、汎用
こんにちは。メルペイのフロントエンドエンジニアの@tokuda109です。 この記事は、Merpay Advent Calendar 2023 の15日目の記事です。 Merpay Advent Calendar 2020 の「Merpay Frontend のこれまでとこれから」という記事で、メルペイのフロントエンドチームが2020年までに取り組んできたチーム組成やプロダクトの品質改善の話が紹介されました。(以下、前回の記事) 早いもので前回の記事が公開されてから3年が経ち、当時からチームの状況は大きく変わり、チームメンバーの人数が半数以下になるという危機的状況も経験しました。 この記事は、前回の記事の続編として、2020年以降にフロントエンドチームが取り組んできたことを紹介すると共に、危機的状況を乗り越えた経験から長期的に安定したチーム運営を行う上で重要だと感じたことを説明します。 M
こんにちは。メルカリ iOSエンジニアの@saeです。この記事は、Mercari Advent Calendar 2023 の11日目の記事です。 私は株式会社メルカリに入社してから早6ヶ月が経ちましたが、日々の業務を通じて、さまざまな技術の素晴らしさに感銘を受けています。 その中でも特に驚くべきことは、大多数のiOSエンジニアが在籍している大規模なチームが、一つのプロジェクトに携わりながら、円滑に開発が進んでいることです。これまでに私は6つの企業で働いてきましたが、どの組織も最大でも5人のiOSエンジニアがアプリ開発に関与しており、プロジェクトファイルやXcodeのバージョンなどの問題がある場合でも、直接のコミュニケーションを通じて解決してきました。 果たして、メルカリは大規模なiOSエンジニアチームが円滑な開発を行うためにどのような取り組みをしているのでしょうか。私が感銘を受けた様々な
こんにちは。メルペイのPayment Coreチーム Engineering Managerの@abcdefujiです。 この記事は、Merpay Advent Calendar 2023 の13日目の記事です。 ダイバーシティを推進するメルカリグループ メルカリグループは、ダイバーシティ&インクルージョンに価値を置いており、多様なバックグラウンドを持つメンバーの経験・知識・意見を結集し、一人ひとりがバリューを発揮できる組織を目指しています。 参考: Diversity & Inclusion Statement 今回は私たちPayment Coreチームが、どのように言語の壁を乗り越えダイバーシティ&インクルージョンを推進しやすい環境を作ったかを紹介します。 Payment Coreチームについて 私たちPayment Coreチームの責務は「決済基盤としてプロダクトチームに決済機能を提
次のページ
このページを最初にブックマークしてみませんか?
『Gitのつくりかた Mercari Engineering Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く