タグ

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

  • 回復性の高いMicroservicesアーキテクチャを支える技術 - Mercari Engineering Blog

    メルカリバックエンドエンジニアの@yagi5です。 Mercari Advent Calendar 2018の23日目を担当します。 モノリシックなシステムは、障害が発生するとシステムが全停止してしまうことが一般的です。 しかし、Microservicesアーキテクチャでは様々なテクニックを用いて、サービス全体が停止するような障害に対処することができます。 この記事では、Microservicesにおけるシステムの回復性を高めるための技術について書いていきます。 回復性とは、障害が起こらないことを意味しません。 高い回復性を備えたシステムは、障害が発生するということを前提に、システム全体のダウンを避け、データのロスが回避されるように設計されています。 Microservicesの世界では、システムは自律的に動作する複数のサブシステムによって構成されます。 ひとつのサービスに障害が発生しても

    回復性の高いMicroservicesアーキテクチャを支える技術 - Mercari Engineering Blog
  • GraphQL Client Architecture Recommendation 社外版 | メルカリエンジニアリング

    この記事は、Merpay Advent Calendar 2022 の15日目の記事です。 こんにちは。メルペイのvvakameです。 最近、社内向けにGraphQL Client Architecture Recommendationというドキュメントを書きました。社内のiOS/Android、そしてバックエンドのエンジニア向けにGraphQLをやるならこの辺りの条件を満たしておかないと恩恵を感じられなくなっちゃうかもよ、と伝えるためのものです。嬉しいことに、今までに100名弱の人たちがこのドキュメントを閲覧してくれたようです。 これをAdvent Calendarで公開するために、ちょっと調整したものがこの社外版です。 すでにGraphQLをやっているけどあまり便利じゃないな…なんでだろ?とか、これから導入したいんだけど何を気をつけるべきかな…と考える時の材料にしてください。 併せて、

    GraphQL Client Architecture Recommendation 社外版 | メルカリエンジニアリング
    usadamasa
    usadamasa 2022/12/15
  • メルカリWebのマイクロサービス化、その4年 | メルカリエンジニアリング

    Author: @urahiroshi, Engineering manager of Web Platform team 2022年8月4日、メルカリで “web-2” と呼ばれるサーバがシャットダウンされました。これはメルカリWeb版の開発に携わっているチームにとって、一つの区切りとなる出来事でした。 web-2はPHPで記述されたwebサーバで、2015年から https://www.mercari.com/jp/ 配下のコンテンツを配信していましたが、現在では複数のWebマイクロサービスがその機能を担っており、 https://www.mercari.com/jp/ 配下のページは後継となるWebマイクロサービスが配信するページへリダイレクトされています。 メルカリWebのマイクロサービス化に向けた開発が始まり、最終的にweb-2がシャットダウンされるまで、実に4年以上の期間がかか

    メルカリWebのマイクロサービス化、その4年 | メルカリエンジニアリング
  • GraphQLを導入する時に考えておいたほうが良いこと | メルカリエンジニアリング

    はじめに こんにちは、ソウゾウSoftware Engineerの@sue71です。連載:メルカリShops 開発の裏側 Vol.2の13日目を担当させていただきます。 以前メルカリメルカリShopsの技術スタックと、その選定理由でBFFの実装にGraphQLを採用していることをお伝えしました。メルカリShopsをリリースしてから約半年たった今、これまでを振り返ってGraphQLサーバーを実装する上での課題やあらかじめ考えておくと良い項目をまとめてみました。また、記事ではメルカリShopsでGraphQLの実装としてApolloを採用しているため、Apolloの利用が前提の話もいくつか混在しています。予めご容赦ください。 GraphQLの説明や、メルカリShopsの実装方法に関しては以前こちらの記事で紹介しています。こちらも是非ご覧ください。 パフォーマンス課題 GraphQLは、アプリ

    GraphQLを導入する時に考えておいたほうが良いこと | メルカリエンジニアリング
  • 決済サービスを閉じるときのやることリスト | メルカリエンジニアリング

    Merpay Advent Calendar 2020の20日目は、メルペイProduct EngineeringチームのVP of Engineeringを担当しているnozaqがお送りします。 2020年はメルペイEngineeringチームとして業務しながら、一方で年初からOrigami PayというQRコード決済サービスの提供終了に伴うシステム停止業務を計画・実行してきました。サービスの終わらせ方について詳しく説明されることは中々ないと思ったので、投稿では決済という外部影響が大きい種類のサービスを終了するにあたり、どのような検討がなされたのかを事例としてお伝えできればと思います。 取り組んだこと 決済サービスはお支払いを行う一般のお客さま・お支払いを受け付ける加盟店様・システム連携している金融機関様やパートナー様など多くのステークホルダーが存在します。また店頭でのお支払い方法をご

    決済サービスを閉じるときのやることリスト | メルカリエンジニアリング
  • 権限をQray -SREへの一時的な本番環境権限付与のしくみ- | メルカリエンジニアリング

    メルペイSREチームの @tjunです。この記事は、Merpay Tech Openness Month 2020 の19日目の記事です。 今日は、メルペイSREチームのオペレーションのために開発して利用している Qray(クレイ) というツールの話をします。 はじめに メルペイでは、Google Cloud Platform(以下GCP)を利用してサービスを構築し動かしています。 GCPには Cloud Identity and Access Management (IAM) という権限管理の仕組みがあります。IAMを適切に管理して、アカウントに最低限の権限を付与することがクラウドサービスを安全に利用するためには必要なことです。これはSREが持つ番環境に対する権限についても同様で、できるだけ番環境に対する権限を持たないようにしておきたいのですが、障害対応など番環境でのオペレーション

    権限をQray -SREへの一時的な本番環境権限付与のしくみ- | メルカリエンジニアリング
  • Mercari Microservices Platform における Terraform 0.12 対応 | メルカリエンジニアリング

    Platform Group, Platform Infra Team の @dtan4 です。 現在メルカリ/メルペイのマイクロサービス基盤 (Microservices Platform) では、様々なクラウドリソース・SaaS を開発者に提供しています。これらのリソースを宣言的に管理するための手段として HashiCorp Terraform を利用しており、数百のマイクロサービスのインフラが Terraform によって管理されています。 1年以上前の話ですが、Terraform 0.12 がリリースされました。昨年後半に、我々が管理している Terraform リポジトリにおいて Terraform 0.12 対応作業を行いました。記事では、我々の環境においてどのように Terraform 0.12 対応作業を行ったかについて説明します。 Terraform 0.12 対応の動

    Mercari Microservices Platform における Terraform 0.12 対応 | メルカリエンジニアリング
  • 運用練度を高め本番リリースに臨むためのアプローチ | メルカリエンジニアリング

    はじめに こんにちは、メルペイのバックエンドエンジニアの cowsys です。 「どうすれば決済サービスで必要となる最高レベルの運用練度を有することができるのか」 メルペイという決済サービスを開発/運用するにあたって、向き合わざるを得ないテーマの1つです。 今回このテーマにあらためて向き合い、目指す運用練度に近づけた手応えを持てたので詳細についてお伝えしたいと思います。 取り組みの経緯 メルペイをリリースしてから1年がたち、新しいmicroserviceの開発をしています。 開発に取りかかるにあたって、新たに取り組むべきテーマを探していました。テーマを探すにあたって、まずはこれまでの、メルペイローンチ前の開発に目を向け、当時の課題を振り返ってみました。 メルペイリリース前に直面していた最大の課題。それは「どうすれば決済サービスで必要となる最高レベルの運用練度を有することができるのか」という

    運用練度を高め本番リリースに臨むためのアプローチ | メルカリエンジニアリング
    usadamasa
    usadamasa 2020/08/24
  • Mercari Microservices PlatformにおけるKubernetes Cluster移行 | メルカリエンジニアリング

    Microservices Platform Teamの@deeeeeeetと@dragon3です. Microservices Platform TeamではGoogle Kubernetes Engine(GKE)をメインのコンポーネントとして利用し,その上にメルカリとメルペイのMicroservicesを動かすための基盤を構築しています.メルカリのMicroservices化のプロジェクト自体は2年ほど前から始めており,GKEも当時に構築したものを今日まで運用し続けてきました. この2年間でGKEからは多くの機能がリリースされました.その中のほとんどはそのまま有効にすることができますが,中にはClusterを作り直す必要があるものもあります.例えばRoutes-based ClusterをVPC-native Clusterに,Zonal ClusterをRegional Clust

    Mercari Microservices PlatformにおけるKubernetes Cluster移行 | メルカリエンジニアリング
  • ポーランドで行われた海外カンファレンス「Agile & Automation Days 2019」に登壇しました! | メルカリエンジニアリング

    ポーランドで行われた海外カンファレンス「Agile & Automation Days 2019」に登壇しました! メルカリで QA Automation Engineer をしている 根 征 です。 先日 10/28~29 にポーランド・グダニスクで行われた海外カンファレンス「Agile & Automation Days 2019」にスピーカーとして登壇しました。 今回はその際の登壇内容や、参加した感想など紹介したいと思います。 Agile & Automation Days 2019 について 登壇内容について 他のセッションを聞いて 〜品質の「特性」と「責任」の変化〜 登壇しての感想、おわりに Agile & Automation Days 2019 について Agile & Automation Days は 2016年から毎年ポーランドで行われている主にテストエンジニア・テス

    ポーランドで行われた海外カンファレンス「Agile & Automation Days 2019」に登壇しました! | メルカリエンジニアリング
    usadamasa
    usadamasa 2019/11/23
    “Speed to market、つまりマーケットにいかに速くリリースできるかも品質の特性として重要であり、 スピードと品質は相反するものではない と主張していました。”
  • バッチプログラムの運用と監視について検討しよう | メルカリエンジニアリング

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

    バッチプログラムの運用と監視について検討しよう | メルカリエンジニアリング
    usadamasa
    usadamasa 2019/04/17
    "まず、「開始」の監視は、最も難しいものです。なぜなら、開始のイベント自体が発生しないと、何も通知は起こらず、誰も気づけないからです。"
  • 1