Best Practices of Scale-up and non-stop for Legacy System~Challenge of Rakuten Ichiba
Vol.01 Feb/26/2013Noboru OchiaiJapan Ichiba SectionRakuten Ichiba Development Department, Rakuten Inc.http://www.rakuten.co.jp/
2
Who are we?
Noboru Ochiai Japan Ichiba Section
Rakuten Ichiba Development Dept.
Rakuten, Inc.
https://www.facebook.com/imonikai→Let’s join it!! 11/16(Sun)
3
Challenge for out of Legacy System
Challenging!!
4
Rakuten’s Business Eco-System
Rakuten IDMembership
Database
・ Hotels and Facilities・ Air Tickets・ Dynamic Packages
・ Stocks・ Bonds・ Trust Founds・ FX
・ Advertising・ Streaming ・ Downloading・ Recruitment・ Marriage
・ Credit Card
BusinessApplicationBusiness
ApplicationTravel
Business
BusinessApplicationBusiness
Application
Securities
BusinessBusiness
ApplicationBusiness
ApplicationTelecommunications
Business
BusinessApplicationBusiness
Application
Portal/Media
Business
Media
BusinessApplicationBusiness
ApplicationCredit and
Payment Business
BusinessApplicationBusiness
Application
Banking
Business
・ Payment・ Consumer Loan
Various Services can be used by one-stop place through the Internet
Today’s target
・ Fixed IP Telephony・ Mobile IP Telephony
E-Commerce
Business
・ Shopping Mall・ Auction
5
Scale of Rakuten Ichiba
Merchants : 42,000+
Items : 1.7 billion +
Registered Members : 78 mil +
Gross Merchant Sales :
1.1tri. JPY ( 2013 ) ≒ 12.5 bil. USD
6
Rakuten Ichiba Service Overview
Merchant
Consumer html
RMS (Rakuten Merchandise System)– Applications for Merchant .– Applications for Consumer.
R-storefront
DB
R-Page R-Navigation
R-backoffice
DWH
GMS(Gross merchant sales)
Reporting
Data analyze forinternal
R-checkout
7
Rakuten’s Issue
But…SYSTEM
STRUCTURE…
Go to “become the No. 1 Internet services company in the world”
8
Problem of Our System
Application having complicated dependence..
9
Problem of Our System
System stops with once a month11times in a yearCall “Regular maintenance” (added oyastu)
10
Detail of our problem
R-backofficeR-storefront
InventoryDB
orderDB
Application
APPAPPAPP
ApplicationOrder api
APPAPP
Checkoutapi
View
LOGIC
DAO
LOGIC
DAO
synchronous process
Dependence logic
Application
LOGIC
DAO
LOGIC
DAO
View
synchronous processHigh load
Dependence logic
R-checkout
Synchronous at DB Heavy depend on
application High load DB
11
Resolve an issue ~step 1
R-backofficeR-storefront
InventoryDB
orderDB
Application
APPAPPAPP
ApplicationOrder api
APPAPP
Checkoutapi
View
LOGIC
DAO
LOGIC
DAO
synchronous process
Application
LOGIC
DAO
LOGIC
DAO
View
synchronous process
High load
Non stop Checkout
Dependence logic
Dependence logic
R-checkout
12
synchronous process
Detail of Resolve an issue ~step1
2PhaseCommit
APP
APP
APP
Application View
LOGIC
DAO
InventoryDB
OrderDB
APP
Application
State management
APP
UIApplication
APP
State management
Checkoutapi
Checkoutapi
InventoryDB
OrderDB
kvs solution
UIApplication
loosely-coupled logic
asynchronous process
LOGIC
DAO
Dependence logic
View
LOGIC
DAO
Before After
: Queue
13
Resolve an issue ~step 2
R-backofficeR-storefront
InventoryDB
orderDB
Application
APPAPPAPP
ApplicationOrder api
APPAPP
Checkoutapi
View
LOGIC
DAO
LOGIC
DAO
synchronous process
Application
LOGIC
DAO
View
synchronous process
High load
Easily Scale up at Backoffice
Dependence logic
R-checkoutkvs solution
14
Detail of Resolve an issue ~step2
synchronous process
APP
APP
ApplicationView
LOGIC
DAO
OrderDB
Orderapi
loosely-coupled logic
LOGIC
DAO
High load
many update order status
Complicated search conditions
APP
Checkoutapi
kvs solution
From checkout
APP
APP
ApplicationView
OrderDB
Orderapi
LOGIC
DAO
many update order status
Complicated search conditions
APP
Checkoutapi
kvs solution
From checkout
kvs solution
asynchronous process
Data cache
Decreaseload
Before After
15
Resolve an issue ~step 3
Realize 24/7
R-backofficeR-storefront
InventoryDB
orderDB
Application
APPAPPAPP
ApplicationOrder api
APPAPP
Checkoutapi
ViewLOGIC
DAO
synchronous process
Application
LOGIC
DAO
View
synchronous process
R-checkoutkvs solution
kvs solution
16
Detail of Resolve an issue ~step3
synchronous process
APP
Application
invetoryDB
APP
Checkoutapi
APP
UIApplication
APP
UIApplication
APP
Application
invetoryDB
APP
Checkoutapi
APP
UIApplication
APP
UIApplication
APP
Inventoryapi
kvs solution
created api for inventory update
asynchronous process
Before After
17
After Resolving our Problem
R-backofficeR-storefront
InventoryDB
orderDB
Application
APPAPPAPP
ApplicationOrder api
APPAPP
Checkoutapi
ViewLOGIC
DAO
Application
LOGIC
DAO
View
R-checkout
APP
inventoryapi
kvs solution
kvs solution
kvs solution
Asynchronous at DB Loosely-coupled
Logic Decrease load at DB
: Queue
5yearsFrom 2009 to 2013
18
Summary
Our system make possible to scale up easily,
so we can catch up with
business growth rapidly.
We had chosen coherence.
we can do system maintenance easily and easily modify/delete application dependencies.
To Improve a system..
Reduction
kvs solution =
19
Last message
Challenging!!
20
Thank you for your listening
Thank You
For Listening!!
Top Related