SlideShare ist ein Scribd-Unternehmen logo
1 von 70
Downloaden Sie, um offline zu lesen
USING NODEJS TO COUNT 30
BILLION REQUESTS PER DAY
#NINGJS2016
GUILLAUME VERBAL @DOWEIG
USING NODEJS TO COUNT 30 BILLION REQUESTS PER DAY
WHO WE ARE
▸ We are mainly an advertising company
▸ Doing many more !
▸ networks, data collection/analysis, web tech, app generation…
▸ 250 employees and counting, (100 tech people)
▸ Based in the center of the world (Beijing)
▸ I am:
▸ french, living in Beijing
▸ a software engineer (5 years) wannabe data scientist
▸ really into the blockchain
ANALYTICS
TABLE OF CONTENT
1 - WHY DO WE NEED ANALYTICS?
2 - WHAT IS AGGREGATION
3 - EXISTING SOLUTIONS
4 - DEMO TIME !
1 - WHY DO WE
NEED ANALYTICS?
BECAUSE ANALYTICS
ARE AWESOME!
WE JUST PUSHED
SOMETHING ONLINE
WE JUST PUSHED SOMETHING ONLINE
THE WORLD IS FULL OF QUESTIONS
▸ Is it crashing?
▸ Is it fast?
▸ Is our feature awesome yet?
▸ Are we famous yet?
▸ Are we rich yet?
WE JUST PUSHED SOMETHING ONLINE
OUR APP THROUGH THE NAKED EYE
WE JUST PUSHED SOMETHING ONLINE
OUR APP WITH ANALYTICS
WE JUST PUSHED SOMETHING ONLINE
OUR APP WITH ANALYTICS
WHY DO WE NEED
ANALYTICS?
BECAUSE ANALYTICS
ARE AWESOME!
QUALITY
ASSURANCE
QUALITY ASSURANCE
CROSS PLATFORM TESTING
WITH ANALYTICS
QUALITY ASSURANCE
WITH ANALYTICS
CLIENT
BROWSER
SERVER RESPONSE
REQUEST ACK
REQUEST
ACK
WHY DO WE NEED
ANALYTICS?
BECAUSE ANALYTICS
ARE AWESOME!
DATA DRIVEN?
BECAUSE ANALYTICS
ARE AWESOME!
2 - WHAT IS
AGGREGATION
WHAT IS AGGREGATION
LEARNING THROUGH EXAMPLE
WHAT IS AGGREGATION
CLIENT
BROWSER
SERVER
RESPONSE
REQUEST
LEARNING THROUGH EXAMPLE
WHAT IS AGGREGATION
CLIENT
BROWSER
SERVER
RESPONSE
REQUEST
LEARNING THROUGH EXAMPLE
WHAT IS AGGREGATION
id: 2,
browser: “IE”,
uri: “/login”,
timestamp: Date
id: 4,
browser: “IE”,
uri: “/”,
timestamp: Date
id: 1,
browser: “Safari”,
uri: “/”,
timestamp: Date
id: 3,
browser: “Chrome”,
uri: “/home”,
timestamp: Date
LEARNING THROUGH EXAMPLE CLIENT
BROWSER
SERVER
RESPONSE
REQUEST
WHAT IS AGGREGATION
id: 2,
browser: “IE”,
uri: “/login”,
timestamp: Date
id: 4,
browser: “IE”,
uri: “/”,
timestamp: Date
id: 1,
browser: “Safari”,
uri: “/”,
timestamp: Date
id: 3,
browser: “Chrome”,
uri: “/home”,
timestamp: Date
LEARNING THROUGH EXAMPLE CLIENT
BROWSER
SERVER
RESPONSE
REQUEST
WHAT IS AGGREGATION
AGGREGATION BUCKETS
id: 2,
browser: “IE”,
uri: “/login”,
timestamp: Date
id: 4,
browser: “IE”,
uri: “/”,
timestamp: Date
id: 1,
browser: “Safari”,
uri: “/”,
timestamp: Date
id: 3,
browser: “Chrome”,
uri: “/home”,
timestamp: Date
WHAT IS AGGREGATION
AGGREGATION BUCKETS
id: 2,
browser: “IE”,
uri: “/login”,
timestamp: Date
id: 4,
browser: “IE”,
uri: “/”,
timestamp: Date
id: 1,
browser: “Safari”,
uri: “/”,
timestamp: Date
id: 3,
browser: “Chrome”,
uri: “/home”,
timestamp: Date
SAFARI IE CHROME
WHAT IS AGGREGATION
AGGREGATION BUCKETS
id: 2,
browser: “IE”,
uri: “/login”,
timestamp: Date
id: 4,
browser: “IE”,
uri: “/”,
timestamp: Date
id: 1,
browser: “Safari”,
uri: “/”,
timestamp: Date
id: 3,
browser: “Chrome”,
uri: “/home”,
timestamp: Date
SAFARI IE CHROME
WHAT IS AGGREGATION
AGGREGATION BUCKETS
id: 2,
browser: “IE”,
uri: “/login”,
timestamp: Date
id: 4,
browser: “IE”,
uri: “/”,
timestamp: Date
id: 1,
browser: “Safari”,
uri: “/”,
timestamp: Date
id: 3,
browser: “Chrome”,
uri: “/home”,
timestamp: Date
SAFARI IE CHROME
1
WHAT IS AGGREGATION
AGGREGATION BUCKETS
id: 2,
browser: “IE”,
uri: “/login”,
timestamp: Date
id: 4,
browser: “IE”,
uri: “/”,
timestamp: Date
id: 1,
browser: “Safari”,
uri: “/”,
timestamp: Date
id: 3,
browser: “Chrome”,
uri: “/home”,
timestamp: Date
SAFARI IE CHROME
1 2
WHAT IS AGGREGATION
AGGREGATION BUCKETS
id: 2,
browser: “IE”,
uri: “/login”,
timestamp: Date
id: 4,
browser: “IE”,
uri: “/”,
timestamp: Date
id: 1,
browser: “Safari”,
uri: “/”,
timestamp: Date
id: 3,
browser: “Chrome”,
uri: “/home”,
timestamp: Date
SAFARI IE CHROME
1 2 1
WHAT IS AGGREGATION
AGGREGATION RESPONSE
“Safari”: 1,
“IE”: 2,
“Chrome”: 1
WHAT IS AGGREGATION
AGGREGATION RESPONSE
“Safari”: 1,
“IE”: 2,
“Chrome”: 1
3 - EXISTING
SOLUTIONS
STATSD
ELK
GOYOO STACK (SEK)
STATSD
STATSD
BASIC CONCEPTS
▸ Our app will send some specialized logs to statsd
▸ Statsd will aggregate the logs and send them to the database regularly
STATSD
BASIC ARCHITECTURE
MY APP
STATSD GRAPHITEWRITE
STATSD
BASIC ARCHITECTURE
MY APP
STATSD GRAPHITEWRITE
IT’SFAST
ELK
ELASTICSEARCH
LOGSTASH
KIBANA
ELK
ELK
BASIC CONCEPTS
▸ Our app will send every log to elastic search (using logstash)
▸ We will use kibana to send aggregation queries to elastic search.
▸ Kibana will make the aggregation response very visual
ELK
BASIC ARCHITECTURE
MY APP
LOG STASH
KIBANA
READ
ELASTIC
SEARCH
ELK
BASIC ARCHITECTURE
MY APP
LOG STASH
KIBANA
READ
IT’SSEXY
ELASTIC
SEARCH
GOYOO STACK
SEK
STATSD
ELASTICSEARCH
KIBANA
SEK
ELK
BASIC ARCHITECTURE
MY APP
STATSD WRITE ELASTIC
SEARCH
KIBANA
READ
ELK
BASIC ARCHITECTURE
MY APP
STATSD WRITE ELASTIC
SEARCH
KIBANA
READ
IT’SFAST
ELK
BASIC ARCHITECTURE
MY APP
STATSD WRITE ELASTIC
SEARCH
KIBANA
READ
IT’SSEXY
IT’SFAST
ELK
BASIC ARCHITECTURE
MY APP
STATSD WRITE ELASTIC
SEARCH
KIBANA
READ
ELK
BASIC ARCHITECTURE
MY APP
STATSD WRITE ELASTIC
SEARCH
KIBANA
READ
ELK
BASIC ARCHITECTURE
MY APP
STATSD WRITE ELASTIC
SEARCH
KIBANA
READ
ELK
BASIC ARCHITECTURE
MY APP
STATSD WRITE ELASTIC
SEARCH
KIBANA
READ
4 - DEMO TIME
HTTP REQUEST
HEADERS…
ELK
BASIC ARCHITECTURE
MY APP
STATSD WRITE ELASTIC
SEARCH
KIBANA
READ
Docker
WHY DO WE NEED
ANALYTICS ?
THANK YOU !
THANK YOU !
LET’S KEEP IN TOUCH
▸ Give us a star !
▸ github.com/Goyoo/ningjs
▸ Wechat, Github and Twitter:
▸ @Doweig
QR CODE

Weitere ähnliche Inhalte

Ähnlich wie using nodejs to count 30 billion requests per day

Crypto Night at CSUS - Bug Bounties
Crypto Night at CSUS - Bug Bounties Crypto Night at CSUS - Bug Bounties
Crypto Night at CSUS - Bug Bounties Behrouz Sadeghipour
 
Bug Bounty Career.pdf
Bug Bounty Career.pdfBug Bounty Career.pdf
Bug Bounty Career.pdfVishal318796
 
Semantic Optimization with Structured Data - SMX Munich
Semantic Optimization with Structured Data - SMX MunichSemantic Optimization with Structured Data - SMX Munich
Semantic Optimization with Structured Data - SMX MunichCraig Bradford
 
Virtual Collaboration
Virtual CollaborationVirtual Collaboration
Virtual Collaborationraanan
 
How Open Source / Open Technology Could Help On Your Project
How Open Source / Open Technology Could Help On Your ProjectHow Open Source / Open Technology Could Help On Your Project
How Open Source / Open Technology Could Help On Your ProjectWan Leung Wong
 
I´m not a number, I´m a free man
I´m not a number, I´m a free manI´m not a number, I´m a free man
I´m not a number, I´m a free manvicenteDiaz_KL
 
Programming for Non-programmers PFNP @ Razorfish
Programming for Non-programmers PFNP @ Razorfish Programming for Non-programmers PFNP @ Razorfish
Programming for Non-programmers PFNP @ Razorfish Chris Castiglione
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoChristian Heilmann
 
Search on Mobile - Mobile Copenhagen 2012
Search on Mobile - Mobile Copenhagen 2012Search on Mobile - Mobile Copenhagen 2012
Search on Mobile - Mobile Copenhagen 2012Jon Arne Sæterås
 
Programming for Non-Programmers - SXSW Vegas 2014
Programming for Non-Programmers - SXSW Vegas 2014Programming for Non-Programmers - SXSW Vegas 2014
Programming for Non-Programmers - SXSW Vegas 2014Chris Castiglione
 
Creating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from TwitterCreating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from TwitterChris Aniszczyk
 
Content and seo for Tulos by Gianluca Fiorelli
Content and seo for Tulos by Gianluca FiorelliContent and seo for Tulos by Gianluca Fiorelli
Content and seo for Tulos by Gianluca FiorelliTulos Helsinki Oy
 
Goodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdateGoodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdatePatrick Chanezon
 
Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015Christian Heilmann
 
No more excuses! Let's build beautiful things. #codemotion Rome
No  more excuses! Let's build beautiful things. #codemotion Rome No  more excuses! Let's build beautiful things. #codemotion Rome
No more excuses! Let's build beautiful things. #codemotion Rome Christian Heilmann
 
CSW2017 Geshev+Miller logic bug hunting in chrome on android
CSW2017 Geshev+Miller logic bug hunting in chrome on androidCSW2017 Geshev+Miller logic bug hunting in chrome on android
CSW2017 Geshev+Miller logic bug hunting in chrome on androidCanSecWest
 
What an "RP" Wants
What an "RP" WantsWhat an "RP" Wants
What an "RP" WantsJohn McCrea
 

Ähnlich wie using nodejs to count 30 billion requests per day (20)

Crypto Night at CSUS - Bug Bounties
Crypto Night at CSUS - Bug Bounties Crypto Night at CSUS - Bug Bounties
Crypto Night at CSUS - Bug Bounties
 
Bug Bounty Career.pdf
Bug Bounty Career.pdfBug Bounty Career.pdf
Bug Bounty Career.pdf
 
Semantic Optimization with Structured Data - SMX Munich
Semantic Optimization with Structured Data - SMX MunichSemantic Optimization with Structured Data - SMX Munich
Semantic Optimization with Structured Data - SMX Munich
 
Virtual Collaboration
Virtual CollaborationVirtual Collaboration
Virtual Collaboration
 
How Open Source / Open Technology Could Help On Your Project
How Open Source / Open Technology Could Help On Your ProjectHow Open Source / Open Technology Could Help On Your Project
How Open Source / Open Technology Could Help On Your Project
 
I´m not a number, I´m a free man
I´m not a number, I´m a free manI´m not a number, I´m a free man
I´m not a number, I´m a free man
 
Programming for Non-programmers PFNP @ Razorfish
Programming for Non-programmers PFNP @ Razorfish Programming for Non-programmers PFNP @ Razorfish
Programming for Non-programmers PFNP @ Razorfish
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San Francisco
 
Search on Mobile - Mobile Copenhagen 2012
Search on Mobile - Mobile Copenhagen 2012Search on Mobile - Mobile Copenhagen 2012
Search on Mobile - Mobile Copenhagen 2012
 
Programming for Non-Programmers - SXSW Vegas 2014
Programming for Non-Programmers - SXSW Vegas 2014Programming for Non-Programmers - SXSW Vegas 2014
Programming for Non-Programmers - SXSW Vegas 2014
 
Creating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from TwitterCreating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from Twitter
 
Content and seo for Tulos by Gianluca Fiorelli
Content and seo for Tulos by Gianluca FiorelliContent and seo for Tulos by Gianluca Fiorelli
Content and seo for Tulos by Gianluca Fiorelli
 
Goodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdateGoodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social Update
 
We are Digital Puppets
We are Digital PuppetsWe are Digital Puppets
We are Digital Puppets
 
Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015
 
No more excuses! Let's build beautiful things. #codemotion Rome
No  more excuses! Let's build beautiful things. #codemotion Rome No  more excuses! Let's build beautiful things. #codemotion Rome
No more excuses! Let's build beautiful things. #codemotion Rome
 
Lean Security
Lean SecurityLean Security
Lean Security
 
Yahoo is open to developers
Yahoo is open to developersYahoo is open to developers
Yahoo is open to developers
 
CSW2017 Geshev+Miller logic bug hunting in chrome on android
CSW2017 Geshev+Miller logic bug hunting in chrome on androidCSW2017 Geshev+Miller logic bug hunting in chrome on android
CSW2017 Geshev+Miller logic bug hunting in chrome on android
 
What an "RP" Wants
What an "RP" WantsWhat an "RP" Wants
What an "RP" Wants
 

using nodejs to count 30 billion requests per day