Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Tối ưu hóa hệ thống
30 triệu người dùng
IT Expert Club
CONTENT
1. Introduction
2. Solution
3. Caching
4. Asynchronous
5. Scale
6. Distributed
7. Profiling and Turning
1. Introduction
CTO of Ecomobi
Contact info:
• EMAIL: TUYENDV@ECOMOBI.COM
• MOBILE: (+84)904.554.112
• SKYPE: ITBACHKHOA
1. Introduction
Ecomobi is a CPA Network focus on SEA Market.
Main Flow
Daily Information
Affiliate Networks
• 1.5M+ DAU
• 2-3M CLICK
• 1TB TRANSFER
• USER: VN, ID, IN, BR...
Ads Networks
• 30M+...
Our Issues
• High Availability
• Minimize Response time
• Concurrency
• High Bandwidth
• International user
2. Our Solutions
• Measurement tools
• Select Services Provider
• Programming language
• Database
• Others
2. Measurement
• Analytics
• Quick or Slow
• Error or Accuracy
• Stable or Unstable
• Better or Worse
2. Measurement Tools - New
Relic
2. Measurement Tools - New Relic
Services Provider?
• Dedicated Server in Viet nam
• Private cloud
• Docker
• VPS Provider in Vietnamese
• Amazon Web Servi...
Programming language?
• PHP
• JAVA
• Erlang / Elixir
• Node JS / Golang
Database
• MySQL / MariaDB
• PostgreSQL
• MongoDB
• Cassandra / couchbase / Riak
• Redis / Memcache
• Elasticsearch
Message Queue
• RabbitMQ
• Redis
• Activemq / Zeromq
• Kafka
• Gearman (Job Server)
Other
• Caching
• Asynchronous
• Scale out
• Distributed
Our Stack
3.Caching
• In-memory / variable caching
• Cache size => minimize (why)
• Increasing Cache Hit / Cache Miss
• Cache Read t...
3.Caching: memory
function getInfoWithCache($id) {
static $cache_contents = array();
if (isset($cache_contents[$id])) {
re...
Caching - Minimize cache size
3.Caching - increasing cache hit
$candidates = Campaign for
• Active campaigns
• Allow Android 4.0.1
• Allow Vietnam
• Not...
Cache read through issue!!!
function getData($id)
{
$data = getDataFromCache($id);
if (!empty($data) {
return $data;
}
$da...
4. Asynchronous
• Send a external HTTP request
• Send a email
• Working with file
• Working with DB
• …
4. Asynchronous
• Decreasing Response time
• Deal with huge of request
4. Asynchronous - MQ
4. Asynchronous - MQ
while (true) {
$msg = getMessageQueue();
if (empty($msg)) {
sleep(1);
continue;
}
processMQ($msg);
if...
5.1 Web Application Scale
5.2 Database layer
6. Distributed
6. Distributed
6. CDN
7. Profiling
Toi uu hoa he thong 30 trieu nguoi dung
Upcoming SlideShare
Loading in …5
×

21

Share

Download to read offline

Toi uu hoa he thong 30 trieu nguoi dung

Download to read offline

ITEC - Tối ưu hóa hệ thống 30 triệu người dung - ngày 23/06/2016

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Toi uu hoa he thong 30 trieu nguoi dung

  1. 1. Tối ưu hóa hệ thống 30 triệu người dùng IT Expert Club
  2. 2. CONTENT 1. Introduction 2. Solution 3. Caching 4. Asynchronous 5. Scale 6. Distributed 7. Profiling and Turning
  3. 3. 1. Introduction CTO of Ecomobi Contact info: • EMAIL: TUYENDV@ECOMOBI.COM • MOBILE: (+84)904.554.112 • SKYPE: ITBACHKHOA
  4. 4. 1. Introduction Ecomobi is a CPA Network focus on SEA Market.
  5. 5. Main Flow
  6. 6. Daily Information Affiliate Networks • 1.5M+ DAU • 2-3M CLICK • 1TB TRANSFER • USER: VN, ID, IN, BR... Ads Networks • 30M+ USERS • 1M+ DAU • 40M+ ADS REQUEST • 70K+ RPM • USERS: VN, ID, IN, BR...
  7. 7. Our Issues • High Availability • Minimize Response time • Concurrency • High Bandwidth • International user
  8. 8. 2. Our Solutions • Measurement tools • Select Services Provider • Programming language • Database • Others
  9. 9. 2. Measurement • Analytics • Quick or Slow • Error or Accuracy • Stable or Unstable • Better or Worse
  10. 10. 2. Measurement Tools - New Relic
  11. 11. 2. Measurement Tools - New Relic
  12. 12. Services Provider? • Dedicated Server in Viet nam • Private cloud • Docker • VPS Provider in Vietnamese • Amazon Web Service • Digital Ocean / Linode • VPS in Local Provider
  13. 13. Programming language? • PHP • JAVA • Erlang / Elixir • Node JS / Golang
  14. 14. Database • MySQL / MariaDB • PostgreSQL • MongoDB • Cassandra / couchbase / Riak • Redis / Memcache • Elasticsearch
  15. 15. Message Queue • RabbitMQ • Redis • Activemq / Zeromq • Kafka • Gearman (Job Server)
  16. 16. Other • Caching • Asynchronous • Scale out • Distributed
  17. 17. Our Stack
  18. 18. 3.Caching • In-memory / variable caching • Cache size => minimize (why) • Increasing Cache Hit / Cache Miss • Cache Read through issue
  19. 19. 3.Caching: memory function getInfoWithCache($id) { static $cache_contents = array(); if (isset($cache_contents[$id])) { return $cache_contents[$id]; } $data = getInfoWithoutCache($id) $cache_contents[$id] = $data; return $data; }
  20. 20. Caching - Minimize cache size
  21. 21. 3.Caching - increasing cache hit $candidates = Campaign for • Active campaigns • Allow Android 4.0.1 • Allow Vietnam • Not gambling • CPI or CPC • IF CPC: PRICE > $0.03 • IF CPI: PRICE > $0.5 • Did not install this game / app … Candidates = Campaign for • Active Campaigns • Allow Vietnam Candidates = Filter(Candidates) • Allow Android 4.0.1 • Not gambling • CPC or CPC …
  22. 22. Cache read through issue!!! function getData($id) { $data = getDataFromCache($id); if (!empty($data) { return $data; } $data = getDataWithoutCache($id); setDataToCache($id, $data, $exprire_time); return $data; }
  23. 23. 4. Asynchronous • Send a external HTTP request • Send a email • Working with file • Working with DB • …
  24. 24. 4. Asynchronous • Decreasing Response time • Deal with huge of request
  25. 25. 4. Asynchronous - MQ
  26. 26. 4. Asynchronous - MQ while (true) { $msg = getMessageQueue(); if (empty($msg)) { sleep(1); continue; } processMQ($msg); if ($need_stop) { break; } }
  27. 27. 5.1 Web Application Scale
  28. 28. 5.2 Database layer
  29. 29. 6. Distributed
  30. 30. 6. Distributed
  31. 31. 6. CDN
  32. 32. 7. Profiling
  • DucHuu1

    Oct. 27, 2020
  • DuyNguyen954

    Aug. 27, 2020
  • UocPhamCong1

    Feb. 11, 2020
  • NguynMinH1

    Apr. 19, 2019
  • nhattieu

    Apr. 4, 2019
  • VINHQUANG43

    Oct. 18, 2018
  • vinhomn

    Jun. 26, 2017
  • ThangThien1

    Jul. 29, 2016
  • bkv1409

    Jul. 20, 2016
  • nguy3nm1nhvu0ng

    Jul. 20, 2016
  • TranThangTTV

    Jul. 8, 2016
  • khungbo33

    Jul. 4, 2016
  • ThanhD1

    Jul. 4, 2016
  • MaiChinh

    Jul. 4, 2016
  • iamlord

    Jul. 4, 2016
  • ritte1

    Jul. 4, 2016
  • NguynVitCng

    Jul. 3, 2016
  • ARSENALplanet

    Jul. 3, 2016
  • NhatAnh6

    Jun. 28, 2016
  • TheTruongTrong

    Jun. 24, 2016

ITEC - Tối ưu hóa hệ thống 30 triệu người dung - ngày 23/06/2016

Views

Total views

4,777

On Slideshare

0

From embeds

0

Number of embeds

5

Actions

Downloads

181

Shares

0

Comments

0

Likes

21

×