Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

About Me Akinori Izumi JOIN I joined Yahoo! JAPAN as a new graduate COMPANY HISTORY 2012 - Web frontend FOHJOFFS 2014 - Backend FOHJOFFS 2016 - System operator & Manager 2019 - App engineer & Manager 2019 - System general load manager CURRENT Head of development responsible for the native application LIKE Camp / Basketball

Slide 3

Slide 3 text

Introduction Super sales place a high load on the system. In this session, we will introduce the load measures and efforts related to loads on Yahoo! JAPAN Shopping App.

Slide 4

Slide 4 text

Agenda - About “Super PayPay Festival” - Comparison with server-side applications - Load balancing for Yahoo! JAPAN Shopping App - Prepare for the unexpected - Conclusion

Slide 5

Slide 5 text

Agenda - About “Super PayPay Festival” - Comparison with server-side applications - Load balancing for Yahoo! JAPAN Shopping App - Prepare for the unexpected - Conclusion

Slide 6

Slide 6 text

Super PayPay Festival? - What is Super PayPay Festival ? Large-scale campaign measures to be held simultaneously offline and online You can also save at Yahoo! JAPAN Shopping - Preparedness for system load Increased load on the system Countermeasures in cooperation with a team of load specialists Native apps are also covered

Slide 7

Slide 7 text

Currently being held in November 2022

Slide 8

Slide 8 text

Impact of Super Sale in App

Slide 9

Slide 9 text

Impact of Super Sale in App In the past, load has affected app functionality. Stopped major functions Major functions of the application were suspended with the start of the promotional event. Stopped top page Top page module could not be displayed due to high load. Stopped native app functions Native cart and order history could not be displayed due to high load

Slide 10

Slide 10 text

Agenda - About “Super PayPay Festival” - Comparison with server-side applications - Load balancing for Yahoo Shopping App - Prepare for the unexpected - Conclusion

Slide 11

Slide 11 text

Troubleshooting Comparison 4FSWFSTJEFBQQMJDBUJPO $MJFOUBQQMJDBUJPO Image: Aflo

Slide 12

Slide 12 text

Troubleshooting in server side application Image: Aflo

Slide 13

Slide 13 text

Frontend Server API Server Data Base Troubleshooting in server side application Access Request Request

Slide 14

Slide 14 text

.BTTBDDFTT Troubleshooting in server side application Frontend Server API Server Data Base

Slide 15

Slide 15 text

Troubleshooting in server side application Completed only on the server side Frontend Server API Server Data Base .BTTBDDFTT

Slide 16

Slide 16 text

Troubleshooting in client application Image: Aflo

Slide 17

Slide 17 text

API 4FSWFS Data Base Troubleshooting in client application /BUJWF"QQ Request Request

Slide 18

Slide 18 text

API 4FSWFS Data Base Troubleshooting in client application /BUJWF"QQ .BTTBDDFTT Request

Slide 19

Slide 19 text

API 4FSWFS Data Base /BUJWF"QQ × Troubleshooting in client application .BTTBDDFTT Request

Slide 20

Slide 20 text

API 4FSWFS Data Base /BUJWF"QQ Update required Submit Troubleshooting in client application .BTTBDDFTT Request

Slide 21

Slide 21 text

Troubleshooting in Yahoo! JAPAN Shopping App Failure notification Hiding modules Emergency release Access control by app × × ただいま障害が発生しています クーポン機能に障害が発生しています

Slide 22

Slide 22 text

Issues For Yahoo! JAPAN Shopping App - Update required Emergency release is not available Bugs will remain - App engineers will be on the sidelines Fewer means of app Request a server-side engineer

Slide 23

Slide 23 text

Agenda - About “Super PayPay Festival” - Comparison with server-side applications - Load balancing for Yahoo! JAPAN Shopping App - Prepare for the unexpected - Conclusion

Slide 24

Slide 24 text

API 4FSWFS Data Base Load balancing for Yahoo! JAPAN Shopping App "DDFTT"1*$BMM /BUJWF"QQ Focus on API communication load

Slide 25

Slide 25 text

API 4FSWFS Data Base Load balancing for Yahoo! JAPAN Shopping App /BUJWF"QQ External file API on-off .BTTBDDFTT

Slide 26

Slide 26 text

API 4FSWFS Data Base Load balancing for Yahoo! JAPAN Shopping App /BUJWF"QQ ᶃ3FBEJOHTFUUJOHWBMVF External file API on-off .BTTBDDFTT

Slide 27

Slide 27 text

API 4FSWFS Data Base Load balancing for Yahoo! JAPAN Shopping App /BUJWF"QQ ᶄ"1*DPNNVOJDBUJPOKVEHNFOU ᶃ3FBEJOHTFUUJOHWBMVF External file API on-off

Slide 28

Slide 28 text

API 4FSWFS Data Base Load balancing for Yahoo! JAPAN Shopping App ᶅ"DDFTT$POUSPM /BUJWF"QQ ᶄ"1*DPNNVOJDBUJPOKVEHNFOU ᶃ3FBEJOHTFUUJOHWBMVF External file API on-off Access control enabled on app

Slide 29

Slide 29 text

API 4FSWFS Data Base Load balancing for Yahoo! JAPAN Shopping App ᶅ"DDFTT$POUSPM /BUJWF"QQ ᶄ"1*DPNNVOJDBUJPOKVEHNFOU ᶃ3FBEJOHTFUUJOHWBMVF External file Request Frequency Access control enabled on app

Slide 30

Slide 30 text

API 4FSWFS Data Base Load balancing for Yahoo! JAPAN Shopping App ᶅ"DDFTT$POUSPM /BUJWF"QQ ᶄ"1*DPNNVOJDBUJPOKVEHNFOU ᶃ3FBEJOHTFUUJOHWBMVF External file API on-off Request Frequency App Developer

Slide 31

Slide 31 text

External File { "host": "apihost.yahooapis.jp", "children": [ { "path": "/api/path/hoge", "limit": 600, "emg": false }, { "path": "/api/path/fuga", "limit": 0, "emg": true } ] }, { "host": "apihost2.yahooapis.jp", - Simple json array • host • path • limit • For frequency caps • emg • For API switch - Multiple input

Slide 32

Slide 32 text

External File { "host": "apihost.yahooapis.jp", "children": [ { "path": "/api/path/hoge", "limit": 600, "emg": false }, { "path": "/api/path/fuga", "limit": 0, "emg": true } ] }, { "host": "apihost2.yahooapis.jp", - Simple json array • host • path • limit • For frequency caps • emg • For API switch - Multiple input

Slide 33

Slide 33 text

External File { "host": "apihost.yahooapis.jp", "children": [ { "path": "/api/path/hoge", "limit": 600, "emg": false }, { "path": "/api/path/fuga", "limit": 0, "emg": true } ] }, { "host": "apihost2.yahooapis.jp", - Simple json array • host • path • limit • For frequency caps • emg • For API switch - Multiple input

Slide 34

Slide 34 text

External File { "host": "apihost.yahooapis.jp", "children": [ { "path": "/api/path/hoge", "limit": 600, "emg": false }, { "path": "/api/path/fuga", "limit": 0, "emg": true } ] }, { "host": "apihost2.yahooapis.jp", - Simple json array • host • path • limit • For frequency caps • emg • For API switch - Multiple input

Slide 35

Slide 35 text

What we have achieved Switching APIs Remotely Introduction of Circuit Breaker Benefit to Server Side Engineers

Slide 36

Slide 36 text

Agenda - About “Super PayPay Festival” - Comparison with server-side applications - Load balancing for Yahoo! JAPAN Shopping App - Prepare for the unexpected - Conclusion

Slide 37

Slide 37 text

Unexpected load Critical Bugs Prepare for the unexpected Still, trouble will occur

Slide 38

Slide 38 text

Display in webview Still, trouble will occur For top page Has the ability to open pages in webview

Slide 39

Slide 39 text

Still, trouble will occur For item detail page Automatically opens a webview normal abnormality

Slide 40

Slide 40 text

Modules Durability Countermeasure Campaign High No problem Ranking High /PQSPCMFN CVUVTFDBDIF Order History Low Simplified view View History Low Switch to another module Coupon Low Change to static module Still, trouble will occur Always take load measures

Slide 41

Slide 41 text

Agenda - About “Super PayPay Festival” - Comparison with server-side applications - Load balancing for Yahoo! JAPAN Shopping App - Prepare for the unexpected - Conclusion

Slide 42

Slide 42 text

The mind of a Native App Engineers - App engineers also have to deal with load Apps are the first system users touch Consider the app means Image: Aflo

Slide 43

Slide 43 text

Image: Aflo - Remember to be aware of high loads Assume a high load Workaround Preparation The mind of a Native App Engineers

Slide 44

Slide 44 text

Image: Aflo - Need to understand Backend system It's not just about Apps knowledge Considering the optimal solution The mind of a Native App Engineers

Slide 45

Slide 45 text

Conclusion The mind of a native app engineers - App engineers also have to deal with load - Remember to be aware of high loads - Need to understand the Backend system We reduced the request over 10000 req/sec Image: Aflo

Slide 46

Slide 46 text

Thank you for listening