Upgrade to Pro — share decks privately, control downloads, hide ads and more …

分散システムのデータ不整合に立ち向かうため気付けるようにした/confront-data-integrity

 分散システムのデータ不整合に立ち向かうため気付けるようにした/confront-data-integrity

引越しや庭木の剪定などの出張・訪問サービスのプラットフォーム「くらしのマーケット」を運営する、みんなのマーケット株式会社です。
当社ではマイクロサービスを採用しています。運用していく中での大敵であるデータ不整合に立ち向かう第一ステップとして仕組みを整え運用してきました。参考になれば幸いです。

## エントリー
全職種で積極採用中!下記リンクより応募ください!(カジュアル面談も歓迎)
https://www.minma.jp/recruit

「話を聞いてみたい」もOKです!
応募フォーム→https://herp.careers/v1/minma/2qUQhRIRUr0Y/apply

More Decks by みんなのマーケット株式会社/ Minma Inc.

Other Decks in Technology

Transcript

  1. 分散システムの

    データ不整合に立ち向かうため

    気付けるようにした

    みんなのマーケット株式会社

    エンジニア / 片山

    
2023-04-17

    View full-size slide

  2. 全体図
    1
    データ不整合を slack に通知する様な仕組みを整えました。

    問題を発見した際、チェック用のクエリを追加することで再発にいち早く気付けるようになりました。

    View full-size slide

  3. 目次
    2
    ● くらしのマーケットは分散システム
    ● 分散システムの最大の敵はデータ整合性の保証
    ● 重要度の高いデータ
    ● 不整合に気づけ無いのは NG
    ● データ整合性チェックを仕組み化
    ● 全体図
    ● 運用していて感じたこと
    ● みんなのマーケットの紹介

    View full-size slide

  4. くらしのマーケットはマイクロサービスを意識したアーキテクチャを採用しています。

    一つの処理を実行するだけでも、複数のサービスや非同期のワーカーが連携する分散システムです。

    くらしのマーケットは分散システム
    3

    View full-size slide

  5. 分散システムはモノリシックアプリケーションと比較すると可動部品や通信が非常に多いため、

    インフラ的な問題で処理が失敗しやすいです。

    分散システムの最大の敵はデータ整合性の保証
    4

    View full-size slide

  6. モノリシックアプリケーションでは単一のトランザクションにすることでアトミックに処理を行えます。

    分散システムではトランザクションをまとめることが非常に難しく、サービスを跨ぐデータ更新に失敗するとデータ不整合
    になる場合があります。

    分散システムの最大の敵はデータ整合性の保証
    5
    👆データ不整合発生 !!

    View full-size slide

  7. データ不整合はあってはいけませんが、破損しても影響がほとんどでないようなデータはあると思います。

    逆に、予約や決済に関わるような非常に重要なデータが破損した場合は、急いで修正する必要があります。

    重要度の高いデータ
    6

    View full-size slide

  8. 不整合は早く根本的な対策をすべきですが、開発リソースは有限なため後回しになってしまう場合があります。


    データの不整合はいつやってくるかわかりません。

    そんな中、現在不整合があるのか無いのかわからないのは最悪です。

    不整合に気づけ無いのは NG
    7

    View full-size slide

  9. 時間に追われている時でも、SQL を書くだけで簡単に整合性チェックを追加できる仕組みを整えました。

    これは定期的に不整合データを検索しslackへ通知するというシンプルなものです。

    データ整合性チェックを仕組み化
    8
    ※ 複数のDBに跨ったチェックは少し工夫が必要です(例えば、事前に1つのDBにデータを集めるなど)

    View full-size slide

  10. 全体図
    9
    データ不整合を slack に通知する様な仕組みを整えました。

    問題を発見した際、チェック用のクエリを追加することで再発にいち早く気付けるようになりました。

    View full-size slide

  11. 運用していて感じたこと
    データ不整合に立ち向かう第一歩としてチェック自動化の仕組みを作るのはかなり有効だと思います。

    これまで、1年以上運用してきた中でいくつか知見が得られました。


    ● slack へ通知することで過去の対応を検索しやすい

    ● slack への通知はチェック項目ごとにスレッドを分けると調査の際に非常に便利

    ● slack へ通知する量が多いと見切れてしまう。最初の方に不整合件数を表示しておくと増減が分かる

    ● 不整合データの通知は JSON などの形式が取り扱いやすい

    ● 不整合が解消されるまで毎日通知される様にすることで対応漏れが無くなる

    ● 根本的対策後もチェックを残しておくことで、対策の有効性の確認になる

    ● 分散システムでは正常時でも一時的に不整合に見える状態になるためリトライは必須

    ● 仕組みを本番環境から出来るだけ切り離すことで、気軽にチェックを追加できる

    10

    View full-size slide

  12. 書いた人
    11
    2020年 みんなのマーケットに新卒入社
    決済チームでバックエンドの開発や、 SRE としてサイトを安定的に動か
    すための取り組みをしています。
    片山
    エンジニア
    以降のスライドはみんなのマーケットの会社紹介になります!!

    View full-size slide

  13. 会社について
    12
    会社名 みんなのマーケット株式会社 Minma, Inc
    本社 東京都渋谷区道玄坂 1丁目10-5 渋谷プレイス 10F
    設立 2011年1月17日
    代表者 浜野 勇介
    従業員数 120名超(2021年10月末現在)
    事業内容 オンラインマーケットプレイス
    「くらしのマーケット」の開発と運営

    View full-size slide

  14. 私たちのプロダクト
    13
    生活の「困った」を解決できるプロが集まる
    プラットフォーム「くらしのマーケット」
    頼める出張サービスの種類
    事業者の数
    300種類以上!

    70,000事業者を突破!

    エアコンクリーニング、引越し、庭木剪定..などの生活関連サービス
    日本全国の事業者が登録、売上を伸ばしている

    View full-size slide

  15. 私たちのビジョン
    14
    正直者が馬鹿を見ない世界を作る

    テスト前に必死で勉強したのに、先輩から過去問をもらっていた友達が自分よりいい成績を取った…

    会社のことを思って地味な仕事も引き受けてきたのに、上司に気に入られている同期が昇進した…


    世の中では、不条理なことが起きます。

    でも、悪賢い人が得をして、正直な人が損をする世界なんて嫌です。


    江戸時代の思想家、石田梅岩は「二重の利を取り、甘き毒を喰ひ、自死するようなこと多かるべし」

    つまり、悪賢い者には必ず報いがあると説きました。

    さらに「実の商人は、先も立ち、我も立つことを思うなり」とも表し、

    まず相手の利害を優先し、その結果として自身も利益を得ることが商人の本文だと説きました。


    私たちは、先も立ち、我も立つ、正直な人が報われる世の中を作ります。


    View full-size slide

  16. 私たちのミッション
    「人と人」が関わるサービスを、

    安心して取引できる仕組みを提供する

    私たちは、くらしのマーケットを通じて、

    世の中のあらゆるサービスをインターネットで安心して取引できる仕組みを提供していきます。

    インターネットでモノを買う時、みんなが楽天市場やAmazonを利用するように、

    サービスを買う時は、みんながくらしのマーケットを利用してくれる…そんな世界を目指します。


    多くのベンチャー企業が、自社の成長をアピールしますが、いちばん重要なことは、

    その会社がその時に「どれだけ成長しているか」ではなく、その会社が今後「どこまで成長できるか」です。


    みんなのマーケットは巨大な市場に挑んでいます。私たちと一緒に、大きく成長していきましょう。

    15

    View full-size slide

  17. 社会情勢の影響
    事業は10年間継続して、成長している

    コロナ禍でも予約は伸び続けている 

    2020年4月の緊急事態宣言下では、一時は利用を控える動きも見られましたが、控える動き以上に
    Stay Homeの影響で、家で過ごす時間を快適するためのサービス利用が増加しています。 

    できてないことがたくさんある。まだない出張サービスも定義していく 

    現在は、事業成長の方法はわかっているが、人手が足りなく実行できていないことが多い状態で、今後の
    伸びしろは大きいです。また、すでに世の中にある出張サービスだけではなく、出張サービスにすると便
    利なものを私たちが出張サービスとして定義し、届けていくことも予定しています。 

    新型コロナウイルス 

    による影響

    長期の成長性

    16

    View full-size slide