ペパボ EC テックカンファレンス - EC サイトの開発の裏側大公開 https://pepabo.connpass.com/event/179445/ にて発表した、カラーミーショップが現在取り組んでいるアーキテクチャの改善についての資料です。
ポストコロナの商売を支えるカラーミーショップのアーキテクチャのこれからEC事業部 チーフテクニカルリード高橋 健一 (@kenchan)
View Slide
今日お話しすること● コロナ禍におけるカラーミーショップを取り巻く状況● カラーミーショップの現在のアーキテクチャ● ポストコロナの商売を支えるために取り組んでいること
コロナ禍におけるカラーミーショップを取り巻く状況
コロナ禍における流通額と申込数の変化カラーミーショップ全体の流通額は前年比1.7倍2020-04以降の新規申込数は大きく増加※「カラーミーショップ」の流通額が4月に引き続き好調 5月流通額が前年同月比1.7倍にhttps://pepabo.com/news/press/202006181600
● 一般消費者○ ネットショップを利用する機会の増加● ショップオーナー○ ネットショップの重要性の高まり新しい生活様式とネットショップ運営
ネットショップの重要性が高まっているこの状況において、ショップ運営が不可能になる障害を何度か起こしてしまい、申し訳ありませんでした。
[まとめ] カラーミーショップを取り巻く状況● ネットショップの流通額の増加● 新規ネットショップ開設数の増加ショップ運営におけるネットショップの重要性が増し、より広く、大きな影響を与えられるようになった。
カラーミーショップの現在のアーキテクチャ
マルチテナントウェブアプリケーション
マルチテナンシーの3段階のレベル1. クラウド内での単純な仮想化により、ハードウェアのみを共有2. 1 つのアプリケーションで、テナントごとに異なるデータベースを使用3. 1 つのアプリケーションでデータベースを共有 (最も効率的な真のマルチテナンシー)Web アプリケーションをマルチテナント型 SaaS ソリューションに変換するhttps://www.ibm.com/developerworks/jp/cloud/library/cl-multitenantsaas/課題はあるもののカラーミーショップはレベル3に近い形をとっています
DBを共有する複数のサブシステム
[まとめ] カラーミーショップのアーキテクチャ①マルチテナントウェブアプリケーションである②DBを共有した複数のサブシステムで構築されている
ポストコロナの商売を支えるために取り組んでいること
現在取り組んでいるアーキテクチャの改善● データベースの耐障害性・可用性の向上● サブシステムの拡張性の向上● ショップ単位での独立性の向上
データベースの耐障害性・可用性の向上単一障害点
カラーミーショップのデータベースの現状● プライベートクラウド基盤Nyah上のVMで稼働● ディスク上のデータ容量は700GB● 書き込み用が1台、読み込み用のレプリケーションが複数台○ 書き込み用のDBはピーク時で20,000クエリ/分○ 読み込み用のDBはピーク時で1台あたり900,000クエリ/分
耐障害性・可用性の向上への取り組み● ProxySQLを用いた負荷分散とフェイルオーバーの実現○ クエリログ取得も兼ねて導入済● パブリッククラウドを活用したハイブリッドクラウド構成へ○ 検討中!
サブシステムの拡張性の向上一定のスケーラビリティは確保できているが改善の余地あり
サブシステムの拡張性の向上への取り組み● アプリケーションの運用をVMからコンテナベースに変更● コンテナオーケストレーションシステムを活用した拡張性の向上へ実録!CloudNativeを 目指した230日 / cloud-native-days-tokyo-2019https://speakerdeck.com/takaishi/cloud-native-days-tokyo-2019
ショップ単位での独立性の向上
ショップ単位での独立性の向上突発的なアクセス増加などシステムのキャパシティを超えたときに、全てのショップに障害が波及しまう場合がある
ショップ単位での独立性の向上への取り組みショップクラスタA ショップクラスタB1つまたは複数のショップによってクラスタを構成し、クラスタ毎にキャパシティプランニングすることで障害の波及を食い止める
ショップ単位での独立性の向上への取り組み● アクセスが集中する可能性のあるショップをあらかじめ分離○ 「分離環境」という仕組みを本番投入済み● 全ショップを複数のクラスタに分離、またそれを動的に再配置○ 検討中!
[まとめ] 課題と取り組んでいること● データベースの耐障害性・可用性の向上○ ハイブリッドクラウドによる可用性の確保を検討● サブシステムの拡張性の向上○ コンテナ化とk8sによる拡張性の確保を進行中● ショップ単位での独立性の向上○ 特定のショップの負荷を全体に波及させないアーキテクチャを検討中
終わりに
今日のまとめ● コロナ禍におけるカラーミーショップを取り巻く状況○ 消費行動の変化でネットショップの重要性は高まっている● カラーミーショップの現在のアーキテクチャ○ DBを共有するマルチテナントウェブアプリケーションである● ポストコロナの商売を支えるために取り組んでいること○ データベースの可用性・耐障害性の向上○ サブシステムの拡張性の向上○ ショップ単位での独立性の向上
ポストコロナの商売を支えるカラーミーショップのアーキテクチャのこれから を一緒に作りましょう