ポストコロナの商売を支えるカラーミーショップのアーキテクチャのこれから / The new architecture of COLORME SHOP in the Post-COVID-19 world

ポストコロナの商売を支えるカラーミーショップのアーキテクチャのこれから / The new architecture of COLORME SHOP in the Post-COVID-19 world

ペパボ EC テックカンファレンス - EC サイトの開発の裏側大公開 https://pepabo.connpass.com/event/179445/ にて発表した、カラーミーショップが現在取り組んでいるアーキテクチャの改善についての資料です。

676954675cda206b7baae939a82a8ef4?s=128

Kenichi Takahashi

June 24, 2020
Tweet

Transcript

  1. ポストコロナの商売を支える カラーミーショップのアーキテクチャの これから EC事業部 チーフテクニカルリード 高橋 健一 (@kenchan)

  2. 今日お話しすること • コロナ禍におけるカラーミーショップを取り巻く状況 • カラーミーショップの現在のアーキテクチャ • ポストコロナの商売を支えるために取り組んでいること

  3. コロナ禍における カラーミーショップを取り巻く状況

  4. コロナ禍における流通額と申込数の変化 カラーミーショップ全体の 流通額は前年比1.7倍 2020-04以降の新規申込数は 大きく増加 ※「カラーミーショップ」の流通額が4月に引き続き好調 5月流通額が前年同月比1.7倍に https://pepabo.com/news/press/202006181600

  5. • 一般消費者 ◦ ネットショップを利用する機会の増加 • ショップオーナー ◦ ネットショップの重要性の高まり 新しい生活様式とネットショップ運営

  6. ネットショップの重要性が高まっているこの状況において、 ショップ運営が不可能になる障害を何度か起こしてしまい、 申し訳ありませんでした。

  7. [まとめ] カラーミーショップを取り巻く状況 • ネットショップの流通額の増加 • 新規ネットショップ開設数の増加 ショップ運営におけるネットショップの重要性が増し、 より広く、大きな影響を与えられるようになった。

  8. カラーミーショップの 現在のアーキテクチャ

  9. マルチテナントウェブアプリケーション

  10. マルチテナンシーの3段階のレベル 1. クラウド内での単純な仮想化により、ハードウェアのみを共有 2. 1 つのアプリケーションで、テナントごとに異なるデータ ベースを使用 3. 1 つのアプリケーションでデータベースを共有

    (最も効率的な 真のマルチテナンシー) Web アプリケーションをマルチテナント型 SaaS ソリューションに変換する https://www.ibm.com/developerworks/jp/cloud/library/cl-multitenantsaas/ 課題はあるものの カラーミーショップは レベル3に近い形をとっています
  11. DBを共有する複数のサブシステム

  12. [まとめ] カラーミーショップのアーキテクチャ ①マルチテナント ウェブアプリケーション である ②DBを共有した 複数のサブシステムで 構築されている

  13. ポストコロナの 商売を支えるために取り組んでいること

  14. 現在取り組んでいるアーキテクチャの改善 • データベースの耐障害性・可用性の向上 • サブシステムの拡張性の向上 • ショップ単位での独立性の向上

  15. データベースの耐障害性・可用性の向上 単一障害点

  16. カラーミーショップのデータベースの現状 • プライベートクラウド基盤Nyah上のVMで稼働 • ディスク上のデータ容量は700GB • 書き込み用が1台、読み込み用のレプリケーションが複数台 ◦ 書き込み用のDBはピーク時で20,000クエリ/分 ◦

    読み込み用のDBはピーク時で1台あたり900,000クエリ/分
  17. 耐障害性・可用性の向上への取り組み • ProxySQLを用いた負荷分散とフェイルオーバーの実現 ◦ クエリログ取得も兼ねて導入済 • パブリッククラウドを活用したハイブリッドクラウド構成へ ◦ 検討中!

  18. サブシステムの拡張性の向上 一定のスケーラビリティ は確保できているが改善 の余地あり

  19. サブシステムの拡張性の向上への取り組み • アプリケーションの運用をVMからコンテナベースに変更 • コンテナオーケストレーションシステムを活用した 拡張性の向上へ 実録!CloudNativeを 目指した230日 / cloud-native-days-tokyo-2019

    https://speakerdeck.com/takaishi/cloud-native-days-tokyo-2019
  20. ショップ単位での独立性の向上

  21. ショップ単位での独立性の向上 突発的なアクセス増加など システムのキャパシティを超えた ときに、全てのショップに障害が 波及しまう場合がある

  22. ショップ単位での独立性の向上への取り組み ショップクラスタA ショップクラスタB 1つまたは複数のショップによっ てクラスタを構成し、クラスタ毎 にキャパシティプランニングする ことで障害の波及を食い止める

  23. ショップ単位での独立性の向上への取り組み • アクセスが集中する可能性のあるショップをあらかじめ分離 ◦ 「分離環境」という仕組みを本番投入済み • 全ショップを複数のクラスタに分離、またそれを動的に再配置 ◦ 検討中!

  24. [まとめ] 課題と取り組んでいること • データベースの耐障害性・可用性の向上 ◦ ハイブリッドクラウドによる可用性の確保を検討 • サブシステムの拡張性の向上 ◦ コンテナ化とk8sによる拡張性の確保を進行中

    • ショップ単位での独立性の向上 ◦ 特定のショップの負荷を全体に波及させないアーキテク チャを検討中
  25. 終わりに

  26. 今日のまとめ • コロナ禍におけるカラーミーショップを取り巻く状況 ◦ 消費行動の変化でネットショップの重要性は高まっている • カラーミーショップの現在のアーキテクチャ ◦ DBを共有するマルチテナントウェブアプリケーションである •

    ポストコロナの商売を支えるために取り組んでいること ◦ データベースの可用性・耐障害性の向上 ◦ サブシステムの拡張性の向上 ◦ ショップ単位での独立性の向上
  27. ポストコロナの商売を支える カラーミーショップのアーキテクチャの これから を一緒に作りましょう