SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
Our Tale From the Trail of
Shadows
Chris Phillips and Dale Smith
REI Co-op
Who Are We?
Dale Smith
●  REI Co-Op for 5 years
○  Lead Engineer: Search
Platform
●  40 years of software
engineering
●  Boeing manufacturing
automation
●  Seattle tech, including
○  Go2Net: Dogpile &
Metacrawler
@dasmith836
Who Are We?
Chris Phillips
●  REI Co-op for 7 years
5 Years on Search
●  20 years in the industry
○  Half Life
○  Exchange Indexing
○  Launch of Xbox Kinect
@realchrispdad
01
Who is REI?
Agenda
•  What We Did
•  Where We Were
•  The Big Challenges
•  Solutions – The Cool Stuff
•  Questions
What We did
We replaced our SaaS search engine with an on-premise Solr stack
Where We Were
Stuck in the mud!!
●  Not meeting customer or
internal expectations
●  Slow searches: 750-900 ms
●  Random outages
●  Not flexible for our business
partners
●  Limited visibility into the
servers
01
The Goal
REI Co-Op: Quality Comes First
01
The Goal
Customer Expectations
●  Find the most relevant content quickly
●  Go outside and be happy
The Goal
Internal Expectations
●  Fast and stable search platform
●  Rapid development cycle
●  Save budget on licensing and support
The Big Challenges
No changes to the existing API’s
●  Website
●  Mobile apps
●  Point of Sale apps
●  Internal tools
Limit SEO impact
The Big Challenges
We were on our previous search engine
for 4 years.
●  Had to tune relevance and
merchandising rules to match in a
matter of months
●  Internal users had to learn new tools
●  Biggest Challenge: How do we verify
we haven’t broken something in
search?
01
The Big Challenges
The Solr Stack Is Awesome, But Scary
●  Lucidworks Fusion
●  Innovent Solutions Findtuner
●  Multi-term synonyms
●  “47 knobs that all go to Volume 11!”
The Trail of Success
Build a Lean Dream Team
●  2 Senior Back-End Developers
●  1 Senior QA Analyst
●  1 SDET
●  PM created a “bubble of safety”
●  Product Owner is the search
expert at REI
The Trail of Success
Nurture the Team Dynamic
●  Trusted by leadership
●  We trusted each other
●  Accountability
●  Committed to quality
●  We knew what success looked like
The Trail of Success
Embrace The Team Philosophy
The Trail of Success
Quality: The measure of the excellence of
your product.
● “Quality is not an act. It is a habit.” --
Aristotle
The Trail of Success
Be Serious About Who Owns
Quality
● Everyone owns quality
● Build good habits
The Trail of Success
Good Habits
● Co-locate
● Keep the business owner
involved
● Engineers are cool!
● Find bugs before code is written
○ Architect together
○ Mental lifting
○ Risks
○ Unit tests
○ Test scenarios
The Trail of Success
Good Habits
● Avoid legacy code with 3
questions
○ Testable
○ Supportable
○ Maintainable
Solutions - Use Great Tools
●  Innovent Solutions FindTuner
●  Lucidworks Fusion
●  Solr Cloud
●  These tools were designed to
work together
Solutions - Innovent Solutions FindTuner
●  Manages search rules
○ Product promotion
○ Banners, redirects, etc.
○ Query adjustments
●  UI For Business Users
●  Eliminated the need to
implement this in-
house to replicate
SaaS solution
Solutions - Lucidworks Fusion
●  Manages Solr Cloud
configuration
●  Provides configurable
search pipelines
●  Nice UI for business
users
●  Many more features!
Solutions - A Great Software Ecosystem
●  Continuous Integration Model
●  Docker Platform
●  Microservices Architecture
●  High-functioning Monitoring &
Metrics
Solutions – Dynamic Facets
The Problem
●  ~200,000 product variants
●  ~250 “facet-worthy” attributes
●  Asking Solr to calculate facets
for all of these attributes on
each request would lead to
significant performance issues
Because Two Queries Are Better Than
One!
●  Indexed products with list of
important attributes
●  First Query: read and calculate
10-15 key attributes for facet request
01
Solutions – Dynamic Facets
●  Second Query: full request with
selected facets
●  Solr query only ever includes the
10-15 most important facets
The Problem:
● How do we verify product results from our new search stack?
● How do we verify performance capabilities under production load?
Solutions – The Shadow Query
The Solution:
● “Shadow Query”: all production searches are sent to both
search engines, the results compared using special comparison
functions, and metrics recorded on everything.
● All while not affecting existing search performance!
● Basically, we let our customers help test the system
Solutions – The Shadow Query Model
Solutions – The Shadow Query Model
Solutions – The Shadow Query Model
Solutions – Search API Normalization
REI search API is search-engine
agnostic
●  Avoid exposure of search
engine-specific parameters or
attributes
●  Preserve existing API contract
●  Preserve existing SEO patterns
●  Enable queries to multiple
search engines
Solutions – Search API Normalization
An Example
Normalized Refinement on REI.com:
r=features:Insulated;size:Large;color:Purple
fq=features:"Insulated"&fq={!tag=SIZE}size:"Large"&fq={!
tag=COLORFAMILY}color_family:"Purple"
Translated to Solr:
q1=insulated&x1=tab.ftrs&q2=large&x2=tab.size&q3=purple&x3=
colorfam
Translated to SaaS:
Solutions – Result ComparisonsComparing the Shadow Query Results
●  Record query result times and deltas
●  Record total number of results and deltas
●  Record count of products in result A and not in result B, and vice-
versa
●  Record Damerau-Levenshtein Distance, using product IDs instead
of letters
●  Use graph dashboards to “visualize quality” as the search metrics
converged
Calculated based on operations transforming a list of products
from one sequence to another
● Insertion
● Deletion
● Substitution
● Transposition
● Each operation has a cost, weighted higher at the start of the
sequence
Solutions – Modified Damerau-Levenshtein
Distance
Preparing for ‘Solr Day’
● Load Test using recorded production queries replayed through the
shadow query at high load
● Monitored CPU and Memory - It’s all about that swap space
● Diagnose crashes from good bots doing bad things
It’s On!!!
We turned it on for our customers and…..
●  Nobody noticed anything had changed
●  They just enjoyed it being 600ms faster!
After The Party...
We continued to use the Shadow
Query to verify the new Solr stack
●  Kept making calls to the SAAS
search engine in the
background
●  Provided a safety net for an
important sale period
●  Continued to use metrics to
validate rule refinements
Wisdom From The Trail
Pack It Out!
● Start with a solid team
● Trust matters in all directions
● Use the best tools
● Use data to validate everything
● Stop relying on hope and
heroics and instead bake QA
into the process and the
system
Awesome
People
Innovent Solutions
Jason Hellman, Anria Billavara, &
Team
Lucidworks
Greg Harris & Support
Team
Contact Us
Dale Smith
● Twitter: @dasmith836
● dasmith836@yahoo.com
● LinkedIn: dasmith836
● Facebook: dasmith836
(hm, I’m sensing a pattern...)
Chris
Phillips
● Twitter:
@realchrispdad
● LinkedIn:
realchrispdad
Thank
You

Mais conteúdo relacionado

Mais procurados

Learning to Rank in Solr: Presented by Michael Nilsson & Diego Ceccarelli, Bl...
Learning to Rank in Solr: Presented by Michael Nilsson & Diego Ceccarelli, Bl...Learning to Rank in Solr: Presented by Michael Nilsson & Diego Ceccarelli, Bl...
Learning to Rank in Solr: Presented by Michael Nilsson & Diego Ceccarelli, Bl...
Lucidworks
 
TweetMogaz - The Arabic Tweets Platform: Presented by Ahmed Adel, BADR
TweetMogaz - The Arabic Tweets Platform: Presented by Ahmed Adel, BADRTweetMogaz - The Arabic Tweets Platform: Presented by Ahmed Adel, BADR
TweetMogaz - The Arabic Tweets Platform: Presented by Ahmed Adel, BADR
Lucidworks
 
Understanding Lucene Search Performance
Understanding Lucene Search PerformanceUnderstanding Lucene Search Performance
Understanding Lucene Search Performance
Lucidworks (Archived)
 
Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...
Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...
Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...
Lucidworks
 

Mais procurados (20)

Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...
Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...
Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...
 
Webinar: What's New in Solr 7
Webinar: What's New in Solr 7 Webinar: What's New in Solr 7
Webinar: What's New in Solr 7
 
Solr JDBC: Presented by Kevin Risden, Avalon Consulting
Solr JDBC: Presented by Kevin Risden, Avalon ConsultingSolr JDBC: Presented by Kevin Risden, Avalon Consulting
Solr JDBC: Presented by Kevin Risden, Avalon Consulting
 
Learning to Rank in Solr: Presented by Michael Nilsson & Diego Ceccarelli, Bl...
Learning to Rank in Solr: Presented by Michael Nilsson & Diego Ceccarelli, Bl...Learning to Rank in Solr: Presented by Michael Nilsson & Diego Ceccarelli, Bl...
Learning to Rank in Solr: Presented by Michael Nilsson & Diego Ceccarelli, Bl...
 
Data Science with Solr and Spark
Data Science with Solr and SparkData Science with Solr and Spark
Data Science with Solr and Spark
 
10 Keys to Solr's Future: Presented by Grant Ingersoll, Lucidworks
10 Keys to Solr's Future: Presented by Grant Ingersoll, Lucidworks10 Keys to Solr's Future: Presented by Grant Ingersoll, Lucidworks
10 Keys to Solr's Future: Presented by Grant Ingersoll, Lucidworks
 
Managed Search: Presented by Jacob Graves, Getty Images
Managed Search: Presented by Jacob Graves, Getty ImagesManaged Search: Presented by Jacob Graves, Getty Images
Managed Search: Presented by Jacob Graves, Getty Images
 
Search at Twitter: Presented by Michael Busch, Twitter
Search at Twitter: Presented by Michael Busch, TwitterSearch at Twitter: Presented by Michael Busch, Twitter
Search at Twitter: Presented by Michael Busch, Twitter
 
Twitter Search Architecture
Twitter Search Architecture Twitter Search Architecture
Twitter Search Architecture
 
TweetMogaz - The Arabic Tweets Platform: Presented by Ahmed Adel, BADR
TweetMogaz - The Arabic Tweets Platform: Presented by Ahmed Adel, BADRTweetMogaz - The Arabic Tweets Platform: Presented by Ahmed Adel, BADR
TweetMogaz - The Arabic Tweets Platform: Presented by Ahmed Adel, BADR
 
Galene - LinkedIn's Search Architecture: Presented by Diego Buthay & Sriram S...
Galene - LinkedIn's Search Architecture: Presented by Diego Buthay & Sriram S...Galene - LinkedIn's Search Architecture: Presented by Diego Buthay & Sriram S...
Galene - LinkedIn's Search Architecture: Presented by Diego Buthay & Sriram S...
 
Parallel SQL and Streaming Expressions in Apache Solr 6
Parallel SQL and Streaming Expressions in Apache Solr 6Parallel SQL and Streaming Expressions in Apache Solr 6
Parallel SQL and Streaming Expressions in Apache Solr 6
 
Thoth - Real-time Solr Monitor and Search Analysis Engine: Presented by Damia...
Thoth - Real-time Solr Monitor and Search Analysis Engine: Presented by Damia...Thoth - Real-time Solr Monitor and Search Analysis Engine: Presented by Damia...
Thoth - Real-time Solr Monitor and Search Analysis Engine: Presented by Damia...
 
Webinar: Replace Google Search Appliance with Lucidworks Fusion
Webinar: Replace Google Search Appliance with Lucidworks FusionWebinar: Replace Google Search Appliance with Lucidworks Fusion
Webinar: Replace Google Search Appliance with Lucidworks Fusion
 
Understanding Lucene Search Performance
Understanding Lucene Search PerformanceUnderstanding Lucene Search Performance
Understanding Lucene Search Performance
 
H-Hypermap - Heatmap Analytics at Scale: Presented by David Smiley, D W Smile...
H-Hypermap - Heatmap Analytics at Scale: Presented by David Smiley, D W Smile...H-Hypermap - Heatmap Analytics at Scale: Presented by David Smiley, D W Smile...
H-Hypermap - Heatmap Analytics at Scale: Presented by David Smiley, D W Smile...
 
Webinar: Fusion 2.3 Preview - Enhanced Features with Solr & Spark
Webinar: Fusion 2.3 Preview - Enhanced Features with Solr & SparkWebinar: Fusion 2.3 Preview - Enhanced Features with Solr & Spark
Webinar: Fusion 2.3 Preview - Enhanced Features with Solr & Spark
 
Get involved with the Apache Software Foundation
Get involved with the Apache Software FoundationGet involved with the Apache Software Foundation
Get involved with the Apache Software Foundation
 
Integrating Spark and Solr-(Timothy Potter, Lucidworks)
Integrating Spark and Solr-(Timothy Potter, Lucidworks)Integrating Spark and Solr-(Timothy Potter, Lucidworks)
Integrating Spark and Solr-(Timothy Potter, Lucidworks)
 
Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...
Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...
Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...
 

Semelhante a Our Tale from the Trail of Shadows at REI Co-op - Chris Phillips & Dale Smith, REI Co-op

English-Redistributable-Intro-Scrum (1) (1).ppt
English-Redistributable-Intro-Scrum (1) (1).pptEnglish-Redistributable-Intro-Scrum (1) (1).ppt
English-Redistributable-Intro-Scrum (1) (1).ppt
ShwetaPuneyani1
 

Semelhante a Our Tale from the Trail of Shadows at REI Co-op - Chris Phillips & Dale Smith, REI Co-op (20)

Code quality and its business value, Nikita Belov
Code quality and its business value, Nikita BelovCode quality and its business value, Nikita Belov
Code quality and its business value, Nikita Belov
 
Software Release Orchestration and the Enterprise
Software Release Orchestration and the EnterpriseSoftware Release Orchestration and the Enterprise
Software Release Orchestration and the Enterprise
 
DataOps - Lean principles and lean practices
DataOps - Lean principles and lean practicesDataOps - Lean principles and lean practices
DataOps - Lean principles and lean practices
 
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org - Dev...
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org -  Dev...Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org -  Dev...
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org - Dev...
 
Agile Scrum Training Process
Agile Scrum Training ProcessAgile Scrum Training Process
Agile Scrum Training Process
 
Agile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingAgile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated Testing
 
How to Better Manage Technical Debt While Innovating on DevOps
How to Better Manage Technical Debt While Innovating on DevOpsHow to Better Manage Technical Debt While Innovating on DevOps
How to Better Manage Technical Debt While Innovating on DevOps
 
rnd teams.pptx
rnd teams.pptxrnd teams.pptx
rnd teams.pptx
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Scrum.ppt
Scrum.pptScrum.ppt
Scrum.ppt
 
English-Redistributable-Intro-Scrum (1) (1).ppt
English-Redistributable-Intro-Scrum (1) (1).pptEnglish-Redistributable-Intro-Scrum (1) (1).ppt
English-Redistributable-Intro-Scrum (1) (1).ppt
 
Fixed distributed agile
Fixed distributed agile Fixed distributed agile
Fixed distributed agile
 
Scrum for Global-Scale Development
Scrum for Global-Scale DevelopmentScrum for Global-Scale Development
Scrum for Global-Scale Development
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibile
 
Goodbye scope anxiety hello agility: Kanban implementation case study at amdocs
Goodbye scope anxiety hello agility: Kanban implementation case study at amdocsGoodbye scope anxiety hello agility: Kanban implementation case study at amdocs
Goodbye scope anxiety hello agility: Kanban implementation case study at amdocs
 
Virtual Dreamin Salesforce DevOps Top 10
Virtual Dreamin Salesforce DevOps Top 10Virtual Dreamin Salesforce DevOps Top 10
Virtual Dreamin Salesforce DevOps Top 10
 
The lean principles of data ops
The lean principles of data opsThe lean principles of data ops
The lean principles of data ops
 
Effective Scrum
Effective ScrumEffective Scrum
Effective Scrum
 
The Rules of Network Automation - Interop/NYC 2014
The Rules of Network Automation - Interop/NYC 2014The Rules of Network Automation - Interop/NYC 2014
The Rules of Network Automation - Interop/NYC 2014
 
SCRUM – Agile Methodology
SCRUM – Agile MethodologySCRUM – Agile Methodology
SCRUM – Agile Methodology
 

Mais de Lucidworks

Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...
Lucidworks
 

Mais de Lucidworks (20)

Search is the Tip of the Spear for Your B2B eCommerce Strategy
Search is the Tip of the Spear for Your B2B eCommerce StrategySearch is the Tip of the Spear for Your B2B eCommerce Strategy
Search is the Tip of the Spear for Your B2B eCommerce Strategy
 
Drive Agent Effectiveness in Salesforce
Drive Agent Effectiveness in SalesforceDrive Agent Effectiveness in Salesforce
Drive Agent Effectiveness in Salesforce
 
How Crate & Barrel Connects Shoppers with Relevant Products
How Crate & Barrel Connects Shoppers with Relevant ProductsHow Crate & Barrel Connects Shoppers with Relevant Products
How Crate & Barrel Connects Shoppers with Relevant Products
 
Lucidworks & IMRG Webinar – Best-In-Class Retail Product Discovery
Lucidworks & IMRG Webinar – Best-In-Class Retail Product DiscoveryLucidworks & IMRG Webinar – Best-In-Class Retail Product Discovery
Lucidworks & IMRG Webinar – Best-In-Class Retail Product Discovery
 
Connected Experiences Are Personalized Experiences
Connected Experiences Are Personalized ExperiencesConnected Experiences Are Personalized Experiences
Connected Experiences Are Personalized Experiences
 
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...
Intelligent Insight Driven Policing with MC+A, Toronto Police Service and Luc...
 
[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...
[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...
[Webinar] Intelligent Policing. Leveraging Data to more effectively Serve Com...
 
Preparing for Peak in Ecommerce | eTail Asia 2020
Preparing for Peak in Ecommerce | eTail Asia 2020Preparing for Peak in Ecommerce | eTail Asia 2020
Preparing for Peak in Ecommerce | eTail Asia 2020
 
Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...
Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...
Accelerate The Path To Purchase With Product Discovery at Retail Innovation C...
 
AI-Powered Linguistics and Search with Fusion and Rosette
AI-Powered Linguistics and Search with Fusion and RosetteAI-Powered Linguistics and Search with Fusion and Rosette
AI-Powered Linguistics and Search with Fusion and Rosette
 
The Service Industry After COVID-19: The Soul of Service in a Virtual Moment
The Service Industry After COVID-19: The Soul of Service in a Virtual MomentThe Service Industry After COVID-19: The Soul of Service in a Virtual Moment
The Service Industry After COVID-19: The Soul of Service in a Virtual Moment
 
Webinar: Smart answers for employee and customer support after covid 19 - Europe
Webinar: Smart answers for employee and customer support after covid 19 - EuropeWebinar: Smart answers for employee and customer support after covid 19 - Europe
Webinar: Smart answers for employee and customer support after covid 19 - Europe
 
Smart Answers for Employee and Customer Support After COVID-19
Smart Answers for Employee and Customer Support After COVID-19Smart Answers for Employee and Customer Support After COVID-19
Smart Answers for Employee and Customer Support After COVID-19
 
Applying AI & Search in Europe - featuring 451 Research
Applying AI & Search in Europe - featuring 451 ResearchApplying AI & Search in Europe - featuring 451 Research
Applying AI & Search in Europe - featuring 451 Research
 
Webinar: Accelerate Data Science with Fusion 5.1
Webinar: Accelerate Data Science with Fusion 5.1Webinar: Accelerate Data Science with Fusion 5.1
Webinar: Accelerate Data Science with Fusion 5.1
 
Webinar: 5 Must-Have Items You Need for Your 2020 Ecommerce Strategy
Webinar: 5 Must-Have Items You Need for Your 2020 Ecommerce StrategyWebinar: 5 Must-Have Items You Need for Your 2020 Ecommerce Strategy
Webinar: 5 Must-Have Items You Need for Your 2020 Ecommerce Strategy
 
Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...
Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...
Where Search Meets Science and Style Meets Savings: Nordstrom Rack's Journey ...
 
Apply Knowledge Graphs and Search for Real-World Decision Intelligence
Apply Knowledge Graphs and Search for Real-World Decision IntelligenceApply Knowledge Graphs and Search for Real-World Decision Intelligence
Apply Knowledge Graphs and Search for Real-World Decision Intelligence
 
Webinar: Building a Business Case for Enterprise Search
Webinar: Building a Business Case for Enterprise SearchWebinar: Building a Business Case for Enterprise Search
Webinar: Building a Business Case for Enterprise Search
 
Why Insight Engines Matter in 2020 and Beyond
Why Insight Engines Matter in 2020 and BeyondWhy Insight Engines Matter in 2020 and Beyond
Why Insight Engines Matter in 2020 and Beyond
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 

Our Tale from the Trail of Shadows at REI Co-op - Chris Phillips & Dale Smith, REI Co-op

  • 1. Our Tale From the Trail of Shadows Chris Phillips and Dale Smith REI Co-op
  • 2. Who Are We? Dale Smith ●  REI Co-Op for 5 years ○  Lead Engineer: Search Platform ●  40 years of software engineering ●  Boeing manufacturing automation ●  Seattle tech, including ○  Go2Net: Dogpile & Metacrawler @dasmith836
  • 3. Who Are We? Chris Phillips ●  REI Co-op for 7 years 5 Years on Search ●  20 years in the industry ○  Half Life ○  Exchange Indexing ○  Launch of Xbox Kinect @realchrispdad
  • 5. Agenda •  What We Did •  Where We Were •  The Big Challenges •  Solutions – The Cool Stuff •  Questions
  • 6. What We did We replaced our SaaS search engine with an on-premise Solr stack
  • 7. Where We Were Stuck in the mud!! ●  Not meeting customer or internal expectations ●  Slow searches: 750-900 ms ●  Random outages ●  Not flexible for our business partners ●  Limited visibility into the servers
  • 8. 01 The Goal REI Co-Op: Quality Comes First
  • 9. 01 The Goal Customer Expectations ●  Find the most relevant content quickly ●  Go outside and be happy
  • 10. The Goal Internal Expectations ●  Fast and stable search platform ●  Rapid development cycle ●  Save budget on licensing and support
  • 11. The Big Challenges No changes to the existing API’s ●  Website ●  Mobile apps ●  Point of Sale apps ●  Internal tools Limit SEO impact
  • 12. The Big Challenges We were on our previous search engine for 4 years. ●  Had to tune relevance and merchandising rules to match in a matter of months ●  Internal users had to learn new tools ●  Biggest Challenge: How do we verify we haven’t broken something in search?
  • 13. 01 The Big Challenges The Solr Stack Is Awesome, But Scary ●  Lucidworks Fusion ●  Innovent Solutions Findtuner ●  Multi-term synonyms ●  “47 knobs that all go to Volume 11!”
  • 14. The Trail of Success Build a Lean Dream Team ●  2 Senior Back-End Developers ●  1 Senior QA Analyst ●  1 SDET ●  PM created a “bubble of safety” ●  Product Owner is the search expert at REI
  • 15. The Trail of Success Nurture the Team Dynamic ●  Trusted by leadership ●  We trusted each other ●  Accountability ●  Committed to quality ●  We knew what success looked like
  • 16. The Trail of Success Embrace The Team Philosophy
  • 17. The Trail of Success Quality: The measure of the excellence of your product. ● “Quality is not an act. It is a habit.” -- Aristotle
  • 18. The Trail of Success Be Serious About Who Owns Quality ● Everyone owns quality ● Build good habits
  • 19. The Trail of Success Good Habits ● Co-locate ● Keep the business owner involved ● Engineers are cool! ● Find bugs before code is written ○ Architect together ○ Mental lifting ○ Risks ○ Unit tests ○ Test scenarios
  • 20. The Trail of Success Good Habits ● Avoid legacy code with 3 questions ○ Testable ○ Supportable ○ Maintainable
  • 21. Solutions - Use Great Tools ●  Innovent Solutions FindTuner ●  Lucidworks Fusion ●  Solr Cloud ●  These tools were designed to work together
  • 22. Solutions - Innovent Solutions FindTuner ●  Manages search rules ○ Product promotion ○ Banners, redirects, etc. ○ Query adjustments ●  UI For Business Users ●  Eliminated the need to implement this in- house to replicate SaaS solution
  • 23. Solutions - Lucidworks Fusion ●  Manages Solr Cloud configuration ●  Provides configurable search pipelines ●  Nice UI for business users ●  Many more features!
  • 24. Solutions - A Great Software Ecosystem ●  Continuous Integration Model ●  Docker Platform ●  Microservices Architecture ●  High-functioning Monitoring & Metrics
  • 25. Solutions – Dynamic Facets The Problem ●  ~200,000 product variants ●  ~250 “facet-worthy” attributes ●  Asking Solr to calculate facets for all of these attributes on each request would lead to significant performance issues
  • 26. Because Two Queries Are Better Than One! ●  Indexed products with list of important attributes ●  First Query: read and calculate 10-15 key attributes for facet request 01 Solutions – Dynamic Facets ●  Second Query: full request with selected facets ●  Solr query only ever includes the 10-15 most important facets
  • 27. The Problem: ● How do we verify product results from our new search stack? ● How do we verify performance capabilities under production load? Solutions – The Shadow Query The Solution: ● “Shadow Query”: all production searches are sent to both search engines, the results compared using special comparison functions, and metrics recorded on everything. ● All while not affecting existing search performance! ● Basically, we let our customers help test the system
  • 28. Solutions – The Shadow Query Model
  • 29. Solutions – The Shadow Query Model
  • 30. Solutions – The Shadow Query Model
  • 31. Solutions – Search API Normalization REI search API is search-engine agnostic ●  Avoid exposure of search engine-specific parameters or attributes ●  Preserve existing API contract ●  Preserve existing SEO patterns ●  Enable queries to multiple search engines
  • 32. Solutions – Search API Normalization An Example Normalized Refinement on REI.com: r=features:Insulated;size:Large;color:Purple fq=features:"Insulated"&fq={!tag=SIZE}size:"Large"&fq={! tag=COLORFAMILY}color_family:"Purple" Translated to Solr: q1=insulated&x1=tab.ftrs&q2=large&x2=tab.size&q3=purple&x3= colorfam Translated to SaaS:
  • 33. Solutions – Result ComparisonsComparing the Shadow Query Results ●  Record query result times and deltas ●  Record total number of results and deltas ●  Record count of products in result A and not in result B, and vice- versa ●  Record Damerau-Levenshtein Distance, using product IDs instead of letters ●  Use graph dashboards to “visualize quality” as the search metrics converged
  • 34. Calculated based on operations transforming a list of products from one sequence to another ● Insertion ● Deletion ● Substitution ● Transposition ● Each operation has a cost, weighted higher at the start of the sequence Solutions – Modified Damerau-Levenshtein Distance
  • 35. Preparing for ‘Solr Day’ ● Load Test using recorded production queries replayed through the shadow query at high load ● Monitored CPU and Memory - It’s all about that swap space ● Diagnose crashes from good bots doing bad things
  • 36. It’s On!!! We turned it on for our customers and….. ●  Nobody noticed anything had changed ●  They just enjoyed it being 600ms faster!
  • 37. After The Party... We continued to use the Shadow Query to verify the new Solr stack ●  Kept making calls to the SAAS search engine in the background ●  Provided a safety net for an important sale period ●  Continued to use metrics to validate rule refinements
  • 38. Wisdom From The Trail Pack It Out! ● Start with a solid team ● Trust matters in all directions ● Use the best tools ● Use data to validate everything ● Stop relying on hope and heroics and instead bake QA into the process and the system
  • 39. Awesome People Innovent Solutions Jason Hellman, Anria Billavara, & Team Lucidworks Greg Harris & Support Team
  • 40. Contact Us Dale Smith ● Twitter: @dasmith836 ● dasmith836@yahoo.com ● LinkedIn: dasmith836 ● Facebook: dasmith836 (hm, I’m sensing a pattern...) Chris Phillips ● Twitter: @realchrispdad ● LinkedIn: realchrispdad