SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
Share what you know




   Sam Kimbrel                               sam@snapguide.com
   Software Engineer

Monday, April 1, 13
What is Snapguide?
                               • 1.5 million uniques/month
                               • ~2000 reqs/min across app
                                 and web

                               • Python (Pyramid/uWSGI/
                                 nginx)

                               • MySQL/Redis
                               • Built primarily on AWS: EC2,
                                 RDS, S3, SQS, SNS,
                                 CloudSearch, CloudFront




                                            daniel@snapguide.com • confidential do not distribute



Monday, April 1, 13
daniel@snapguide.com • confidential do not distribute



Monday, April 1, 13
daniel@snapguide.com • confidential do not distribute



Monday, April 1, 13
daniel@snapguide.com • confidential do not distribute



Monday, April 1, 13
Snapguide on CloudSearch
           • Beta trial users after mentioning Solr on the phone
                 (seriously!)

           • Primary data set: guides
           • Facets: guide topic, “featured” boolean, visibility/ACL
                 flags

           • “autocomplete” search (more later)




                                                           daniel@snapguide.com • confidential do not distribute



Monday, April 1, 13
{
      "lang": "en",
      "fields": {
          "step_count": "14",
          "author_external_id": "qS878yliQ4mxg_9uHt2AZg",
          "author": "Claire Hesseltine",
          "items": [
              "Preheat oven to 325 degrees Fahrenheit.",
              ...
          ],
          "title": "Make Brown Butter Sea Salt Cookies",
          "featured": 1,
          "summary": "The brown butter adds a nutty, caramel-like taste
  to these delicious cookies.",
          "topic": [
              "desserts"
          ],
          "main_image_uuid": "43d201c8fd4b4833b83d3f95d112f1c1",
          "like_count": 761,

                      "public": "true"
             },
             "version": 1364333310,
             "type": "add",
             "id": "9eabff97e32c4244a8205da3fba442e9"
  }                                                     daniel@snapguide.com • confidential do not distribute



Monday, April 1, 13
Queries
           • Guide text search:
           q=cookies
           • Guide search with topic:
           q=cookies&facet=topic&bq=topic:‘desserts’
           • “Typeahead”/suggestion search:
           bq=(or ‘paper flower’ ‘paper flower*’)




                                              daniel@snapguide.com • confidential do not distribute



Monday, April 1, 13
Result Ranking
           • Use “Compare Rank Expressions”
           • text_relevance is your friend
           • Goals:
                • Boost popular/featured guides
                • Make title/summary matches worth more than item
                      (supplies, step text) matches




                                                        daniel@snapguide.com • confidential do not distribute



Monday, April 1, 13
min(
 cs.text_relevance(
  {"weights":
   {"title":2.5, "author": 1.5, "items":
   0.1, "summary": 1.5},
  "default_weight":1}),
 1000)
+ min(200, like_count / 10)
+ 100*featured


                             daniel@snapguide.com • confidential do not distribute



Monday, April 1, 13
Offline index updates
           • Extracting guide data to update document is slow
           • Remove update from online web request process
           • Internal-only API endpoints
           • SQS
           • queue_consumer daemon




                                                       daniel@snapguide.com • confidential do not distribute



Monday, April 1, 13
Offline index updates

                       Web server           SQS




                                      Queue consumer
                       Snapguide
                       DB/Redis




                                         Web server
                                    (dedicated to queues)   CloudSearch




                                                            daniel@snapguide.com • confidential do not distribute



Monday, April 1, 13
Performance
                      SSL is painful




                                           daniel@snapguide.com • confidential do not distribute



Monday, April 1, 13
Performance




         but physical proximity (us-west-1) is
                       awesome



                                                 daniel@snapguide.com • confidential do not distribute



Monday, April 1, 13
Future work
           • Add more domains (users, new features)
           • Search-based suggestion engine
           • Improved ranking/scoring — crawl our social graph




                                                       daniel@snapguide.com • confidential do not distribute



Monday, April 1, 13
Questions?




    www.snapguide.com

Monday, April 1, 13

Weitere ähnliche Inhalte

Was ist angesagt?

Customizing the custom loop wordcamp 2012
Customizing the custom loop   wordcamp 2012Customizing the custom loop   wordcamp 2012
Customizing the custom loop wordcamp 2012Alexander Sapountzis
 
6 reasons Jubilee could be a Rubyist's new best friend
6 reasons Jubilee could be a Rubyist's new best friend6 reasons Jubilee could be a Rubyist's new best friend
6 reasons Jubilee could be a Rubyist's new best friendForrest Chang
 
Less is more: Getting Real About Content and Features
Less is more: Getting Real About Content and Features Less is more: Getting Real About Content and Features
Less is more: Getting Real About Content and Features Charlie Morris
 
Social media and internet marketing
Social media and internet marketingSocial media and internet marketing
Social media and internet marketingAidan Crawford
 
Getting Started with Axure Widget Libraries
Getting Started with Axure Widget LibrariesGetting Started with Axure Widget Libraries
Getting Started with Axure Widget LibrariesJayne Spottswood
 
The Coding Designer's Survival Kit - Capital Camp
The Coding Designer's Survival Kit - Capital CampThe Coding Designer's Survival Kit - Capital Camp
The Coding Designer's Survival Kit - Capital Campcanarymason
 

Was ist angesagt? (7)

Irb Tips and Tricks
Irb Tips and TricksIrb Tips and Tricks
Irb Tips and Tricks
 
Customizing the custom loop wordcamp 2012
Customizing the custom loop   wordcamp 2012Customizing the custom loop   wordcamp 2012
Customizing the custom loop wordcamp 2012
 
6 reasons Jubilee could be a Rubyist's new best friend
6 reasons Jubilee could be a Rubyist's new best friend6 reasons Jubilee could be a Rubyist's new best friend
6 reasons Jubilee could be a Rubyist's new best friend
 
Less is more: Getting Real About Content and Features
Less is more: Getting Real About Content and Features Less is more: Getting Real About Content and Features
Less is more: Getting Real About Content and Features
 
Social media and internet marketing
Social media and internet marketingSocial media and internet marketing
Social media and internet marketing
 
Getting Started with Axure Widget Libraries
Getting Started with Axure Widget LibrariesGetting Started with Axure Widget Libraries
Getting Started with Axure Widget Libraries
 
The Coding Designer's Survival Kit - Capital Camp
The Coding Designer's Survival Kit - Capital CampThe Coding Designer's Survival Kit - Capital Camp
The Coding Designer's Survival Kit - Capital Camp
 

Andere mochten auch

sampleSlide
sampleSlidesampleSlide
sampleSlideroap_jp
 
Tugas pendidikan kewarganegaraan 2
Tugas pendidikan kewarganegaraan 2   Tugas pendidikan kewarganegaraan 2
Tugas pendidikan kewarganegaraan 2 Risky Saputra
 
wed 2.0 y la nube
wed 2.0 y la nubewed 2.0 y la nube
wed 2.0 y la nubetiernuri
 
Conceptual issues in politics of education
Conceptual issues in politics of educationConceptual issues in politics of education
Conceptual issues in politics of educationAlexander Decker
 
Constraints to the success of women small scale entrepreneurs in kenya
Constraints to the success of women small scale entrepreneurs in kenyaConstraints to the success of women small scale entrepreneurs in kenya
Constraints to the success of women small scale entrepreneurs in kenyaAlexander Decker
 
Conditional conservatism and its effect on earnings quality and stock prices ...
Conditional conservatism and its effect on earnings quality and stock prices ...Conditional conservatism and its effect on earnings quality and stock prices ...
Conditional conservatism and its effect on earnings quality and stock prices ...Alexander Decker
 
Coping strategy of rainfall variability due to changing climate in dry sub hu...
Coping strategy of rainfall variability due to changing climate in dry sub hu...Coping strategy of rainfall variability due to changing climate in dry sub hu...
Coping strategy of rainfall variability due to changing climate in dry sub hu...Alexander Decker
 
геопатогенные зоны вся правда об их действии и защитах от них
геопатогенные зоны вся правда об их действии и защитах от нихгеопатогенные зоны вся правда об их действии и защитах от них
геопатогенные зоны вся правда об их действии и защитах от нихСибВерC - защита биополя
 
Contextual factors that impact leadership practices in cross
Contextual factors that impact leadership practices in cross Contextual factors that impact leadership practices in cross
Contextual factors that impact leadership practices in cross Alexander Decker
 
Conditional expectation on extended positive part of crossed
Conditional expectation on extended positive part of crossedConditional expectation on extended positive part of crossed
Conditional expectation on extended positive part of crossedAlexander Decker
 
Contributions of cooperative movement to alleviation of poverty among rural w...
Contributions of cooperative movement to alleviation of poverty among rural w...Contributions of cooperative movement to alleviation of poverty among rural w...
Contributions of cooperative movement to alleviation of poverty among rural w...Alexander Decker
 
Bahraich fatwa on irfan e mazhab
Bahraich fatwa on irfan e mazhabBahraich fatwa on irfan e mazhab
Bahraich fatwa on irfan e mazhabsunnicreative
 
Moving your Desktops to the Cloud with Amazon WorkSpaces
Moving your Desktops to the Cloud with Amazon WorkSpacesMoving your Desktops to the Cloud with Amazon WorkSpaces
Moving your Desktops to the Cloud with Amazon WorkSpacesAmazon Web Services
 
AWS+Intel: Smart Greenhouse Demo
AWS+Intel: Smart Greenhouse DemoAWS+Intel: Smart Greenhouse Demo
AWS+Intel: Smart Greenhouse DemoAmazon Web Services
 

Andere mochten auch (20)

sampleSlide
sampleSlidesampleSlide
sampleSlide
 
Tugas pendidikan kewarganegaraan 2
Tugas pendidikan kewarganegaraan 2   Tugas pendidikan kewarganegaraan 2
Tugas pendidikan kewarganegaraan 2
 
wed 2.0 y la nube
wed 2.0 y la nubewed 2.0 y la nube
wed 2.0 y la nube
 
Rheuma copy
Rheuma copyRheuma copy
Rheuma copy
 
Conceptual issues in politics of education
Conceptual issues in politics of educationConceptual issues in politics of education
Conceptual issues in politics of education
 
Reflexion
ReflexionReflexion
Reflexion
 
Constraints to the success of women small scale entrepreneurs in kenya
Constraints to the success of women small scale entrepreneurs in kenyaConstraints to the success of women small scale entrepreneurs in kenya
Constraints to the success of women small scale entrepreneurs in kenya
 
Conditional conservatism and its effect on earnings quality and stock prices ...
Conditional conservatism and its effect on earnings quality and stock prices ...Conditional conservatism and its effect on earnings quality and stock prices ...
Conditional conservatism and its effect on earnings quality and stock prices ...
 
Reflexion
ReflexionReflexion
Reflexion
 
Coping strategy of rainfall variability due to changing climate in dry sub hu...
Coping strategy of rainfall variability due to changing climate in dry sub hu...Coping strategy of rainfall variability due to changing climate in dry sub hu...
Coping strategy of rainfall variability due to changing climate in dry sub hu...
 
Deporte es vida.
Deporte es vida.Deporte es vida.
Deporte es vida.
 
геопатогенные зоны вся правда об их действии и защитах от них
геопатогенные зоны вся правда об их действии и защитах от нихгеопатогенные зоны вся правда об их действии и защитах от них
геопатогенные зоны вся правда об их действии и защитах от них
 
Contextual factors that impact leadership practices in cross
Contextual factors that impact leadership practices in cross Contextual factors that impact leadership practices in cross
Contextual factors that impact leadership practices in cross
 
Conditional expectation on extended positive part of crossed
Conditional expectation on extended positive part of crossedConditional expectation on extended positive part of crossed
Conditional expectation on extended positive part of crossed
 
Contributions of cooperative movement to alleviation of poverty among rural w...
Contributions of cooperative movement to alleviation of poverty among rural w...Contributions of cooperative movement to alleviation of poverty among rural w...
Contributions of cooperative movement to alleviation of poverty among rural w...
 
Praia de iracema
Praia de iracemaPraia de iracema
Praia de iracema
 
Bahraich fatwa on irfan e mazhab
Bahraich fatwa on irfan e mazhabBahraich fatwa on irfan e mazhab
Bahraich fatwa on irfan e mazhab
 
Moving your Desktops to the Cloud with Amazon WorkSpaces
Moving your Desktops to the Cloud with Amazon WorkSpacesMoving your Desktops to the Cloud with Amazon WorkSpaces
Moving your Desktops to the Cloud with Amazon WorkSpaces
 
Protecting Your Data in AWS
Protecting Your Data in AWSProtecting Your Data in AWS
Protecting Your Data in AWS
 
AWS+Intel: Smart Greenhouse Demo
AWS+Intel: Smart Greenhouse DemoAWS+Intel: Smart Greenhouse Demo
AWS+Intel: Smart Greenhouse Demo
 

Ähnlich wie Snapguide - CloudSearch

AppEngine Performance Tuning
AppEngine Performance TuningAppEngine Performance Tuning
AppEngine Performance TuningDavid Chen
 
Emergency Toolkit Presentation
Emergency Toolkit PresentationEmergency Toolkit Presentation
Emergency Toolkit PresentationRich Benner
 
Lightweight Documentation: An Agile Approach
Lightweight Documentation: An Agile ApproachLightweight Documentation: An Agile Approach
Lightweight Documentation: An Agile ApproachStephen Ritchie
 
Scaling Pinterest
Scaling PinterestScaling Pinterest
Scaling PinterestC4Media
 
OpenStack Doc Overview for Boot Camp
OpenStack Doc Overview for Boot CampOpenStack Doc Overview for Boot Camp
OpenStack Doc Overview for Boot CampAnne Gentle
 
dataviz on d3.js + elasticsearch
dataviz on d3.js + elasticsearchdataviz on d3.js + elasticsearch
dataviz on d3.js + elasticsearchMathieu Elie
 
Design Systems at Scale
Design Systems at ScaleDesign Systems at Scale
Design Systems at ScaleSarah Federman
 
Untangling the web week1
Untangling the web week1Untangling the web week1
Untangling the web week1Derek Jacoby
 
Play Architecture, Implementation, Shiny Objects, and a Proposal
Play Architecture, Implementation, Shiny Objects, and a ProposalPlay Architecture, Implementation, Shiny Objects, and a Proposal
Play Architecture, Implementation, Shiny Objects, and a ProposalMike Slinn
 
Graph in Apache Cassandra. The World’s Most Scalable Graph Database
Graph in Apache Cassandra. The World’s Most Scalable Graph DatabaseGraph in Apache Cassandra. The World’s Most Scalable Graph Database
Graph in Apache Cassandra. The World’s Most Scalable Graph DatabaseConnected Data World
 
Designing and Implementing Search Solutions
Designing and Implementing Search SolutionsDesigning and Implementing Search Solutions
Designing and Implementing Search SolutionsFindwise
 
Presentation
PresentationPresentation
Presentationmmarchani
 
CSC 8101 Non Relational Databases
CSC 8101 Non Relational DatabasesCSC 8101 Non Relational Databases
CSC 8101 Non Relational Databasessjwoodman
 
Exploring Data Preparation and Visualization Tools for Urban Forestry
Exploring Data Preparation and Visualization Tools for Urban ForestryExploring Data Preparation and Visualization Tools for Urban Forestry
Exploring Data Preparation and Visualization Tools for Urban ForestryAzavea
 
SVApps presentation
SVApps presentationSVApps presentation
SVApps presentationllkronus
 
Windycityrails page performance
Windycityrails page performanceWindycityrails page performance
Windycityrails page performanceJohn McCaffrey
 
Seasprint2012ploneconferencereportout
Seasprint2012ploneconferencereportoutSeasprint2012ploneconferencereportout
Seasprint2012ploneconferencereportoutableeb
 
Cassandra Day 2014: Interactive Analytics with Cassandra and Spark
Cassandra Day 2014: Interactive Analytics with Cassandra and SparkCassandra Day 2014: Interactive Analytics with Cassandra and Spark
Cassandra Day 2014: Interactive Analytics with Cassandra and SparkEvan Chan
 
Modeling Data in MongoDB
Modeling Data in MongoDBModeling Data in MongoDB
Modeling Data in MongoDBlehresman
 

Ähnlich wie Snapguide - CloudSearch (20)

AppEngine Performance Tuning
AppEngine Performance TuningAppEngine Performance Tuning
AppEngine Performance Tuning
 
Emergency Toolkit Presentation
Emergency Toolkit PresentationEmergency Toolkit Presentation
Emergency Toolkit Presentation
 
Lightweight Documentation: An Agile Approach
Lightweight Documentation: An Agile ApproachLightweight Documentation: An Agile Approach
Lightweight Documentation: An Agile Approach
 
Scaling Pinterest
Scaling PinterestScaling Pinterest
Scaling Pinterest
 
OpenStack Doc Overview for Boot Camp
OpenStack Doc Overview for Boot CampOpenStack Doc Overview for Boot Camp
OpenStack Doc Overview for Boot Camp
 
dataviz on d3.js + elasticsearch
dataviz on d3.js + elasticsearchdataviz on d3.js + elasticsearch
dataviz on d3.js + elasticsearch
 
Design Systems at Scale
Design Systems at ScaleDesign Systems at Scale
Design Systems at Scale
 
Icon Fonts FTW
Icon Fonts FTWIcon Fonts FTW
Icon Fonts FTW
 
Untangling the web week1
Untangling the web week1Untangling the web week1
Untangling the web week1
 
Play Architecture, Implementation, Shiny Objects, and a Proposal
Play Architecture, Implementation, Shiny Objects, and a ProposalPlay Architecture, Implementation, Shiny Objects, and a Proposal
Play Architecture, Implementation, Shiny Objects, and a Proposal
 
Graph in Apache Cassandra. The World’s Most Scalable Graph Database
Graph in Apache Cassandra. The World’s Most Scalable Graph DatabaseGraph in Apache Cassandra. The World’s Most Scalable Graph Database
Graph in Apache Cassandra. The World’s Most Scalable Graph Database
 
Designing and Implementing Search Solutions
Designing and Implementing Search SolutionsDesigning and Implementing Search Solutions
Designing and Implementing Search Solutions
 
Presentation
PresentationPresentation
Presentation
 
CSC 8101 Non Relational Databases
CSC 8101 Non Relational DatabasesCSC 8101 Non Relational Databases
CSC 8101 Non Relational Databases
 
Exploring Data Preparation and Visualization Tools for Urban Forestry
Exploring Data Preparation and Visualization Tools for Urban ForestryExploring Data Preparation and Visualization Tools for Urban Forestry
Exploring Data Preparation and Visualization Tools for Urban Forestry
 
SVApps presentation
SVApps presentationSVApps presentation
SVApps presentation
 
Windycityrails page performance
Windycityrails page performanceWindycityrails page performance
Windycityrails page performance
 
Seasprint2012ploneconferencereportout
Seasprint2012ploneconferencereportoutSeasprint2012ploneconferencereportout
Seasprint2012ploneconferencereportout
 
Cassandra Day 2014: Interactive Analytics with Cassandra and Spark
Cassandra Day 2014: Interactive Analytics with Cassandra and SparkCassandra Day 2014: Interactive Analytics with Cassandra and Spark
Cassandra Day 2014: Interactive Analytics with Cassandra and Spark
 
Modeling Data in MongoDB
Modeling Data in MongoDBModeling Data in MongoDB
Modeling Data in MongoDB
 

Mehr von Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Mehr von Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Snapguide - CloudSearch

  • 1. Share what you know Sam Kimbrel sam@snapguide.com Software Engineer Monday, April 1, 13
  • 2. What is Snapguide? • 1.5 million uniques/month • ~2000 reqs/min across app and web • Python (Pyramid/uWSGI/ nginx) • MySQL/Redis • Built primarily on AWS: EC2, RDS, S3, SQS, SNS, CloudSearch, CloudFront daniel@snapguide.com • confidential do not distribute Monday, April 1, 13
  • 3. daniel@snapguide.com • confidential do not distribute Monday, April 1, 13
  • 4. daniel@snapguide.com • confidential do not distribute Monday, April 1, 13
  • 5. daniel@snapguide.com • confidential do not distribute Monday, April 1, 13
  • 6. Snapguide on CloudSearch • Beta trial users after mentioning Solr on the phone (seriously!) • Primary data set: guides • Facets: guide topic, “featured” boolean, visibility/ACL flags • “autocomplete” search (more later) daniel@snapguide.com • confidential do not distribute Monday, April 1, 13
  • 7. { "lang": "en", "fields": { "step_count": "14", "author_external_id": "qS878yliQ4mxg_9uHt2AZg", "author": "Claire Hesseltine", "items": [ "Preheat oven to 325 degrees Fahrenheit.", ... ], "title": "Make Brown Butter Sea Salt Cookies", "featured": 1, "summary": "The brown butter adds a nutty, caramel-like taste to these delicious cookies.", "topic": [ "desserts" ], "main_image_uuid": "43d201c8fd4b4833b83d3f95d112f1c1", "like_count": 761, "public": "true" }, "version": 1364333310, "type": "add", "id": "9eabff97e32c4244a8205da3fba442e9" } daniel@snapguide.com • confidential do not distribute Monday, April 1, 13
  • 8. Queries • Guide text search: q=cookies • Guide search with topic: q=cookies&facet=topic&bq=topic:‘desserts’ • “Typeahead”/suggestion search: bq=(or ‘paper flower’ ‘paper flower*’) daniel@snapguide.com • confidential do not distribute Monday, April 1, 13
  • 9. Result Ranking • Use “Compare Rank Expressions” • text_relevance is your friend • Goals: • Boost popular/featured guides • Make title/summary matches worth more than item (supplies, step text) matches daniel@snapguide.com • confidential do not distribute Monday, April 1, 13
  • 10. min( cs.text_relevance( {"weights": {"title":2.5, "author": 1.5, "items": 0.1, "summary": 1.5}, "default_weight":1}), 1000) + min(200, like_count / 10) + 100*featured daniel@snapguide.com • confidential do not distribute Monday, April 1, 13
  • 11. Offline index updates • Extracting guide data to update document is slow • Remove update from online web request process • Internal-only API endpoints • SQS • queue_consumer daemon daniel@snapguide.com • confidential do not distribute Monday, April 1, 13
  • 12. Offline index updates Web server SQS Queue consumer Snapguide DB/Redis Web server (dedicated to queues) CloudSearch daniel@snapguide.com • confidential do not distribute Monday, April 1, 13
  • 13. Performance SSL is painful daniel@snapguide.com • confidential do not distribute Monday, April 1, 13
  • 14. Performance but physical proximity (us-west-1) is awesome daniel@snapguide.com • confidential do not distribute Monday, April 1, 13
  • 15. Future work • Add more domains (users, new features) • Search-based suggestion engine • Improved ranking/scoring — crawl our social graph daniel@snapguide.com • confidential do not distribute Monday, April 1, 13
  • 16. Questions? www.snapguide.com Monday, April 1, 13