SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
Building High-Traffic
Dynamic Websites at Ask
Tech choices and rationale
Background
● 35 Base domains (e.g. Ask.com, Consumersearch.com, Shop411.com,
Informationvine.com, etc.)
● 10 base domains have 5 to 14 localized versions (e.g. de.ask.com).
● 13 front-end apps serve all of these sites
● 800 QPS peak on busiest apps, > 100MM visitors/month
● New domains getting launched all the time—turnaround ~1 sprint, depending
on site
● Site categories: search, content/articles, shopping
○ Some sites have social slideshow/listicle experiences in addition to the above
Examples
Leveraging Modules and Libraries
● Page template
● Data providers
● View components (HTML, JS, CSS, Assets)
● Archie—our node-based library
View components
● Reusable UI building block
● Custom skins
● Independent of data source
● Configurable
Related Search
Archie
● Node + express.js
● Provides building blocks leveraged by all frontends
● Configuration-driven development
○ Multi-domain support
○ Page configuration
○ UI components / Data providers
Cranking out new domains
● Set-up time is ~ 4 days
○ No time for writing custom javascript, CSS for each new domain
○ Can’t “start from scratch” on everything
● Answer: Configuration-driven development
○ Make (almost) everything declarative
○ Hostname, pages, page partials, data sources—all config-driven
○ Templated pages and reusable components are key
Site Config
● Domains
● Pages / Routes
● Site level config
Page Config
● Routes
● Page skin
● Data providers
● Partials
View component
Data Source
Configuration
No CSS!
Building and Deploying a Site
● Building the Application
● Running the integration tests
● Deploying to Staging
● Deploying to Production
CI/CD Pipeline
Building Websites @ Scale is Hard!
● Relevant Results
● Fast Landing Page
● Consistent UX to User & “Good” Bots
● Modern LaF
● Mobile-friendly/first
● Optimal Ad-Content Ratio
● X-Browser Support
● I18N
Node/Express
● Easy to get started
● Middleware simple to understand
● Fully embrace the async nature of the Web
● npm makes code sharing easy
● Terminal-friendly
● FE Devs can contribute to BE as well
● Makes hiring easier
What’s Missing in Node/Express
● Ability to override overall experience dynamically
● Separation of Concerns
○ Rendering engine
○ Logic-less templates
○ Reusable UI components
○ Asset management
● Integration with our BE services
● Page Introspection
● Simpler API to deal with microservices
Enter Archie
● Adds sophisticated ways to override the page
○ URL, Site/Page config, HTTP-based, Inline, Command-line…
● Dust.js as the rendering/templating engine (Streaming support)
○ Not building SPAs with complex state, so didn’t need React/Angular
● Partials abstract a UI component (JS/HTML/Less/Assets)
● Providers abstract data source while providing a synchronous interface
● OOTB integration with our in-house User Analytics, Feature Flag, A/B
Testing, Geo-IP, Query Classification and Search services
● Includes IT F/W
● Common HTTP Client
● Embeddable - Available as an npm module
Typical Page configuration (JSON)

Contenu connexe

Tendances

Web Forms, or How I Learned to Stop Worrying and Love Web Services
Web Forms, or How I Learned to Stop Worrying and Love Web ServicesWeb Forms, or How I Learned to Stop Worrying and Love Web Services
Web Forms, or How I Learned to Stop Worrying and Love Web Services
hannonhill
 
Week13 Presentation
Week13 PresentationWeek13 Presentation
Week13 Presentation
s1160197
 

Tendances (20)

sponge-tech
sponge-techsponge-tech
sponge-tech
 
Leveraging SharePoint Single Page Apps
Leveraging SharePoint Single Page AppsLeveraging SharePoint Single Page Apps
Leveraging SharePoint Single Page Apps
 
Web Forms, or How I Learned to Stop Worrying and Love Web Services
Web Forms, or How I Learned to Stop Worrying and Love Web ServicesWeb Forms, or How I Learned to Stop Worrying and Love Web Services
Web Forms, or How I Learned to Stop Worrying and Love Web Services
 
Html5 histroy api
Html5 histroy apiHtml5 histroy api
Html5 histroy api
 
Single page interface challenges in modern web applications
Single page interface challenges in modern web applicationsSingle page interface challenges in modern web applications
Single page interface challenges in modern web applications
 
Code4Lib Midwest
Code4Lib MidwestCode4Lib Midwest
Code4Lib Midwest
 
gwt-pushstate
gwt-pushstategwt-pushstate
gwt-pushstate
 
Migrating from RDBMS to MongoDB Atlas - Texas American Resources Company (TARC)
Migrating from RDBMS to MongoDB Atlas - Texas American Resources Company (TARC)Migrating from RDBMS to MongoDB Atlas - Texas American Resources Company (TARC)
Migrating from RDBMS to MongoDB Atlas - Texas American Resources Company (TARC)
 
Mobile Offline First
Mobile Offline FirstMobile Offline First
Mobile Offline First
 
DSD-INT 2018 Web-based realtime interactive groundwater modelling - Joling Mi...
DSD-INT 2018 Web-based realtime interactive groundwater modelling - Joling Mi...DSD-INT 2018 Web-based realtime interactive groundwater modelling - Joling Mi...
DSD-INT 2018 Web-based realtime interactive groundwater modelling - Joling Mi...
 
Introduction to Fluvio Data Engineer.pdf
Introduction to Fluvio Data Engineer.pdfIntroduction to Fluvio Data Engineer.pdf
Introduction to Fluvio Data Engineer.pdf
 
Ajax
Ajax Ajax
Ajax
 
The XML Forms Architecture
The XML Forms ArchitectureThe XML Forms Architecture
The XML Forms Architecture
 
Week13 Presentation
Week13 PresentationWeek13 Presentation
Week13 Presentation
 
Rest in flask
Rest in flaskRest in flask
Rest in flask
 
JAMstack with gatsby, contentful and netlify aka the dream stack
JAMstack with gatsby, contentful and netlify aka the dream stackJAMstack with gatsby, contentful and netlify aka the dream stack
JAMstack with gatsby, contentful and netlify aka the dream stack
 
nodeconf-eu
nodeconf-eunodeconf-eu
nodeconf-eu
 
Into the nooks and crannies of Boden’s digital transformation
Into the nooks and crannies of Boden’s digital transformationInto the nooks and crannies of Boden’s digital transformation
Into the nooks and crannies of Boden’s digital transformation
 
API World 2017 - Building Large Scale Web Apps and Platforms
API World 2017 - Building Large Scale Web Apps and PlatformsAPI World 2017 - Building Large Scale Web Apps and Platforms
API World 2017 - Building Large Scale Web Apps and Platforms
 
Defrag 2014 - Blend Web IDEs, Open Source and PaaS to Create and Deploy APIs
Defrag 2014 - Blend Web IDEs, Open Source and PaaS to Create and Deploy APIsDefrag 2014 - Blend Web IDEs, Open Source and PaaS to Create and Deploy APIs
Defrag 2014 - Blend Web IDEs, Open Source and PaaS to Create and Deploy APIs
 

Similaire à East bay full stack developers meetup August 2019

Similaire à East bay full stack developers meetup August 2019 (20)

Seo for single page applications
Seo for single page applicationsSeo for single page applications
Seo for single page applications
 
AD109 Navigating the Jungle of Modern Web Development
AD109 Navigating the Jungle of Modern Web DevelopmentAD109 Navigating the Jungle of Modern Web Development
AD109 Navigating the Jungle of Modern Web Development
 
Mean Stack - An Overview
Mean Stack - An OverviewMean Stack - An Overview
Mean Stack - An Overview
 
Front-End Developer's Career Roadmap
Front-End Developer's Career RoadmapFront-End Developer's Career Roadmap
Front-End Developer's Career Roadmap
 
Sharepointcontent
SharepointcontentSharepointcontent
Sharepointcontent
 
APIs for mobile
APIs for mobileAPIs for mobile
APIs for mobile
 
Best Practices with Sitecore
Best Practices with SitecoreBest Practices with Sitecore
Best Practices with Sitecore
 
Evolving compositional user interfaces
Evolving compositional user interfacesEvolving compositional user interfaces
Evolving compositional user interfaces
 
Design Summit - Technology Vision - Oleg Barenboim and Jason Frey
Design Summit - Technology Vision - Oleg Barenboim and Jason FreyDesign Summit - Technology Vision - Oleg Barenboim and Jason Frey
Design Summit - Technology Vision - Oleg Barenboim and Jason Frey
 
Web Development
Web DevelopmentWeb Development
Web Development
 
Progressive web applications
Progressive web applicationsProgressive web applications
Progressive web applications
 
Scaling wix.com to 100 million users
Scaling wix.com to 100 million users Scaling wix.com to 100 million users
Scaling wix.com to 100 million users
 
Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scale
 
Bazillion New Technologies
Bazillion New TechnologiesBazillion New Technologies
Bazillion New Technologies
 
Google App Engine Overview and Update
Google App Engine Overview and UpdateGoogle App Engine Overview and Update
Google App Engine Overview and Update
 
Parallel programing in web applications - public.pptx
Parallel programing in web applications - public.pptxParallel programing in web applications - public.pptx
Parallel programing in web applications - public.pptx
 
Static dynamic and active web pages
Static dynamic and active web pagesStatic dynamic and active web pages
Static dynamic and active web pages
 
Refactoring to a SPA
Refactoring to a SPARefactoring to a SPA
Refactoring to a SPA
 
Refactoring to a Single Page Application
Refactoring to a Single Page ApplicationRefactoring to a Single Page Application
Refactoring to a Single Page Application
 
TabTale Architecture Overview
TabTale Architecture OverviewTabTale Architecture Overview
TabTale Architecture Overview
 

Dernier

Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Kandungan 087776558899
 

Dernier (20)

Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086
 
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
 
2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 

East bay full stack developers meetup August 2019

  • 1. Building High-Traffic Dynamic Websites at Ask Tech choices and rationale
  • 2. Background ● 35 Base domains (e.g. Ask.com, Consumersearch.com, Shop411.com, Informationvine.com, etc.) ● 10 base domains have 5 to 14 localized versions (e.g. de.ask.com). ● 13 front-end apps serve all of these sites ● 800 QPS peak on busiest apps, > 100MM visitors/month ● New domains getting launched all the time—turnaround ~1 sprint, depending on site ● Site categories: search, content/articles, shopping ○ Some sites have social slideshow/listicle experiences in addition to the above
  • 4. Leveraging Modules and Libraries ● Page template ● Data providers ● View components (HTML, JS, CSS, Assets) ● Archie—our node-based library
  • 5. View components ● Reusable UI building block ● Custom skins ● Independent of data source ● Configurable
  • 7. Archie ● Node + express.js ● Provides building blocks leveraged by all frontends ● Configuration-driven development ○ Multi-domain support ○ Page configuration ○ UI components / Data providers
  • 8. Cranking out new domains ● Set-up time is ~ 4 days ○ No time for writing custom javascript, CSS for each new domain ○ Can’t “start from scratch” on everything ● Answer: Configuration-driven development ○ Make (almost) everything declarative ○ Hostname, pages, page partials, data sources—all config-driven ○ Templated pages and reusable components are key
  • 9. Site Config ● Domains ● Pages / Routes ● Site level config
  • 10. Page Config ● Routes ● Page skin ● Data providers ● Partials
  • 12. Building and Deploying a Site ● Building the Application ● Running the integration tests ● Deploying to Staging ● Deploying to Production
  • 14. Building Websites @ Scale is Hard! ● Relevant Results ● Fast Landing Page ● Consistent UX to User & “Good” Bots ● Modern LaF ● Mobile-friendly/first ● Optimal Ad-Content Ratio ● X-Browser Support ● I18N
  • 15. Node/Express ● Easy to get started ● Middleware simple to understand ● Fully embrace the async nature of the Web ● npm makes code sharing easy ● Terminal-friendly ● FE Devs can contribute to BE as well ● Makes hiring easier
  • 16. What’s Missing in Node/Express ● Ability to override overall experience dynamically ● Separation of Concerns ○ Rendering engine ○ Logic-less templates ○ Reusable UI components ○ Asset management ● Integration with our BE services ● Page Introspection ● Simpler API to deal with microservices
  • 17. Enter Archie ● Adds sophisticated ways to override the page ○ URL, Site/Page config, HTTP-based, Inline, Command-line… ● Dust.js as the rendering/templating engine (Streaming support) ○ Not building SPAs with complex state, so didn’t need React/Angular ● Partials abstract a UI component (JS/HTML/Less/Assets) ● Providers abstract data source while providing a synchronous interface ● OOTB integration with our in-house User Analytics, Feature Flag, A/B Testing, Geo-IP, Query Classification and Search services ● Includes IT F/W ● Common HTTP Client ● Embeddable - Available as an npm module