SlideShare une entreprise Scribd logo
1  sur  104
Télécharger pour lire hors ligne
WRITING A SEARCH ENGINE.
HOW HARD COULD IT BE?
ANTHONY BROWN
@BRUINBROWN93
ANTHONY@COMPOSITIONAL-IT.COM
ABOUT
ABOUT ME
▸ Consultant at Compositional IT
▸ F# dev for ~3 years now
▸ Interested in Big Data, IoT, Cloud and Distributed Systems
COMPOSITIONAL IT
FUNCTIONAL FIRST. CLOUD READY.
@COMPOSITIONALIT
HOW HARD COULD IT BE?
Every software developer ever
INTRODUCTION
IT’S ONLY AN OPERATING SYSTEM, ALL
IT DOES IS RUNS PROGRAMS!
Everybody when Windows blue screens
INTRODUCTION
IT’S ONLY A MULTIPLAYER ONLINE VIDEO
GAME!
Anybody playing a game when lag spikes hit
TEXT
IT’S ONLY 2 LINES OF JAVASCRIPT
Backend developer needing to make a small API change
INTRODUCTION
DUDE. HOLD MY BEER.
Drunk people 10 seconds before
making a terrible mistake
SATURDAY MORNING.
PLANS CANCELLED.
WHAT NEXT?
HIT UP GOOGLE.
WHAT TO DO IN LONDON
THIS WEEKEND?
WRITING A SEARCH ENGINE.
HOW HARD COULD IT BE?
WRITING A SEARCH ENGINE WITH
AZURE AND F# IN A WEEKEND.
BUT FIRST.
THIS WAS A WEEKEND
PROJECT.
YOU SHOULD EXPECT:

- HACKY CODE.
YOU SHOULD EXPECT:
- DEMOS TO FAIL.
YOU SHOULD NOT EXPECT:
- A DEEP DIVE INTO SEARCH
ENGINE TECH.
SEARCH ENGINE BACKGROUND
CONSTRAINTS
▸ Not a priority
▸ Can’t cost more than £85 per month
▸ No operations investment
▸ Limit to the weekend
BACKGROUND
EVERYTHING I KNOW ABOUT HOW SEARCH ENGINES WORK
▸
▸
▸
▸
▸
▸
THE ANATOMY OF A LARGE-
SCALE HYPER TEXTUAL WEB
SEARCH ENGINE
SERGEY BRIN
LARRY PAGE
IT’S 2016.
THE WEB’S CHANGED.
A LOT.
WHAT’S NEW?
+ SCALE
WHAT’S NEW?
+ USERS
WHAT’S NEW?
+ GLOBALISATION
WHAT’S NEW?
+ CLOUD
WHAT’S NEW?
+ PLATFORM AS A SERVICE
WHAT’S NEW?
- INFRASTRUCTURE
WHAT’S NEW?
- PERSONAL HOSTING
SEARCH ENGINE BACKGROUND
WHAT’S IMPORTANT?
▸ Search
▸ Scraping
▸ Page rank
SEARCH IMPLEMENTATION
HOW TO FIND A NEEDLE IN A HAYSTACK
▸ Take all of your documents
▸ Record all of the words which occur within a file
▸ Invert that index
▸ List of all words and the documents they appear in
▸ For all words in the search query, find the files which appear in every inverted
index
SOUNDS EASY RIGHT?
I DON’T CARE ABOUT IT.
AZURE SEARCH
MANAGED SEARCH AS A
SERVICE
AZURE SEARCH
WHAT DOES AZURE SEARCH GIVE US?
▸ Hosted Search as a Service
▸ HTTP API for indexing and retrieving documents
▸ Ability to scale out (more replicas, more indexes)
▸ Free basic tier
AZURE SEARCH IN THE
AZURE PORTAL.
BOOSTING DEMO.
WE HAVE SEARCH.
WHAT NEXT?
INDEXING DATA
WHAT IS A CRAWLER
▸ Autonomously find every web page on the internet
▸ Pull the content from that web page and index it
▸ Read the links on that page and index those links
▸ Recursively process until every page on the internet has been reached
THE PROBLEM?
THE INTERNET’S PRETTY BIG.
AZURE SERVICE BUS
DISTRIBUTED MESSAGE
QUEUES
INDEXING DATA
WHAT DOES AZURE SERVICE BUS GIVE US?
▸ Scalable durable queues and topics with guaranteed availability
▸ .Net APIs to communicate with the service bus
▸ Free basic tier
WORKING WITH A
SERVICE BUS QUEUE.
WE NEED TO BE GOOD CITIZENS.
WE DON’T WANT TO DDOS A SINGLE
WEBSITE DURING CRAWLING.
SERVICE BUS PROVIDES SUPPORT
FOR MESSAGE DE-DUPLICATION
BASED ON CONTENT.
WE DON’T WANT TO SCRAPE
THROUGH EVERY WEB PAGE IN THE
WORLD.
WE DON’T WANT TO INDEX:
- GOOGLE SEARCH QUERIES
WE DON’T WANT TO INDEX:
- PROTECTED CONTENT
WE DON’T WANT TO INDEX:
- IRRELEVANT CONTENT
DEALING WITH THE
ROBOTS.TXT FILE
WRITING BASIC PARSERS IN
F#
BEING A WELL BEHAVED SCRAPER
WHAT IS ROBOTS.TXT?
▸ Text file standard for telling web scrapers what they should scrape
▸ Opt-in - crawlers can ignore the robots.txt file
▸ Simple file stored at the root of the web server
AN EXAMPLE
ROBOTS.TXT FILE.
SIMPLE PARSING WITH
F#.
HTML AND INFORMATION
RETRIEVAL
QUERYING HTML DOCUMENTS
WITH HTML AGILITY PACK
WE HAVE A HTML FILE.
WE NEED THE CONTENT OUT OF IT.
INFORMATION RETRIEVAL FROM HTML DOCUMENTS
WORKING WITH THE HTML AGILITY PACK
▸ Provides a simple query layer over HTML documents
▸ Works with well formatted and poorly formatted HTML
▸ Provides XPath support over the document
▸ Allows for querying for individual properties and elements
EXTRACTING LINKS FROM
A HTML DOCUMENT
EXTRACTING ALL OF THE CONTENT
FROM AN HTML DOCUMENT
WE NOW HAVE A WEB SCRAPER.
WE NEED TO RUN THE WEB
SCRAPER.
AZURE WEBJOBS
SIMPLE HOSTING OF LONG
RUNNING PROCESSES
AZURE WEB JOBS
WHAT ARE WEB JOBS?
▸ A means of hosting basic executables in the cloud
▸ Provides simplified deployment and monitoring
▸ Pricing per minute of usage
WE NOW HAVE A SEARCH ENGINE.
KIND OF.
SEARCH IS A
RECOMMENDATION PROBLEM.
HOW DO WE RECOMMEND
CONTENT TO USERS?
PAGE RANK
FINDING THE MOST INFLUENTIAL
SITES ON THE INTERNET
PAGE RANK
WHAT IS PAGE RANK?
▸ Stanford’s patented algorithm
▸ Helps you find the most influential websites on the internet
▸ Websites with lots of links to them are more influential
THE PROBLEM?
THERE’S LOTS OF WEBSITES ON THE
INTERNET.
THERE’S EVEN MORE LINKS
BETWEEN WEBSITES.
WE HAVE A HUGE LINK GRAPH.
WE NEED TO PROCESS THAT GRAPH.
BIG DATA PROCESSING WITH
MBRACE AND CLOUDFLOWS.
WE HAVE A QUERY WHICH NEEDS TO
RUN DAILY.
WE NEED TO ORCHESTRATE IT.
AZURE FUNCTIONS + AZURE
RESOURCE MANAGER
USING AZURE FUNCTIONS
FOR DEVOPS
DEVOPS
WHAT IS AZURE RESOURCE MANAGER?
▸ Declarative way of describing Azure infrastructure
▸ REST APIs to deploy infrastructure template files
▸ APIs to see current deployment status
DEVOPS
WHAT IS AZURE FUNCTIONS?
▸ Lightweight scripting of Azure web jobs
▸ Allows for running scripts in response to certain events
▸ Billing based on number of function invocations
DEVOPS
USING AZURE FUNCTIONS FOR DEVOPS
▸ Set up a timer triggered Azure Function
▸ Deploy an Mbrace cluster through Azure Resource Manager
▸ Send an event when the job completes
▸ Second Azure Function for deleting the MBrace cluster
AZURE FUNCTIONS AND
AZURE RESOURCE MANAGER.
WE NOW HAVE EVERYTHING IN
PLACE FOR A SEARCH ENGINE.
NOBODY CAN ACCESS IT THOUGH.
AZURE FUNCTIONS
SERVERLESS WEB APIS WITH
AZURE FUNCTIONS
AZURE FUNCTIONS CAN
OPERATE ON HTTP REQUESTS.
NO LONG TERM
HOSTING COSTS.
AZURE FUNCTIONS HTTP
API DEMO.
DONE.
SEARCH ENGINE COMPLETE.
HTTP API
AZURE SEARCH
LINK DATABASE
PAGERANK
CLUSTER ORCHESTRATOR
AZURE SERVICEBUS
INDEXER
PAGERANK IMPORTER
PAGERANK SCORE
STORE
PLENTY OF ROOM FOR
IMPROVEMENTS.
CACHING SEARCH
QUERIES.
QUERY AUTO
COMPLETE.
SEARCH A GIVEN
DOMAIN.
MULTIPLE LANGUAGE
SUPPORT.
SUPPORT FOR OTHER
DOCUMENT TYPES.
BETTER INFORMATION
RETRIEVAL ALGORITHMS.
WHAT’S NEXT FOR IT?
NOTHING.
PRODUCTISING A GOOGLE
COMPETITOR IS BASICALLY
IMPOSSIBLE.
IN SUMMARY
WRAPPING UP & KEY
TAKEAWAYS
AZURE + F# = <3
AZURE MAKES HARD
INFRASTRUCTURE PROBLEMS
SIMPLE.
F# MAKES HARD SOFTWARE
PROBLEMS SIMPLE.
TOGETHER THEY MAKE
HARD PROBLEMS SIMPLE.
IT’S NOT GOOGLE.
BUT IT TOOK 1 DEV 2 DAYS.
CLOUD IS THE EPITOME
OF BUSINESS AGILITY
COMPOSITIONAL IT
ANTHONY@COMPOSITIONAL-IT.COM
FUNCTIONAL FIRST. CLOUD READY.
Q&A.

Contenu connexe

Tendances

Filesystems
FilesystemsFilesystems
Filesystemsroyans
 
Troubleshooting EC2- Linux Server Configuration
Troubleshooting EC2- Linux Server ConfigurationTroubleshooting EC2- Linux Server Configuration
Troubleshooting EC2- Linux Server ConfigurationArchanaDeviKapaliVij
 
Continuous Delivery in Java
Continuous Delivery in JavaContinuous Delivery in Java
Continuous Delivery in JavaXPeppers
 
Anatomy of a high-volume, cloud-based WordPress architecture
Anatomy of a high-volume, cloud-based WordPress architectureAnatomy of a high-volume, cloud-based WordPress architecture
Anatomy of a high-volume, cloud-based WordPress architectureGabriel Koen
 
Booting your Microservices Architecture with Spring & Netflix
Booting your Microservices Architecture with Spring & NetflixBooting your Microservices Architecture with Spring & Netflix
Booting your Microservices Architecture with Spring & NetflixJoris Kuipers
 
Vera: How I WiFi Enabled My Coffee Pot
Vera: How I WiFi Enabled My Coffee PotVera: How I WiFi Enabled My Coffee Pot
Vera: How I WiFi Enabled My Coffee PotTyler Petresky
 
Elm - Could this be the Future of Web Dev?
Elm - Could this be the Future of Web Dev?Elm - Could this be the Future of Web Dev?
Elm - Could this be the Future of Web Dev?David Hoerster
 
Intro to elixir and phoenix
Intro to elixir and phoenixIntro to elixir and phoenix
Intro to elixir and phoenixJared Smith
 
How Elixir helped us scale our Video User Profile Service for the Olympics
How Elixir helped us scale our Video User Profile Service for the OlympicsHow Elixir helped us scale our Video User Profile Service for the Olympics
How Elixir helped us scale our Video User Profile Service for the OlympicsEmerson Macedo
 
Integrate Jenkins with S3
Integrate Jenkins with S3Integrate Jenkins with S3
Integrate Jenkins with S3devopsjourney
 
Build Your Own Real-Time Web Service with Elixir Phoenix
Build Your Own Real-Time Web Service with Elixir PhoenixBuild Your Own Real-Time Web Service with Elixir Phoenix
Build Your Own Real-Time Web Service with Elixir PhoenixChi-chi Ekweozor
 
Security enabling at amazon cloud (presntation)
Security enabling at amazon cloud  (presntation)Security enabling at amazon cloud  (presntation)
Security enabling at amazon cloud (presntation)Ghazanfar Latif (Gabe)
 
Elixir – Peeking into Elixir's Processes, OTP and Supervisors
Elixir – Peeking into Elixir's Processes, OTP and SupervisorsElixir – Peeking into Elixir's Processes, OTP and Supervisors
Elixir – Peeking into Elixir's Processes, OTP and SupervisorsBenjamin Tan
 
Continuous integration of_puppet_code
Continuous integration of_puppet_codeContinuous integration of_puppet_code
Continuous integration of_puppet_codeDevoteam Revolve
 
Serverless in production, an experience report (Going Serverless, 28 Feb 2018)
Serverless in production, an experience report (Going Serverless, 28 Feb 2018)Serverless in production, an experience report (Going Serverless, 28 Feb 2018)
Serverless in production, an experience report (Going Serverless, 28 Feb 2018)Domas Lasauskas
 
Building Event Driven API Services Using Webhooks
Building Event Driven API Services Using WebhooksBuilding Event Driven API Services Using Webhooks
Building Event Driven API Services Using WebhooksCloud Elements
 
Infrastructure Automation at Scale
Infrastructure Automation at ScaleInfrastructure Automation at Scale
Infrastructure Automation at ScaleDataCentred
 

Tendances (20)

Filesystems
FilesystemsFilesystems
Filesystems
 
Troubleshooting EC2- Linux Server Configuration
Troubleshooting EC2- Linux Server ConfigurationTroubleshooting EC2- Linux Server Configuration
Troubleshooting EC2- Linux Server Configuration
 
Continuous Delivery in Java
Continuous Delivery in JavaContinuous Delivery in Java
Continuous Delivery in Java
 
Anatomy of a high-volume, cloud-based WordPress architecture
Anatomy of a high-volume, cloud-based WordPress architectureAnatomy of a high-volume, cloud-based WordPress architecture
Anatomy of a high-volume, cloud-based WordPress architecture
 
Booting your Microservices Architecture with Spring & Netflix
Booting your Microservices Architecture with Spring & NetflixBooting your Microservices Architecture with Spring & Netflix
Booting your Microservices Architecture with Spring & Netflix
 
Vera: How I WiFi Enabled My Coffee Pot
Vera: How I WiFi Enabled My Coffee PotVera: How I WiFi Enabled My Coffee Pot
Vera: How I WiFi Enabled My Coffee Pot
 
Elm - Could this be the Future of Web Dev?
Elm - Could this be the Future of Web Dev?Elm - Could this be the Future of Web Dev?
Elm - Could this be the Future of Web Dev?
 
Intro to elixir and phoenix
Intro to elixir and phoenixIntro to elixir and phoenix
Intro to elixir and phoenix
 
How Postman adopted Docker
How Postman adopted DockerHow Postman adopted Docker
How Postman adopted Docker
 
How Elixir helped us scale our Video User Profile Service for the Olympics
How Elixir helped us scale our Video User Profile Service for the OlympicsHow Elixir helped us scale our Video User Profile Service for the Olympics
How Elixir helped us scale our Video User Profile Service for the Olympics
 
Integrate Jenkins with S3
Integrate Jenkins with S3Integrate Jenkins with S3
Integrate Jenkins with S3
 
Build Your Own Real-Time Web Service with Elixir Phoenix
Build Your Own Real-Time Web Service with Elixir PhoenixBuild Your Own Real-Time Web Service with Elixir Phoenix
Build Your Own Real-Time Web Service with Elixir Phoenix
 
Advanced Container Scheduling
Advanced Container SchedulingAdvanced Container Scheduling
Advanced Container Scheduling
 
NodeJS @ ACS
NodeJS @ ACSNodeJS @ ACS
NodeJS @ ACS
 
Security enabling at amazon cloud (presntation)
Security enabling at amazon cloud  (presntation)Security enabling at amazon cloud  (presntation)
Security enabling at amazon cloud (presntation)
 
Elixir – Peeking into Elixir's Processes, OTP and Supervisors
Elixir – Peeking into Elixir's Processes, OTP and SupervisorsElixir – Peeking into Elixir's Processes, OTP and Supervisors
Elixir – Peeking into Elixir's Processes, OTP and Supervisors
 
Continuous integration of_puppet_code
Continuous integration of_puppet_codeContinuous integration of_puppet_code
Continuous integration of_puppet_code
 
Serverless in production, an experience report (Going Serverless, 28 Feb 2018)
Serverless in production, an experience report (Going Serverless, 28 Feb 2018)Serverless in production, an experience report (Going Serverless, 28 Feb 2018)
Serverless in production, an experience report (Going Serverless, 28 Feb 2018)
 
Building Event Driven API Services Using Webhooks
Building Event Driven API Services Using WebhooksBuilding Event Driven API Services Using Webhooks
Building Event Driven API Services Using Webhooks
 
Infrastructure Automation at Scale
Infrastructure Automation at ScaleInfrastructure Automation at Scale
Infrastructure Automation at Scale
 

En vedette

Building Skynet: Machine Learning for Software Developers
Building Skynet: Machine Learning for Software DevelopersBuilding Skynet: Machine Learning for Software Developers
Building Skynet: Machine Learning for Software DevelopersAnthony Brown
 
Reactive Development: Commands, Actors and Events. Oh My!!
Reactive Development: Commands, Actors and Events.  Oh My!!Reactive Development: Commands, Actors and Events.  Oh My!!
Reactive Development: Commands, Actors and Events. Oh My!!David Hoerster
 
Akka.net versus microsoft orleans
Akka.net versus microsoft orleansAkka.net versus microsoft orleans
Akka.net versus microsoft orleansBill Tulloch
 
F# Type Provider for R Statistical Platform
F# Type Provider for R Statistical PlatformF# Type Provider for R Statistical Platform
F# Type Provider for R Statistical PlatformHoward Mansell
 
Streaming ETL With Akka.NET
Streaming ETL With Akka.NETStreaming ETL With Akka.NET
Streaming ETL With Akka.NETpetabridge
 
Declarative authorization in REST services in SharePoint with F# and ServiceS...
Declarative authorization in REST services in SharePoint with F# and ServiceS...Declarative authorization in REST services in SharePoint with F# and ServiceS...
Declarative authorization in REST services in SharePoint with F# and ServiceS...Sergey Tihon
 
Scalable and Flexible Machine Learning With Scala @ LinkedIn
Scalable and Flexible Machine Learning With Scala @ LinkedInScalable and Flexible Machine Learning With Scala @ LinkedIn
Scalable and Flexible Machine Learning With Scala @ LinkedInVitaly Gordon
 
Railway Oriented Programming
Railway Oriented ProgrammingRailway Oriented Programming
Railway Oriented ProgrammingScott Wlaschin
 

En vedette (9)

Building Skynet: Machine Learning for Software Developers
Building Skynet: Machine Learning for Software DevelopersBuilding Skynet: Machine Learning for Software Developers
Building Skynet: Machine Learning for Software Developers
 
Drm and the web
Drm and the webDrm and the web
Drm and the web
 
Reactive Development: Commands, Actors and Events. Oh My!!
Reactive Development: Commands, Actors and Events.  Oh My!!Reactive Development: Commands, Actors and Events.  Oh My!!
Reactive Development: Commands, Actors and Events. Oh My!!
 
Akka.net versus microsoft orleans
Akka.net versus microsoft orleansAkka.net versus microsoft orleans
Akka.net versus microsoft orleans
 
F# Type Provider for R Statistical Platform
F# Type Provider for R Statistical PlatformF# Type Provider for R Statistical Platform
F# Type Provider for R Statistical Platform
 
Streaming ETL With Akka.NET
Streaming ETL With Akka.NETStreaming ETL With Akka.NET
Streaming ETL With Akka.NET
 
Declarative authorization in REST services in SharePoint with F# and ServiceS...
Declarative authorization in REST services in SharePoint with F# and ServiceS...Declarative authorization in REST services in SharePoint with F# and ServiceS...
Declarative authorization in REST services in SharePoint with F# and ServiceS...
 
Scalable and Flexible Machine Learning With Scala @ LinkedIn
Scalable and Flexible Machine Learning With Scala @ LinkedInScalable and Flexible Machine Learning With Scala @ LinkedIn
Scalable and Flexible Machine Learning With Scala @ LinkedIn
 
Railway Oriented Programming
Railway Oriented ProgrammingRailway Oriented Programming
Railway Oriented Programming
 

Similaire à Build a Search Engine in a Weekend with Azure and F

[판교에서 만나는 아마존웹서비스] Obama for America를 통해서 본 AWS에서의 데이터 분석
[판교에서 만나는 아마존웹서비스] Obama for America를 통해서 본 AWS에서의 데이터 분석 [판교에서 만나는 아마존웹서비스] Obama for America를 통해서 본 AWS에서의 데이터 분석
[판교에서 만나는 아마존웹서비스] Obama for America를 통해서 본 AWS에서의 데이터 분석 Amazon Web Services Korea
 
Diving into event-sourcing and event-driven architectures
Diving into event-sourcing and event-driven architecturesDiving into event-sourcing and event-driven architectures
Diving into event-sourcing and event-driven architecturesUnai Esteibar
 
Ansible meetup-0915
Ansible meetup-0915Ansible meetup-0915
Ansible meetup-0915Pierre Mavro
 
PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...
PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...
PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...Codemotion
 
PHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolPHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolAlessandro Cinelli (cirpo)
 
Case Study: Sprinklr Uses Amazon EBS to Maximize Its NoSQL Deployment - DAT33...
Case Study: Sprinklr Uses Amazon EBS to Maximize Its NoSQL Deployment - DAT33...Case Study: Sprinklr Uses Amazon EBS to Maximize Its NoSQL Deployment - DAT33...
Case Study: Sprinklr Uses Amazon EBS to Maximize Its NoSQL Deployment - DAT33...Amazon Web Services
 
Micro services may not be the best idea
Micro services may not be the best ideaMicro services may not be the best idea
Micro services may not be the best ideaSamuel ROZE
 
IRJET - Review on Search Engine Optimization
IRJET - Review on Search Engine OptimizationIRJET - Review on Search Engine Optimization
IRJET - Review on Search Engine OptimizationIRJET Journal
 
Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...
Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...
Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...javier ramirez
 
OpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOps
OpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOpsOpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOps
OpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOpsjavier ramirez
 
Automation and Developer Infrastructure — Empowering Engineers to Move from I...
Automation and Developer Infrastructure — Empowering Engineers to Move from I...Automation and Developer Infrastructure — Empowering Engineers to Move from I...
Automation and Developer Infrastructure — Empowering Engineers to Move from I...indeedeng
 
Continuous Deployment @ AWS Re:Invent
Continuous Deployment @ AWS Re:InventContinuous Deployment @ AWS Re:Invent
Continuous Deployment @ AWS Re:InventJohn Schneider
 
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...Amazon Web Services
 
PHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the foolPHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the foolAlessandro Cinelli (cirpo)
 
Azure web functions little bites of services
Azure web functions little bites of servicesAzure web functions little bites of services
Azure web functions little bites of servicesAaron Petry
 
Basic Introduction to Web Development
Basic Introduction to Web DevelopmentBasic Introduction to Web Development
Basic Introduction to Web DevelopmentBurhan Khalid
 
Open-Source Analytics Stack on MongoDB, with Schema, Pierre-Alain Jachiet and...
Open-Source Analytics Stack on MongoDB, with Schema, Pierre-Alain Jachiet and...Open-Source Analytics Stack on MongoDB, with Schema, Pierre-Alain Jachiet and...
Open-Source Analytics Stack on MongoDB, with Schema, Pierre-Alain Jachiet and...Pôle Systematic Paris-Region
 
Optimizing for Change (Henrik Joreteg)
Optimizing for Change (Henrik Joreteg)Optimizing for Change (Henrik Joreteg)
Optimizing for Change (Henrik Joreteg)Future Insights
 

Similaire à Build a Search Engine in a Weekend with Azure and F (20)

[판교에서 만나는 아마존웹서비스] Obama for America를 통해서 본 AWS에서의 데이터 분석
[판교에서 만나는 아마존웹서비스] Obama for America를 통해서 본 AWS에서의 데이터 분석 [판교에서 만나는 아마존웹서비스] Obama for America를 통해서 본 AWS에서의 데이터 분석
[판교에서 만나는 아마존웹서비스] Obama for America를 통해서 본 AWS에서의 데이터 분석
 
Diving into event-sourcing and event-driven architectures
Diving into event-sourcing and event-driven architecturesDiving into event-sourcing and event-driven architectures
Diving into event-sourcing and event-driven architectures
 
Ansible meetup-0915
Ansible meetup-0915Ansible meetup-0915
Ansible meetup-0915
 
PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...
PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...
PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...
 
PHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolPHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the fool
 
Case Study: Sprinklr Uses Amazon EBS to Maximize Its NoSQL Deployment - DAT33...
Case Study: Sprinklr Uses Amazon EBS to Maximize Its NoSQL Deployment - DAT33...Case Study: Sprinklr Uses Amazon EBS to Maximize Its NoSQL Deployment - DAT33...
Case Study: Sprinklr Uses Amazon EBS to Maximize Its NoSQL Deployment - DAT33...
 
Azure full
Azure fullAzure full
Azure full
 
Micro services may not be the best idea
Micro services may not be the best ideaMicro services may not be the best idea
Micro services may not be the best idea
 
IRJET - Review on Search Engine Optimization
IRJET - Review on Search Engine OptimizationIRJET - Review on Search Engine Optimization
IRJET - Review on Search Engine Optimization
 
Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...
Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...
Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...
 
OpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOps
OpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOpsOpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOps
OpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOps
 
Automation and Developer Infrastructure — Empowering Engineers to Move from I...
Automation and Developer Infrastructure — Empowering Engineers to Move from I...Automation and Developer Infrastructure — Empowering Engineers to Move from I...
Automation and Developer Infrastructure — Empowering Engineers to Move from I...
 
GreenButton-201502
GreenButton-201502GreenButton-201502
GreenButton-201502
 
Continuous Deployment @ AWS Re:Invent
Continuous Deployment @ AWS Re:InventContinuous Deployment @ AWS Re:Invent
Continuous Deployment @ AWS Re:Invent
 
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
 
PHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the foolPHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the fool
 
Azure web functions little bites of services
Azure web functions little bites of servicesAzure web functions little bites of services
Azure web functions little bites of services
 
Basic Introduction to Web Development
Basic Introduction to Web DevelopmentBasic Introduction to Web Development
Basic Introduction to Web Development
 
Open-Source Analytics Stack on MongoDB, with Schema, Pierre-Alain Jachiet and...
Open-Source Analytics Stack on MongoDB, with Schema, Pierre-Alain Jachiet and...Open-Source Analytics Stack on MongoDB, with Schema, Pierre-Alain Jachiet and...
Open-Source Analytics Stack on MongoDB, with Schema, Pierre-Alain Jachiet and...
 
Optimizing for Change (Henrik Joreteg)
Optimizing for Change (Henrik Joreteg)Optimizing for Change (Henrik Joreteg)
Optimizing for Change (Henrik Joreteg)
 

Dernier

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 

Dernier (20)

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 

Build a Search Engine in a Weekend with Azure and F