Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

マルチテナンシーの3段階のレベル 1. クラウド内での単純な仮想化により、ハードウェアのみを共有 2. 1 つのアプリケーションで、テナントごとに異なるデータ ベースを使用 3. 1 つのアプリケーションでデータベースを共有 (最も効率的な 真のマルチテナンシー) Web アプリケーションをマルチテナント型 SaaS ソリューションに変換する https://www.ibm.com/developerworks/jp/cloud/library/cl-multitenantsaas/ 課題はあるものの カラーミーショップは レベル3に近い形をとっています

Slide 11

Slide 11 text

DBを共有する複数のサブシステム

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

耐障害性・可用性の向上への取り組み ● ProxySQLを用いた負荷分散とフェイルオーバーの実現 ○ クエリログ取得も兼ねて導入済 ● パブリッククラウドを活用したハイブリッドクラウド構成へ ○ 検討中!

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

ショップ単位での独立性の向上

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

[まとめ] 課題と取り組んでいること ● データベースの耐障害性・可用性の向上 ○ ハイブリッドクラウドによる可用性の確保を検討 ● サブシステムの拡張性の向上 ○ コンテナ化とk8sによる拡張性の確保を進行中 ● ショップ単位での独立性の向上 ○ 特定のショップの負荷を全体に波及させないアーキテク チャを検討中

Slide 25

Slide 25 text

終わりに

Slide 26

Slide 26 text

今日のまとめ ● コロナ禍におけるカラーミーショップを取り巻く状況 ○ 消費行動の変化でネットショップの重要性は高まっている ● カラーミーショップの現在のアーキテクチャ ○ DBを共有するマルチテナントウェブアプリケーションである ● ポストコロナの商売を支えるために取り組んでいること ○ データベースの可用性・耐障害性の向上 ○ サブシステムの拡張性の向上 ○ ショップ単位での独立性の向上

Slide 27

Slide 27 text

ポストコロナの商売を支える カラーミーショップのアーキテクチャの これから を一緒に作りましょう