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

可用性No.1へ!「カラーミーショップ」のリ・アーキテクティング

 可用性No.1へ!「カラーミーショップ」のリ・アーキテクティング

2019年から2022年末までに、カラーミーショップの可用性を向上させるために取り組んできたことのサマリを発表しました。

GMO Develovers Day 2022での発表資料です。

Kenichi Takahashi

December 07, 2022
Tweet

More Decks by Kenichi Takahashi

Other Decks in Technology

Transcript

  1. 可用性No.1へ!
    「カラーミーショップ」の
    リ・アーキテクティング
    GMOペパボ株式会社
    技術責任者 兼 EC事業部シニアエンジニアリングリード
    高橋 健一 (@kenchan)

    View full-size slide

  2. 今日のおはなし
    「カラーミーショップ byGMOペパボ」では2020年より可用性
    の向上に取り組んできました。
    その結果、2022年1月から9月までの間、商品の閲覧から購入
    完了までのフローにおける稼働率99.98%を達成しました。
    本発表では、これを達成するために取り組んだシステムの改善
    を4つ紹介します。

    View full-size slide

  3. アジェンダ
    1. 「カラーミーショップ by GMOペパボ」について
    2. ECプラットフォームにおける可用性の重要性
    3. 可用性向上のために取り組んだこと4選
    4. 今後の展望

    View full-size slide

  4. カラーミーショップについて

    View full-size slide

  5. サービス開始は2005年
    であり今年で18年目
    カラーミーショップについて
    利用いただいている店舗
    は約40,000店舗
    全店舗の流通合計額は
    年間で約2070億円
    ※ 数字は2021年末時点

    View full-size slide

  6. アジェンダ
    1. 「カラーミーショップ by GMOペパボ」について
    2. ECプラットフォームの可用性の重要性
    3. 可用性向上のために取り組んだこと4選
    4. 今後の展望

    View full-size slide

  7. ECプラットフォームとしての特性
    マルチテナント ユーザのビジネス基盤
    👨‍💼
    🧑🏼‍💼
    👩‍💼
    👩🏾‍💼
    リソースは共有する一方で、
    テナント単位で論理的に独立
    している。
    ユーザにとってはビジネスの
    場でありミッションクリティ
    カルなシステムである。

    View full-size slide

  8. ECプラットフォームにおける障害の意味
    システムの稼働率がビジネスに直結
    • 1時間全停止すると約2300万の流通損失
    • 年間流通2070億円 / 365日 / 24時間 ≒ 2300万💸💸💸
    • システム障害は3者にとっての不利益
    • 消費者は欲しいものが手に入らない
    • ショップオーナーは商売ができない
    • GMOペパボは信頼を失なう

    View full-size slide

  9. 高い稼働率には価値がある
    ECビジネスを支える 技術的なチャレンジ
    マルチテナントアーキキテクチャでは
    リソースの共有と隔離の設計が肝。
    全てを共有するのも、完全に隔離する
    のも、コストパフォーマンスが良いと
    は言えない。
    稼働率の高さはお客様のビジネスを
    支えるシステムの前提であると共に、
    一般消費者・EC事業者・私達の3者
    を笑顔にする武器でもある。

    View full-size slide

  10. 稼働率を定義して改善する
    • 改善の一歩目は指標を決めて計測すること
    • 「推測するな計測せよ」
    • ECサイトで重要なのは商品の購入ができること
    • アプリケーション、データベース、決済システムなど実は複雑
    商品ページの閲覧から購入完了までが
    完了できること
    を改善するメトリクスと決定

    View full-size slide

  11. アジェンダ
    1. 「カラーミーショップ by GMOペパボ」について
    2. ECプラットフォームの可用性の重要性
    3. 可用性向上のために取り組んだこと4選
    4. 今後の展望

    View full-size slide

  12. アジェンダ
    1. データベースサーバの可用性向上
    2. アプリケーションのパフォーマンス改善
    3. フィーチャートグルの導入
    4. 待合室によるシステムの保護
    可用性向上のために取り組んだこと

    View full-size slide

  13. 1. データベースの可用性向上
    カラーミーショップの単一障害点
    • カラーミーショップはDBで結合する複数のサブシステムで構成
    • 2019年時点ではプライベートクラウド基盤上で運用
    • 深夜にPrimary DBの障害が発生し数時間のシステムダウン

    View full-size slide

  14. 1. データベースの可用性向上
    Amazon RDSへの移行を決断
    AWS Direct Connectを利用した多段レプリケーションによる移行
    ※「Amazon RDS移行のための 性能検証でわかった2つのこと」より

    View full-size slide

  15. 1. データベースの可用性向上
    Amzon RDSへの移行の狙い
    • 高い可用性
    • Multi-AZ環境ではSLA 99.95%
    • オペレーションの構造化が可能
    • 柔軟性は減るがトラブルや障害の対応手順を一般化可能

    View full-size slide

  16. 2. アプリケーションのパフォーマンス改善
    パフォーマンス計測と改善
    • 商品ページの表示から購入完了までに関わるアプリ
    ケーション全てにAPMを導入
    • 「可用性向上プロジェクト」を立ち上げ、専任のメ
    ンバーでパフォーマンス改善を推進

    View full-size slide

  17. 2. アプリケーションのパフォーマンス改善
    「レガシーWebアプリケーションの性能とコードの健全性をインクリメンタルに改善する」より

    View full-size slide

  18. 3. フィーチャートグルの導入
    Testing in Productionの実践
    • システムの規模が大きく複雑性が高いシステムでは、本番環境
    でしか起こらない問題が発生する
    • データ量の違い
    • サービス間の連携
    • ハードウェア、ネットワークの違い
    • 本番環境において、ユーザに影響を出さずにテストすることで
    安全にリリースする

    View full-size slide

  19. 3. フィーチャートグルの導入
    「切り取り方を工夫してアプリケーションを漸進的に改善する」より

    View full-size slide

  20. 4. 待合室によるシステムの保護
    システムの限界を超えるアクセスの発生
    • 限定・予告販売等でのアクセスの急増
    • 自動購入BOTによる大量のアクセス
    • 時期などをプラットフォーム側がコントロールするのが困難
    • スケールアウトが間に合わない場合が多い
    対応が困難な場合が多い

    View full-size slide

  21. 4. 待合室によるシステムの保護
    https://ten-snapon.com/archives/2701
    https://shop-pro.jp/news/release-waiting-room/
    システムを守りつつ機会損失を減らす

    View full-size slide

  22. まとめ
    私たちが可用性向上のために取り組んできたこと
    1. Amazon RDS移行によるデータベースサーバの可用性向上
    2. アプリケーションのパフォーマンス改善
    3. フィーチャートグルによる安全なリリースフローの確立
    4. 突発的なアクセス急増からシステムを守るWaiting Roomの導入

    View full-size slide

  23. アジェンダ
    1. 「カラーミーショップbyGMOペパボ」について
    2. ECプラットフォームの可用性の重要性
    3. 可用性向上のために取り組んだこと4選
    4. 今後の展望

    View full-size slide

  24. 今後の展望
    SREのプラクティスを取り入れた開発
    • エラーバジェットの運用
    • 高い可用性を確保したまま、魅力的な機能の開発・技術的な
    チャレンジを行う
    より柔軟にリソースを管理できるアーキテクチャへ
    • Shopsetアーキテクチャの本番投入

    View full-size slide

  25. 今日のおはなし
    「カラーミーショップ byGMOペパボ」では2020年より可用性
    の向上に取り組んできました。
    その結果、2022年1月から9月までの間、商品の閲覧から購入
    完了までのフローにおける稼働率99.98%を達成しました。
    本発表では、これを達成するために取り組んだシステムの改善
    を4つ紹介しました。

    View full-size slide

  26. No.1 ECプラットフォームを一緒に作りましょう!
    https://recruit.pepabo.com/

    View full-size slide