Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
可用性No.1へ!「カラーミーショップ」のリ・アーキテクティング
Search
Kenichi Takahashi
December 07, 2022
Technology
0
64
可用性No.1へ!「カラーミーショップ」のリ・アーキテクティング
2019年から2022年末までに、カラーミーショップの可用性を向上させるために取り組んできたことのサマリを発表しました。
GMO Develovers Day 2022での発表資料です。
Kenichi Takahashi
December 07, 2022
Tweet
Share
More Decks by Kenichi Takahashi
See All by Kenichi Takahashi
Lv1,2の開発生産性を経営と繋ぐ
kenchan
3
1.5k
「トップ10プランナー」からはじめる目標設定
kenchan
5
2.9k
負債と言わないことが負債と向き合うこと
kenchan
5
3.3k
カラーミーショップは私たちが作っています
kenchan
0
1.3k
カラーミーショップ 2022 / COLORME SHOP 2022
kenchan
0
570
Amazon RDS移行のための 性能検証でわかった2つのこと
kenchan
3
3.6k
ポストコロナの商売を支えるカラーミーショップのアーキテクチャのこれから / The new architecture of COLORME SHOP in the Post-COVID-19 world
kenchan
2
1.9k
ペパボのエンジニアリングマネジメント一問一答 / engineering-management-q-and-a-in-gmo-pepabo
kenchan
7
2.4k
POStudy塾で学ぶワークショップデザインとファシリテーション / workshop-design-and-facilitation
kenchan
0
630
Other Decks in Technology
See All in Technology
タイミーのBraze活用 ~PUSH通知を活用したレコメンド~
ozeshun
2
120
ことばをそろえる / Bridging the Terminology Gap
amaotone
5
1k
HolidayJp.jl を作りました
mrkn
0
110
Discover Your Tailored Platform Strategy with Real-World Practice
hhiroshell
1
130
RAGHack: Kickoff and RAG 101
pamelafox
0
200
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
0
13k
Dojo 20240830 COBOL to Java on Z
ichikawayasuhisa
0
240
データウェアハウス製品のSnowflakeでPythonが動くって知ってました?
foursue
1
150
実践ジオフェンス 効率的に開発するために
navitimejapan
PRO
2
130
エンジニア向け会社紹介資料
caddi_eng
15
250k
Dive Deep in Cloud Run: Automatic Base Image update
aoto
PRO
0
900
エンジニアリングマネージャーが紐解く、事業視点から組織文化まで、包括的アプローチの探求 / READYFOR
9ma3r
13
2.2k
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
22
1.7k
Agile that works and the tools we love
rasmusluckow
327
20k
Web development in the modern age
philhawksworth
204
10k
[RailsConf 2023] Rails as a piece of cake
palkan
44
4.6k
The Cult of Friendly URLs
andyhume
76
5.9k
Code Reviewing Like a Champion
maltzj
518
39k
Atom: Resistance is Futile
akmur
261
25k
The Language of Interfaces
destraynor
153
23k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
24
2k
Making Projects Easy
brettharned
113
5.8k
Docker and Python
trallard
39
3k
Building Adaptive Systems
keathley
36
2.1k
Transcript
可用性No.1へ! 「カラーミーショップ」の リ・アーキテクティング GMOペパボ株式会社 技術責任者 兼 EC事業部シニアエンジニアリングリード 高橋 健一 (@kenchan)
今日のおはなし 「カラーミーショップ byGMOペパボ」では2020年より可用性 の向上に取り組んできました。 その結果、2022年1月から9月までの間、商品の閲覧から購入 完了までのフローにおける稼働率99.98%を達成しました。 本発表では、これを達成するために取り組んだシステムの改善 を4つ紹介します。
アジェンダ 1. 「カラーミーショップ by GMOペパボ」について 2. ECプラットフォームにおける可用性の重要性 3. 可用性向上のために取り組んだこと4選 4.
今後の展望
カラーミーショップについて
サービス開始は2005年 であり今年で18年目 カラーミーショップについて 利用いただいている店舗 は約40,000店舗 全店舗の流通合計額は 年間で約2070億円 ※ 数字は2021年末時点
アジェンダ 1. 「カラーミーショップ by GMOペパボ」について 2. ECプラットフォームの可用性の重要性 3. 可用性向上のために取り組んだこと4選 4.
今後の展望
ECプラットフォームとしての特性 マルチテナント ユーザのビジネス基盤 👨💼 🧑🏼💼 👩💼 👩🏾💼 リソースは共有する一方で、 テナント単位で論理的に独立 している。
ユーザにとってはビジネスの 場でありミッションクリティ カルなシステムである。
ECプラットフォームにおける障害の意味 システムの稼働率がビジネスに直結 • 1時間全停止すると約2300万の流通損失 • 年間流通2070億円 / 365日 / 24時間
≒ 2300万💸💸💸 • システム障害は3者にとっての不利益 • 消費者は欲しいものが手に入らない • ショップオーナーは商売ができない • GMOペパボは信頼を失なう
高い稼働率には価値がある ECビジネスを支える 技術的なチャレンジ マルチテナントアーキキテクチャでは リソースの共有と隔離の設計が肝。 全てを共有するのも、完全に隔離する のも、コストパフォーマンスが良いと は言えない。 稼働率の高さはお客様のビジネスを 支えるシステムの前提であると共に、
一般消費者・EC事業者・私達の3者 を笑顔にする武器でもある。
稼働率を定義して改善する • 改善の一歩目は指標を決めて計測すること • 「推測するな計測せよ」 • ECサイトで重要なのは商品の購入ができること • アプリケーション、データベース、決済システムなど実は複雑 商品ページの閲覧から購入完了までが
完了できること を改善するメトリクスと決定
アジェンダ 1. 「カラーミーショップ by GMOペパボ」について 2. ECプラットフォームの可用性の重要性 3. 可用性向上のために取り組んだこと4選 4.
今後の展望
アジェンダ 1. データベースサーバの可用性向上 2. アプリケーションのパフォーマンス改善 3. フィーチャートグルの導入 4. 待合室によるシステムの保護 可用性向上のために取り組んだこと
1. データベースの可用性向上 カラーミーショップの単一障害点 • カラーミーショップはDBで結合する複数のサブシステムで構成 • 2019年時点ではプライベートクラウド基盤上で運用 • 深夜にPrimary DBの障害が発生し数時間のシステムダウン
1. データベースの可用性向上 Amazon RDSへの移行を決断 AWS Direct Connectを利用した多段レプリケーションによる移行 ※「Amazon RDS移行のための 性能検証でわかった2つのこと」より
1. データベースの可用性向上 Amzon RDSへの移行の狙い • 高い可用性 • Multi-AZ環境ではSLA 99.95% •
オペレーションの構造化が可能 • 柔軟性は減るがトラブルや障害の対応手順を一般化可能
2. アプリケーションのパフォーマンス改善 パフォーマンス計測と改善 • 商品ページの表示から購入完了までに関わるアプリ ケーション全てにAPMを導入 • 「可用性向上プロジェクト」を立ち上げ、専任のメ ンバーでパフォーマンス改善を推進
2. アプリケーションのパフォーマンス改善 「レガシーWebアプリケーションの性能とコードの健全性をインクリメンタルに改善する」より
3. フィーチャートグルの導入 Testing in Productionの実践 • システムの規模が大きく複雑性が高いシステムでは、本番環境 でしか起こらない問題が発生する • データ量の違い
• サービス間の連携 • ハードウェア、ネットワークの違い • 本番環境において、ユーザに影響を出さずにテストすることで 安全にリリースする
3. フィーチャートグルの導入 「切り取り方を工夫してアプリケーションを漸進的に改善する」より
4. 待合室によるシステムの保護 システムの限界を超えるアクセスの発生 • 限定・予告販売等でのアクセスの急増 • 自動購入BOTによる大量のアクセス • 時期などをプラットフォーム側がコントロールするのが困難 •
スケールアウトが間に合わない場合が多い 対応が困難な場合が多い
4. 待合室によるシステムの保護 https://ten-snapon.com/archives/2701 https://shop-pro.jp/news/release-waiting-room/ システムを守りつつ機会損失を減らす
まとめ 私たちが可用性向上のために取り組んできたこと 1. Amazon RDS移行によるデータベースサーバの可用性向上 2. アプリケーションのパフォーマンス改善 3. フィーチャートグルによる安全なリリースフローの確立 4.
突発的なアクセス急増からシステムを守るWaiting Roomの導入
アジェンダ 1. 「カラーミーショップbyGMOペパボ」について 2. ECプラットフォームの可用性の重要性 3. 可用性向上のために取り組んだこと4選 4. 今後の展望
今後の展望 SREのプラクティスを取り入れた開発 • エラーバジェットの運用 • 高い可用性を確保したまま、魅力的な機能の開発・技術的な チャレンジを行う より柔軟にリソースを管理できるアーキテクチャへ • Shopsetアーキテクチャの本番投入
今日のおはなし 「カラーミーショップ byGMOペパボ」では2020年より可用性 の向上に取り組んできました。 その結果、2022年1月から9月までの間、商品の閲覧から購入 完了までのフローにおける稼働率99.98%を達成しました。 本発表では、これを達成するために取り組んだシステムの改善 を4つ紹介しました。
No.1 ECプラットフォームを一緒に作りましょう! https://recruit.pepabo.com/