SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
From local to global
How plista got its global infrastructure
Moving from local ...
... to global
Tobias Heintz
Core architecture @plista
thz@plista.com
@tobiasinfinity
50259516
Who am I?
• Data-driven platform for content and ad recommendations
• Part of
• Present in 17 markets worldwide
• Market leader in German speaking countries
• Works with 4000+ publishers
• spiegel.de, n-tv.de, sport1.de, etc.
Who is plista?
How does plista work?
• Not a website!
• Collection of recommendation algorithms
• We have Collaborative Filtering, Semantic (Solr), Simple Most Clicked, etc.
• Latency is an issue
• Response time < 100ms
• Lots of asynchronous backend processing
• Recommendations are pre-calculated for many given combinations out of a huge vector space
• Actual delivery is only from cached results
• Real real-time results for a few special recommenders
A recommendation service
The plista system
• High Performance Bus is pub/sub
• Frontend servers only talk to cache
• Recommendations are pre-calculated and cached
• Planet is our admin system
The plista system
• Timezones
• It’s always five o’clock somewhere!
• Currencies
• Language
• Laws
• Privacy
• Data locality
Challenges - organisational
• Timezones
• It’s always five o’clock somewhere!
• Currencies
• Language
• Laws
• Privacy
• Data locality
Challenges - organisational
• Latency
• Data consistency
• Availability
• Partition tolerance
• Cost
• Maintainability
Challenges - technical
Models for i18n
A
● No i18n at all
● All requests go to EMEA
● Total consistency
● Massive latency
● Clone the entire system
● No latency issues
● Double maintenance
● Too many services
Models for i18n
A
● No i18n at all
● All requests go to EMEA
● Total consistency
● Massive latency
B
● Clone the entire system
● No latency issues
● Double maintenance
● Too many services
Models for i18n
A
● No i18n at all
● All requests go to EMEA
● Total consistency
● Massive latency
B
C
● Minimum amount of servers
in APAC
● All backend processing in EMEA
● Very cost-efficient
● Still massive latency
● Clone the entire system
● No latency issues
● Double maintenance
● Too many services
● Some backend processing
in APAC
● As few roles duplicated
as possible
● Eventual consistency
● Just right
Models for i18n
A
● No i18n at all
● All requests go to EMEA
● Total consistency
● Massive latency
B
C
● Minimum amount of servers
in APAC
● All backend processing in EMEA
● Very cost-efficient
● Still massive latency
D
● Clone the entire system
● No latency issues
● Double maintenance
● Too many services
● Some backend processing
in APAC
● As few roles duplicated
as possible
● Eventual consistency
● Just right
Models for i18n
A
● No i18n at all
● All requests go to EMEA
● Total consistency
● Massive latency
B
C
● Minimum amount of servers
in APAC
● All backend processing in EMEA
● Very cost-efficient
● Still massive latency
D ✔
The plista system - i18nized
• Setup still basically the same
• Frontend servers configured exactly alike
• All backend processing still in EMEA
• APAC servers forward data
• Recommendations calculated in EMEA, then cached in APAC
• Each DC has own DB master
• With replicas in each other DC
• Consistency using SequenceDB
The plista system - i18nized
• SequenceDB as centralized source of truth for database Ids
• Ticket server à la Flickr
• Servers in the cloud for quick scaling
• Do it in the cloud: AWS EC2 + ELB
• Fully automatized through puppet
• Need to be able to spin up machines fast when something breaks
• Static DNS routing
• Eventual consistency
• Partition tolerance through statelessness
Pillars of i18n architecture
• Needed because we have multiple DB masters and IDs need to be unique
• Ticket server system based on Percona (MySQL fork)
• 3 masters in the same rack
• Stored procedure that increments a row in a table
• Distributed globally
• Master lives in EMEA DC
• Ids are buffered locally using Redis
• Clients never talk to Master, only Redis buffer
• Cronjob fills buffer
• Very failsafe
DB syncing: SequenceDB
DB syncing: SequenceDB (cont.)
• Based on ideas from Flickr: https://goo.gl/roFVXZ
• Alternative approach at pinterest: https://goo.gl/w7cgtP
• Use 64 bit ID and encode information about the datacenter into the ID
Battling latency: CDNs + Caching
• Most important issue for us: low latency!
• Caching layers built into architecture
• Recall architecture diagram
• CDN for all static data is a no-brainer
• static JS, images and video
DNS: Static over Geo
• GeoDNS means that a domain name is resolved to different IPs depending
on where the user is physically located
• Seems like logical choice; only one domain name could serve everything
• Has several issues
• No control over which user goes where
• Need to ensure that users of a site always have data regardless of their location
• Provide static DNS entries to publishers
• farm-de.plista.com, farm-au.plista.com, etc.
Partition tolerance
• Expect that your systems will break
• Some companies even go as far as to proactively do just that: https://goo.gl/CKzwSN
• Redundancy!
• Set up systems in multiple availability zones
• Stateless applications
• No dependency between applications
• No need for base data in background job engine, since everything is encoded in the task
• Provide fallback
• plista can deliver recommendations even when database goes down
• 2 datacenters
• 17 markets
• 600+ servers
• 15 MBit/s data rate between EMEA and APAC
• 80+ million impressions per day
Results
Questions?
?
?

Weitere ähnliche Inhalte

Was ist angesagt?

Containerization: The DevOps Revolution
Containerization: The DevOps Revolution Containerization: The DevOps Revolution
Containerization: The DevOps Revolution SoftServe
 
Application Lifecycle Management on AWS
Application Lifecycle Management on AWSApplication Lifecycle Management on AWS
Application Lifecycle Management on AWSDavid Mat
 
Ohio Devfest - Visual Analysis with GCP
Ohio Devfest - Visual Analysis with GCPOhio Devfest - Visual Analysis with GCP
Ohio Devfest - Visual Analysis with GCPWesley Workman
 
Meetup#7: AWS LightSail - The Simplicity of VPS - The Power of AWS
Meetup#7: AWS LightSail - The Simplicity of VPS - The Power of AWSMeetup#7: AWS LightSail - The Simplicity of VPS - The Power of AWS
Meetup#7: AWS LightSail - The Simplicity of VPS - The Power of AWSAWS Vietnam Community
 
An Introduction to Microservices
An Introduction to MicroservicesAn Introduction to Microservices
An Introduction to MicroservicesAd van der Veer
 
Greetings from AWS User Group Taiwan
Greetings from AWS User Group TaiwanGreetings from AWS User Group Taiwan
Greetings from AWS User Group TaiwanCliff Chao-kuan Lu
 
The Story of Automation
The Story of AutomationThe Story of Automation
The Story of Automation99X Technology
 
Serverless Framework (2018)
Serverless Framework (2018)Serverless Framework (2018)
Serverless Framework (2018)Rowell Belen
 
NDev Talk - Serverless Design Patterns
NDev Talk - Serverless Design PatternsNDev Talk - Serverless Design Patterns
NDev Talk - Serverless Design PatternsRyan Green
 
Microservices without servers
Microservices without serversMicroservices without servers
Microservices without servers99X Technology
 
Should you keep your On-Premises NAS: Upgrade, Pay Maintenance or Public Cloud?
Should you keep your On-Premises NAS: Upgrade, Pay Maintenance or Public Cloud?Should you keep your On-Premises NAS: Upgrade, Pay Maintenance or Public Cloud?
Should you keep your On-Premises NAS: Upgrade, Pay Maintenance or Public Cloud?Buurst
 
Key Design Considerations Private and Hybrid Clouds - RightScale Compute 2013
Key Design Considerations Private and Hybrid Clouds - RightScale Compute 2013Key Design Considerations Private and Hybrid Clouds - RightScale Compute 2013
Key Design Considerations Private and Hybrid Clouds - RightScale Compute 2013RightScale
 
Patterns for building resilient and scalable microservices platform on AWS
Patterns for building resilient and scalable microservices platform on AWSPatterns for building resilient and scalable microservices platform on AWS
Patterns for building resilient and scalable microservices platform on AWSBoyan Dimitrov
 
AWS Lambda + AWS Cloudformation
AWS Lambda + AWS CloudformationAWS Lambda + AWS Cloudformation
AWS Lambda + AWS CloudformationJordi Miguel
 
Rapid Prototyping for Big Data with AWS
Rapid Prototyping for Big Data with AWS Rapid Prototyping for Big Data with AWS
Rapid Prototyping for Big Data with AWS SoftServe
 
Cloudsolutionday 2016: Compliance and cost controlling on AWS
Cloudsolutionday 2016: Compliance and cost controlling on AWSCloudsolutionday 2016: Compliance and cost controlling on AWS
Cloudsolutionday 2016: Compliance and cost controlling on AWSAWS Vietnam Community
 

Was ist angesagt? (20)

Containerization: The DevOps Revolution
Containerization: The DevOps Revolution Containerization: The DevOps Revolution
Containerization: The DevOps Revolution
 
Application Lifecycle Management on AWS
Application Lifecycle Management on AWSApplication Lifecycle Management on AWS
Application Lifecycle Management on AWS
 
104 meets cloud
104 meets cloud104 meets cloud
104 meets cloud
 
Intro to Serverless
Intro to ServerlessIntro to Serverless
Intro to Serverless
 
Ohio Devfest - Visual Analysis with GCP
Ohio Devfest - Visual Analysis with GCPOhio Devfest - Visual Analysis with GCP
Ohio Devfest - Visual Analysis with GCP
 
Meetup#7: AWS LightSail - The Simplicity of VPS - The Power of AWS
Meetup#7: AWS LightSail - The Simplicity of VPS - The Power of AWSMeetup#7: AWS LightSail - The Simplicity of VPS - The Power of AWS
Meetup#7: AWS LightSail - The Simplicity of VPS - The Power of AWS
 
An Introduction to Microservices
An Introduction to MicroservicesAn Introduction to Microservices
An Introduction to Microservices
 
Greetings from AWS User Group Taiwan
Greetings from AWS User Group TaiwanGreetings from AWS User Group Taiwan
Greetings from AWS User Group Taiwan
 
The Story of Automation
The Story of AutomationThe Story of Automation
The Story of Automation
 
Serverless Framework (2018)
Serverless Framework (2018)Serverless Framework (2018)
Serverless Framework (2018)
 
NDev Talk - Serverless Design Patterns
NDev Talk - Serverless Design PatternsNDev Talk - Serverless Design Patterns
NDev Talk - Serverless Design Patterns
 
Microservices without servers
Microservices without serversMicroservices without servers
Microservices without servers
 
Cnam cours azure iaas
Cnam cours azure iaasCnam cours azure iaas
Cnam cours azure iaas
 
Should you keep your On-Premises NAS: Upgrade, Pay Maintenance or Public Cloud?
Should you keep your On-Premises NAS: Upgrade, Pay Maintenance or Public Cloud?Should you keep your On-Premises NAS: Upgrade, Pay Maintenance or Public Cloud?
Should you keep your On-Premises NAS: Upgrade, Pay Maintenance or Public Cloud?
 
Key Design Considerations Private and Hybrid Clouds - RightScale Compute 2013
Key Design Considerations Private and Hybrid Clouds - RightScale Compute 2013Key Design Considerations Private and Hybrid Clouds - RightScale Compute 2013
Key Design Considerations Private and Hybrid Clouds - RightScale Compute 2013
 
Patterns for building resilient and scalable microservices platform on AWS
Patterns for building resilient and scalable microservices platform on AWSPatterns for building resilient and scalable microservices platform on AWS
Patterns for building resilient and scalable microservices platform on AWS
 
AWS Lambda + AWS Cloudformation
AWS Lambda + AWS CloudformationAWS Lambda + AWS Cloudformation
AWS Lambda + AWS Cloudformation
 
Serverless Patterns
Serverless PatternsServerless Patterns
Serverless Patterns
 
Rapid Prototyping for Big Data with AWS
Rapid Prototyping for Big Data with AWS Rapid Prototyping for Big Data with AWS
Rapid Prototyping for Big Data with AWS
 
Cloudsolutionday 2016: Compliance and cost controlling on AWS
Cloudsolutionday 2016: Compliance and cost controlling on AWSCloudsolutionday 2016: Compliance and cost controlling on AWS
Cloudsolutionday 2016: Compliance and cost controlling on AWS
 

Ähnlich wie From Local to Global

Webinar: How MongoDB is Used to Manage Reference Data - May 2014
Webinar: How MongoDB is Used to Manage Reference Data - May 2014Webinar: How MongoDB is Used to Manage Reference Data - May 2014
Webinar: How MongoDB is Used to Manage Reference Data - May 2014MongoDB
 
Navigating Transactions: ACID Complexity in Modern Databases
Navigating Transactions: ACID Complexity in Modern DatabasesNavigating Transactions: ACID Complexity in Modern Databases
Navigating Transactions: ACID Complexity in Modern DatabasesShivji Kumar Jha
 
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...Mydbops
 
PAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonPAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonNeotys
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Controlindiver
 
4D Pubs - Distributed Dynamic Document Dsplay
4D Pubs - Distributed Dynamic Document Dsplay4D Pubs - Distributed Dynamic Document Dsplay
4D Pubs - Distributed Dynamic Document DsplayChris Despopoulos
 
20130714 php matsuri - highly available php
20130714   php matsuri - highly available php20130714   php matsuri - highly available php
20130714 php matsuri - highly available phpGraham Weldon
 
Putting Kafka Into Overdrive
Putting Kafka Into OverdrivePutting Kafka Into Overdrive
Putting Kafka Into OverdriveTodd Palino
 
Technical track-afterimaging Progress Database
Technical track-afterimaging Progress DatabaseTechnical track-afterimaging Progress Database
Technical track-afterimaging Progress DatabaseVinh Nguyen
 
Scale out magento 2 at aws
Scale out magento 2 at awsScale out magento 2 at aws
Scale out magento 2 at awsroot360 GmbH
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UKRicard Clau
 
10x latency improvement – how to squeeze performance out of your BizTalk solu...
10x latency improvement – how to squeeze performance out of your BizTalk solu...10x latency improvement – how to squeeze performance out of your BizTalk solu...
10x latency improvement – how to squeeze performance out of your BizTalk solu...BizTalk360
 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyserAlex Moskvin
 
DevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesAndreas Katzig
 
Moving On Up - smaller servers and bigger performance
Moving On Up - smaller servers and bigger performanceMoving On Up - smaller servers and bigger performance
Moving On Up - smaller servers and bigger performanceDoug Lucy
 
Soccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM ConnectionsSoccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM Connectionspanagenda
 
(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2
(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2
(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2Amazon Web Services
 
Basic Application Performance Optimization Techniques (Backend)
Basic Application Performance Optimization Techniques (Backend)Basic Application Performance Optimization Techniques (Backend)
Basic Application Performance Optimization Techniques (Backend)Klas Berlič Fras
 
MongoDB: What, why, when
MongoDB: What, why, whenMongoDB: What, why, when
MongoDB: What, why, whenEugenio Minardi
 

Ähnlich wie From Local to Global (20)

Webinar: How MongoDB is Used to Manage Reference Data - May 2014
Webinar: How MongoDB is Used to Manage Reference Data - May 2014Webinar: How MongoDB is Used to Manage Reference Data - May 2014
Webinar: How MongoDB is Used to Manage Reference Data - May 2014
 
Application Virtualization Smackdown
Application Virtualization SmackdownApplication Virtualization Smackdown
Application Virtualization Smackdown
 
Navigating Transactions: ACID Complexity in Modern Databases
Navigating Transactions: ACID Complexity in Modern DatabasesNavigating Transactions: ACID Complexity in Modern Databases
Navigating Transactions: ACID Complexity in Modern Databases
 
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...
 
PAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonPAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark Tomlinson
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Control
 
4D Pubs - Distributed Dynamic Document Dsplay
4D Pubs - Distributed Dynamic Document Dsplay4D Pubs - Distributed Dynamic Document Dsplay
4D Pubs - Distributed Dynamic Document Dsplay
 
20130714 php matsuri - highly available php
20130714   php matsuri - highly available php20130714   php matsuri - highly available php
20130714 php matsuri - highly available php
 
Putting Kafka Into Overdrive
Putting Kafka Into OverdrivePutting Kafka Into Overdrive
Putting Kafka Into Overdrive
 
Technical track-afterimaging Progress Database
Technical track-afterimaging Progress DatabaseTechnical track-afterimaging Progress Database
Technical track-afterimaging Progress Database
 
Scale out magento 2 at aws
Scale out magento 2 at awsScale out magento 2 at aws
Scale out magento 2 at aws
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UK
 
10x latency improvement – how to squeeze performance out of your BizTalk solu...
10x latency improvement – how to squeeze performance out of your BizTalk solu...10x latency improvement – how to squeeze performance out of your BizTalk solu...
10x latency improvement – how to squeeze performance out of your BizTalk solu...
 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyser
 
DevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile Games
 
Moving On Up - smaller servers and bigger performance
Moving On Up - smaller servers and bigger performanceMoving On Up - smaller servers and bigger performance
Moving On Up - smaller servers and bigger performance
 
Soccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM ConnectionsSoccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM Connections
 
(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2
(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2
(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2
 
Basic Application Performance Optimization Techniques (Backend)
Basic Application Performance Optimization Techniques (Backend)Basic Application Performance Optimization Techniques (Backend)
Basic Application Performance Optimization Techniques (Backend)
 
MongoDB: What, why, when
MongoDB: What, why, whenMongoDB: What, why, when
MongoDB: What, why, when
 

Mehr von AWS Germany

Analytics Web Day | From Theory to Practice: Big Data Stories from the Field
Analytics Web Day | From Theory to Practice: Big Data Stories from the FieldAnalytics Web Day | From Theory to Practice: Big Data Stories from the Field
Analytics Web Day | From Theory to Practice: Big Data Stories from the FieldAWS Germany
 
Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...
Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...
Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...AWS Germany
 
Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Modern Applications Web Day | Impress Your Friends with Your First Serverless...Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Modern Applications Web Day | Impress Your Friends with Your First Serverless...AWS Germany
 
Modern Applications Web Day | Manage Your Infrastructure and Configuration on...
Modern Applications Web Day | Manage Your Infrastructure and Configuration on...Modern Applications Web Day | Manage Your Infrastructure and Configuration on...
Modern Applications Web Day | Manage Your Infrastructure and Configuration on...AWS Germany
 
Modern Applications Web Day | Container Workloads on AWS
Modern Applications Web Day | Container Workloads on AWSModern Applications Web Day | Container Workloads on AWS
Modern Applications Web Day | Container Workloads on AWSAWS Germany
 
Modern Applications Web Day | Continuous Delivery to Amazon EKS with Spinnaker
Modern Applications Web Day | Continuous Delivery to Amazon EKS with SpinnakerModern Applications Web Day | Continuous Delivery to Amazon EKS with Spinnaker
Modern Applications Web Day | Continuous Delivery to Amazon EKS with SpinnakerAWS Germany
 
Building Smart Home skills for Alexa
Building Smart Home skills for AlexaBuilding Smart Home skills for Alexa
Building Smart Home skills for AlexaAWS Germany
 
Hotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructure
Hotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructureHotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructure
Hotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructureAWS Germany
 
Wild Rydes with Big Data/Kinesis focus: AWS Serverless Workshop
Wild Rydes with Big Data/Kinesis focus: AWS Serverless WorkshopWild Rydes with Big Data/Kinesis focus: AWS Serverless Workshop
Wild Rydes with Big Data/Kinesis focus: AWS Serverless WorkshopAWS Germany
 
Log Analytics with AWS
Log Analytics with AWSLog Analytics with AWS
Log Analytics with AWSAWS Germany
 
Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS
Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS
Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS AWS Germany
 
AWS Programme für Nonprofits
AWS Programme für NonprofitsAWS Programme für Nonprofits
AWS Programme für NonprofitsAWS Germany
 
Microservices and Data Design
Microservices and Data DesignMicroservices and Data Design
Microservices and Data DesignAWS Germany
 
Serverless vs. Developers – the real crash
Serverless vs. Developers – the real crashServerless vs. Developers – the real crash
Serverless vs. Developers – the real crashAWS Germany
 
Query your data in S3 with SQL and optimize for cost and performance
Query your data in S3 with SQL and optimize for cost and performanceQuery your data in S3 with SQL and optimize for cost and performance
Query your data in S3 with SQL and optimize for cost and performanceAWS Germany
 
Secret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s VaultSecret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s VaultAWS Germany
 
Scale to Infinity with ECS
Scale to Infinity with ECSScale to Infinity with ECS
Scale to Infinity with ECSAWS Germany
 
Containers on AWS - State of the Union
Containers on AWS - State of the UnionContainers on AWS - State of the Union
Containers on AWS - State of the UnionAWS Germany
 
Deploying and Scaling Your First Cloud Application with Amazon Lightsail
Deploying and Scaling Your First Cloud Application with Amazon LightsailDeploying and Scaling Your First Cloud Application with Amazon Lightsail
Deploying and Scaling Your First Cloud Application with Amazon LightsailAWS Germany
 

Mehr von AWS Germany (20)

Analytics Web Day | From Theory to Practice: Big Data Stories from the Field
Analytics Web Day | From Theory to Practice: Big Data Stories from the FieldAnalytics Web Day | From Theory to Practice: Big Data Stories from the Field
Analytics Web Day | From Theory to Practice: Big Data Stories from the Field
 
Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...
Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...
Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...
 
Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Modern Applications Web Day | Impress Your Friends with Your First Serverless...Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Modern Applications Web Day | Impress Your Friends with Your First Serverless...
 
Modern Applications Web Day | Manage Your Infrastructure and Configuration on...
Modern Applications Web Day | Manage Your Infrastructure and Configuration on...Modern Applications Web Day | Manage Your Infrastructure and Configuration on...
Modern Applications Web Day | Manage Your Infrastructure and Configuration on...
 
Modern Applications Web Day | Container Workloads on AWS
Modern Applications Web Day | Container Workloads on AWSModern Applications Web Day | Container Workloads on AWS
Modern Applications Web Day | Container Workloads on AWS
 
Modern Applications Web Day | Continuous Delivery to Amazon EKS with Spinnaker
Modern Applications Web Day | Continuous Delivery to Amazon EKS with SpinnakerModern Applications Web Day | Continuous Delivery to Amazon EKS with Spinnaker
Modern Applications Web Day | Continuous Delivery to Amazon EKS with Spinnaker
 
Building Smart Home skills for Alexa
Building Smart Home skills for AlexaBuilding Smart Home skills for Alexa
Building Smart Home skills for Alexa
 
Hotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructure
Hotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructureHotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructure
Hotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructure
 
Wild Rydes with Big Data/Kinesis focus: AWS Serverless Workshop
Wild Rydes with Big Data/Kinesis focus: AWS Serverless WorkshopWild Rydes with Big Data/Kinesis focus: AWS Serverless Workshop
Wild Rydes with Big Data/Kinesis focus: AWS Serverless Workshop
 
Log Analytics with AWS
Log Analytics with AWSLog Analytics with AWS
Log Analytics with AWS
 
Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS
Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS
Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS
 
AWS Programme für Nonprofits
AWS Programme für NonprofitsAWS Programme für Nonprofits
AWS Programme für Nonprofits
 
Microservices and Data Design
Microservices and Data DesignMicroservices and Data Design
Microservices and Data Design
 
Serverless vs. Developers – the real crash
Serverless vs. Developers – the real crashServerless vs. Developers – the real crash
Serverless vs. Developers – the real crash
 
Query your data in S3 with SQL and optimize for cost and performance
Query your data in S3 with SQL and optimize for cost and performanceQuery your data in S3 with SQL and optimize for cost and performance
Query your data in S3 with SQL and optimize for cost and performance
 
Secret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s VaultSecret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s Vault
 
EKS Workshop
 EKS Workshop EKS Workshop
EKS Workshop
 
Scale to Infinity with ECS
Scale to Infinity with ECSScale to Infinity with ECS
Scale to Infinity with ECS
 
Containers on AWS - State of the Union
Containers on AWS - State of the UnionContainers on AWS - State of the Union
Containers on AWS - State of the Union
 
Deploying and Scaling Your First Cloud Application with Amazon Lightsail
Deploying and Scaling Your First Cloud Application with Amazon LightsailDeploying and Scaling Your First Cloud Application with Amazon Lightsail
Deploying and Scaling Your First Cloud Application with Amazon Lightsail
 

Kürzlich hochgeladen

Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Kürzlich hochgeladen (20)

Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

From Local to Global

  • 1. From local to global How plista got its global infrastructure
  • 4. Tobias Heintz Core architecture @plista thz@plista.com @tobiasinfinity 50259516 Who am I?
  • 5. • Data-driven platform for content and ad recommendations • Part of • Present in 17 markets worldwide • Market leader in German speaking countries • Works with 4000+ publishers • spiegel.de, n-tv.de, sport1.de, etc. Who is plista?
  • 7. • Not a website! • Collection of recommendation algorithms • We have Collaborative Filtering, Semantic (Solr), Simple Most Clicked, etc. • Latency is an issue • Response time < 100ms • Lots of asynchronous backend processing • Recommendations are pre-calculated for many given combinations out of a huge vector space • Actual delivery is only from cached results • Real real-time results for a few special recommenders A recommendation service
  • 9. • High Performance Bus is pub/sub • Frontend servers only talk to cache • Recommendations are pre-calculated and cached • Planet is our admin system The plista system
  • 10. • Timezones • It’s always five o’clock somewhere! • Currencies • Language • Laws • Privacy • Data locality Challenges - organisational
  • 11. • Timezones • It’s always five o’clock somewhere! • Currencies • Language • Laws • Privacy • Data locality Challenges - organisational
  • 12. • Latency • Data consistency • Availability • Partition tolerance • Cost • Maintainability Challenges - technical
  • 13. Models for i18n A ● No i18n at all ● All requests go to EMEA ● Total consistency ● Massive latency
  • 14. ● Clone the entire system ● No latency issues ● Double maintenance ● Too many services Models for i18n A ● No i18n at all ● All requests go to EMEA ● Total consistency ● Massive latency B
  • 15. ● Clone the entire system ● No latency issues ● Double maintenance ● Too many services Models for i18n A ● No i18n at all ● All requests go to EMEA ● Total consistency ● Massive latency B C ● Minimum amount of servers in APAC ● All backend processing in EMEA ● Very cost-efficient ● Still massive latency
  • 16. ● Clone the entire system ● No latency issues ● Double maintenance ● Too many services ● Some backend processing in APAC ● As few roles duplicated as possible ● Eventual consistency ● Just right Models for i18n A ● No i18n at all ● All requests go to EMEA ● Total consistency ● Massive latency B C ● Minimum amount of servers in APAC ● All backend processing in EMEA ● Very cost-efficient ● Still massive latency D
  • 17. ● Clone the entire system ● No latency issues ● Double maintenance ● Too many services ● Some backend processing in APAC ● As few roles duplicated as possible ● Eventual consistency ● Just right Models for i18n A ● No i18n at all ● All requests go to EMEA ● Total consistency ● Massive latency B C ● Minimum amount of servers in APAC ● All backend processing in EMEA ● Very cost-efficient ● Still massive latency D ✔
  • 18. The plista system - i18nized
  • 19. • Setup still basically the same • Frontend servers configured exactly alike • All backend processing still in EMEA • APAC servers forward data • Recommendations calculated in EMEA, then cached in APAC • Each DC has own DB master • With replicas in each other DC • Consistency using SequenceDB The plista system - i18nized
  • 20. • SequenceDB as centralized source of truth for database Ids • Ticket server à la Flickr • Servers in the cloud for quick scaling • Do it in the cloud: AWS EC2 + ELB • Fully automatized through puppet • Need to be able to spin up machines fast when something breaks • Static DNS routing • Eventual consistency • Partition tolerance through statelessness Pillars of i18n architecture
  • 21. • Needed because we have multiple DB masters and IDs need to be unique • Ticket server system based on Percona (MySQL fork) • 3 masters in the same rack • Stored procedure that increments a row in a table • Distributed globally • Master lives in EMEA DC • Ids are buffered locally using Redis • Clients never talk to Master, only Redis buffer • Cronjob fills buffer • Very failsafe DB syncing: SequenceDB
  • 22. DB syncing: SequenceDB (cont.) • Based on ideas from Flickr: https://goo.gl/roFVXZ • Alternative approach at pinterest: https://goo.gl/w7cgtP • Use 64 bit ID and encode information about the datacenter into the ID
  • 23. Battling latency: CDNs + Caching • Most important issue for us: low latency! • Caching layers built into architecture • Recall architecture diagram • CDN for all static data is a no-brainer • static JS, images and video
  • 24. DNS: Static over Geo • GeoDNS means that a domain name is resolved to different IPs depending on where the user is physically located • Seems like logical choice; only one domain name could serve everything • Has several issues • No control over which user goes where • Need to ensure that users of a site always have data regardless of their location • Provide static DNS entries to publishers • farm-de.plista.com, farm-au.plista.com, etc.
  • 25. Partition tolerance • Expect that your systems will break • Some companies even go as far as to proactively do just that: https://goo.gl/CKzwSN • Redundancy! • Set up systems in multiple availability zones • Stateless applications • No dependency between applications • No need for base data in background job engine, since everything is encoded in the task • Provide fallback • plista can deliver recommendations even when database goes down
  • 26. • 2 datacenters • 17 markets • 600+ servers • 15 MBit/s data rate between EMEA and APAC • 80+ million impressions per day Results