SlideShare a Scribd company logo
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)

More Related Content

What's hot

sponge-tech
sponge-techsponge-tech
sponge-tech
Victor Ni?u
 
Leveraging SharePoint Single Page Apps
Leveraging SharePoint Single Page AppsLeveraging SharePoint Single Page Apps
Leveraging SharePoint Single Page Apps
Marcel Medina
 
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
 
Html5 histroy api
Html5 histroy apiHtml5 histroy api
Html5 histroy api
Muktadiur Rahman
 
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
Remus Langu
 
Code4Lib Midwest
Code4Lib MidwestCode4Lib Midwest
Code4Lib Midwest
Melody Dworak
 
gwt-pushstate
gwt-pushstategwt-pushstate
gwt-pushstate
Johannes Barop
 
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)
MongoDB
 
Mobile Offline First
Mobile Offline FirstMobile Offline First
Mobile Offline First
Julio Castro
 
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...
Deltares
 
Introduction to Fluvio Data Engineer.pdf
Introduction to Fluvio Data Engineer.pdfIntroduction to Fluvio Data Engineer.pdf
Introduction to Fluvio Data Engineer.pdf
Sehz1
 
Ajax
Ajax Ajax
The XML Forms Architecture
The XML Forms ArchitectureThe XML Forms Architecture
The XML Forms Architecture
iText Group nv
 
Week13 Presentation
Week13 PresentationWeek13 Presentation
Week13 Presentation
s1160197
 
Rest in flask
Rest in flaskRest in flask
Rest in flask
Hamid Feizabadi
 
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
zonathen
 
nodeconf-eu
nodeconf-eunodeconf-eu
nodeconf-eu
Clovis Chapman
 
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
Jakub Wadolowski
 
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
Anurag Sinha
 
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
Restlet
 

What's hot (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
 

Similar to East bay full stack developers meetup August 2019

Seo for single page applications
Seo for single page applicationsSeo for single page applications
Seo for single page applications
JustinGillespie12
 
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
Shean McManus
 
Mean Stack - An Overview
Mean Stack - An OverviewMean Stack - An Overview
Mean Stack - An Overview
Naveen Pete
 
Front-End Developer's Career Roadmap
Front-End Developer's Career RoadmapFront-End Developer's Career Roadmap
Front-End Developer's Career Roadmap
WebStackAcademy
 
Sharepointcontent
SharepointcontentSharepointcontent
Sharepointcontent
Jessiersavage
 
APIs for mobile
APIs for mobileAPIs for mobile
APIs for mobile
Andrei Navarro
 
Best Practices with Sitecore
Best Practices with SitecoreBest Practices with Sitecore
Best Practices with Sitecore
Anant Corporation
 
Evolving compositional user interfaces
Evolving compositional user interfacesEvolving compositional user interfaces
Evolving compositional user interfaces
Asbjørn Ulsberg
 
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
ManageIQ
 
Web Development
Web DevelopmentWeb Development
Web Development
Aditya Raman
 
Progressive web applications
Progressive web applicationsProgressive web applications
Progressive web applications
Tom Martin
 
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
Aviran Mordo
 
Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scale
Dmytro Semenov
 
Bazillion New Technologies
Bazillion New TechnologiesBazillion New Technologies
Bazillion New Technologies
Ayman Mahfouz
 
Google App Engine Overview and Update
Google App Engine Overview and UpdateGoogle App Engine Overview and Update
Google App Engine Overview and Update
Chris Schalk
 
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
Guy Bary
 
Static dynamic and active web pages
Static dynamic and active web pagesStatic dynamic and active web pages
Static dynamic and active web pages
Mohammad Kamrul Hasan
 
Refactoring to a SPA
Refactoring to a SPARefactoring to a SPA
Refactoring to a SPA
Marcello Teodori
 
Refactoring to a Single Page Application
Refactoring to a Single Page ApplicationRefactoring to a Single Page Application
Refactoring to a Single Page Application
Codemotion
 
Mastering Dynamic Web Designing A Comprehensive Guide.pdf
Mastering Dynamic Web Designing A Comprehensive Guide.pdfMastering Dynamic Web Designing A Comprehensive Guide.pdf
Mastering Dynamic Web Designing A Comprehensive Guide.pdf
Ibrandizer
 

Similar to 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
 
Mastering Dynamic Web Designing A Comprehensive Guide.pdf
Mastering Dynamic Web Designing A Comprehensive Guide.pdfMastering Dynamic Web Designing A Comprehensive Guide.pdf
Mastering Dynamic Web Designing A Comprehensive Guide.pdf
 

Recently uploaded

International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
gerogepatton
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
mahammadsalmanmech
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
Dr Ramhari Poudyal
 
6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)
ClaraZara1
 
ACRP 4-09 Risk Assessment Method to Support Modification of Airfield Separat...
ACRP 4-09 Risk Assessment Method to Support Modification of Airfield Separat...ACRP 4-09 Risk Assessment Method to Support Modification of Airfield Separat...
ACRP 4-09 Risk Assessment Method to Support Modification of Airfield Separat...
Mukeshwaran Balu
 
2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt
PuktoonEngr
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
thanhdowork
 
Wearable antenna for antenna applications
Wearable antenna for antenna applicationsWearable antenna for antenna applications
Wearable antenna for antenna applications
Madhumitha Jayaram
 
Exception Handling notes in java exception
Exception Handling notes in java exceptionException Handling notes in java exception
Exception Handling notes in java exception
Ratnakar Mikkili
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
IJECEIAES
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
camseq
 
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptxML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
JamalHussainArman
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
Aditya Rajan Patra
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
nooriasukmaningtyas
 
Manufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptxManufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptx
Madan Karki
 
PPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testingPPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testing
anoopmanoharan2
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
MDSABBIROJJAMANPAYEL
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
University of Maribor
 
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
ihlasbinance2003
 
Series of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.pptSeries of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.ppt
PauloRodrigues104553
 

Recently uploaded (20)

International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
 
6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)
 
ACRP 4-09 Risk Assessment Method to Support Modification of Airfield Separat...
ACRP 4-09 Risk Assessment Method to Support Modification of Airfield Separat...ACRP 4-09 Risk Assessment Method to Support Modification of Airfield Separat...
ACRP 4-09 Risk Assessment Method to Support Modification of Airfield Separat...
 
2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
 
Wearable antenna for antenna applications
Wearable antenna for antenna applicationsWearable antenna for antenna applications
Wearable antenna for antenna applications
 
Exception Handling notes in java exception
Exception Handling notes in java exceptionException Handling notes in java exception
Exception Handling notes in java exception
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
 
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptxML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
 
Manufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptxManufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptx
 
PPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testingPPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testing
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
 
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
 
Series of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.pptSeries of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.ppt
 

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