SlideShare a Scribd company logo
1 of 54
Optimizing big websites Talk Nerdy to Me December 8th, 2010 Andreas Creten
Hi, I’m Andreas
We are madewithlove, so are our products.
 
Big websites
 
 
Efficient? I don’t think so
wireframes back-end design support front-end hosting concept
Concept Realistic?
Wireframes Not to complex? How many information do we need to show?
Design Fast vs. fancy
Front-end Requests and Kb’s
Framework
Sprites
 
 
 
 
Compress,  merge, minify
 
 
336 Bytes 133 Bytes
Avoid external requests
Back-end Execution time
Less is more
Keep it simple
Caching Performing a lot of queries on a database server might overload it, especially when a lot of users are using the application. Server Can you give me an overview of all our clients? Yeah, sure! I’ll load them from the database. Pff, I’ll get me a coffee in meanwhile. Database Dude, calm down, I’m still getting the first one! Database, can you give me client 1? Database, can you give me client 2? Database, can you give me client 3? Database, can you give me client 4? Database, can you give me client 5? Database, can you give me client 6? It’s getting hot in here The database gets overloaded
Caching By storing the results from the database in a temporary in-memory cache we reduce the number of database request and decrease the page load time. Server Can you give me an overview of all our clients? Yeah, sure! I’ll check if I can remember them, otherwise I’ll load them from the database. Wow, I’ll have to call my secretary to bring some coffee. Database Database, can you give me client 4? Database, can you give me client 6? I’m bored Client 1 Client 2 Client 3 Client 5 Client 6 Client 4
Background workers When a user performs a server intensive action it might slow down the whole server. By executing the tasks in the background we off-load the server. Ex: the user request a zip file of all the photos he uploaded.
Background workers When a user performs a server intensive action it might slow down the whole server. By executing the tasks in the background we off-load the server. Server Can you send me all my photo’s in a zip archive? Yeah, sure! But it might take a while. Dude, this takes for hours! And the site is super slow now! I told you. I can’t do everything at once.
Background workers When a user performs a server intensive action it might slow down the whole server. By executing the tasks in the background we off-load the server. Server Can you send me all my photo’s in a zip archive? Yeah, sure! I’ll send it to a worker, come back in 10 mins. Hey, thanks, that was fast! Worker Ok, I’ll do it straight away I’m ready, that was an easy one!
Review your code
Hosting Scalability
Fine-tuning
Clusters When a user logs in, a session file is created on the server. This file us used as a temporary store. Ex: it enables us to keep a user logged in while browsing a site.
Cluster support The first time a user opens a site we store a session cookie containing his session id. When they navigate to the next page they send us the session id and we know which session to load. Server Session 3 Session 2 Session 1 I want to see my account page Cool, who are you? I’m that guy from Session 1 Ok, there you go!
Cluster support On a cluster the users are send to  servers based on the server load. Server Server Load balancer I want to see my account page Ok, you can do it. Hey, I’ve nothing to do!
Cluster support So their next request might  get handled by another server Server Server Load balancer I want to see the homepage page Ok, you can do it. Hey, I’ve nothing to do!
Cluster support Since the sessions are stored on the server, the second server doesn’t know about the user’s session. Server Server Load balancer I want to see my account page What’s your session id? Session 1 My session has id 1 Hmm, I don’t know about that session
Cluster support Since the sessions are stored on the server, the second server doesn’t know about the user’s session. Server Server Load balancer I want to see my account page Session 1 Hmm, I don’t know about that session The second server is not aware of the session on the first one
Cluster support We solve this problem by storing  the sessions into a central database. Database Server Server Load balancer I want to see my account page What’s your session id? My session has id 1 Let me check for that session in the database There you go Session 1
Hosted vs. Managed vs. Cloud vs. In-house
Reverse-proxy caching
3th party services
Team/company Picking the right people
wireframes back-end design support front-end hosting concept
Interns To do the impossible
 
 
 
 
Thanks. Any questions? [email_address]  - @andreascreten
 

More Related Content

Viewers also liked

wp-cli and plugin development with future and past compatibility (Word Camp P...
wp-cli and plugin development with future and past compatibility (Word Camp P...wp-cli and plugin development with future and past compatibility (Word Camp P...
wp-cli and plugin development with future and past compatibility (Word Camp P...Andreas - Creten
 
Remote: How to actually do it!
Remote: How to actually do it!Remote: How to actually do it!
Remote: How to actually do it!Andreas - Creten
 
Data Portability - Fronteers Meetup
Data Portability - Fronteers MeetupData Portability - Fronteers Meetup
Data Portability - Fronteers MeetupAndreas - Creten
 
Entering Mentoring Part 1 Communication at CalTech
Entering Mentoring Part 1 Communication at CalTechEntering Mentoring Part 1 Communication at CalTech
Entering Mentoring Part 1 Communication at CalTechSteve Lee
 
[Dutch] Hoger Onderwijs 2.0
[Dutch] Hoger Onderwijs 2.0[Dutch] Hoger Onderwijs 2.0
[Dutch] Hoger Onderwijs 2.0Andreas - Creten
 
How to actually get software build
How to actually get software buildHow to actually get software build
How to actually get software buildAndreas - Creten
 

Viewers also liked (7)

wp-cli and plugin development with future and past compatibility (Word Camp P...
wp-cli and plugin development with future and past compatibility (Word Camp P...wp-cli and plugin development with future and past compatibility (Word Camp P...
wp-cli and plugin development with future and past compatibility (Word Camp P...
 
Remote: How to actually do it!
Remote: How to actually do it!Remote: How to actually do it!
Remote: How to actually do it!
 
Data Portability - Fronteers Meetup
Data Portability - Fronteers MeetupData Portability - Fronteers Meetup
Data Portability - Fronteers Meetup
 
Entering Mentoring Part 1 Communication at CalTech
Entering Mentoring Part 1 Communication at CalTechEntering Mentoring Part 1 Communication at CalTech
Entering Mentoring Part 1 Communication at CalTech
 
Channel Bonding
Channel BondingChannel Bonding
Channel Bonding
 
[Dutch] Hoger Onderwijs 2.0
[Dutch] Hoger Onderwijs 2.0[Dutch] Hoger Onderwijs 2.0
[Dutch] Hoger Onderwijs 2.0
 
How to actually get software build
How to actually get software buildHow to actually get software build
How to actually get software build
 

Similar to Talk Nerdy to Me: Optimizing big websites

lotus domino questions answers 2017
lotus domino questions answers 2017lotus domino questions answers 2017
lotus domino questions answers 2017mJOBrr
 
MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011Mike Willbanks
 
Background processes and tasks in an async world
Background processes and tasks in an async worldBackground processes and tasks in an async world
Background processes and tasks in an async worldparticlebanana
 
Guide 4 - How To Dramatically Speed Up Your Website Using A Caching Plugin.pdf
Guide 4 - How To Dramatically Speed Up Your Website Using A Caching Plugin.pdfGuide 4 - How To Dramatically Speed Up Your Website Using A Caching Plugin.pdf
Guide 4 - How To Dramatically Speed Up Your Website Using A Caching Plugin.pdfpersuebusiness
 
Scalable Architecture 101
Scalable Architecture 101Scalable Architecture 101
Scalable Architecture 101Mike Willbanks
 
Synchronous Reads Asynchronous Writes RubyConf 2009
Synchronous Reads Asynchronous Writes RubyConf 2009Synchronous Reads Asynchronous Writes RubyConf 2009
Synchronous Reads Asynchronous Writes RubyConf 2009pauldix
 
DNS_Tutorial 2.pptx
DNS_Tutorial 2.pptxDNS_Tutorial 2.pptx
DNS_Tutorial 2.pptxviditsir
 
HTTP cache @ PUG Rome 03-29-2011
HTTP cache @ PUG Rome 03-29-2011HTTP cache @ PUG Rome 03-29-2011
HTTP cache @ PUG Rome 03-29-2011Alessandro Nadalin
 
Expecto Performa! The Magic and Reality of Performance Tuning
Expecto Performa! The Magic and Reality of Performance TuningExpecto Performa! The Magic and Reality of Performance Tuning
Expecto Performa! The Magic and Reality of Performance TuningAtlassian
 
Developing a Globally Distributed Purging System
Developing a Globally Distributed Purging SystemDeveloping a Globally Distributed Purging System
Developing a Globally Distributed Purging SystemFastly
 
Wordpress optimization
Wordpress optimizationWordpress optimization
Wordpress optimizationAlmog Baku
 
Dealing with Enterprise Level Data
Dealing with Enterprise Level DataDealing with Enterprise Level Data
Dealing with Enterprise Level DataMike Crabb
 
Intro to advanced web development
Intro to advanced web developmentIntro to advanced web development
Intro to advanced web developmentStevie T
 
I Can Haz More Performanz?
I Can Haz More Performanz?I Can Haz More Performanz?
I Can Haz More Performanz?Andy Melichar
 
L hammonds adventure
L hammonds adventureL hammonds adventure
L hammonds adventureMuhamad Fauzi
 
Scalable Web Arch
Scalable Web ArchScalable Web Arch
Scalable Web Archroyans
 
Scalable Web Architectures - Common Patterns & Approaches
Scalable Web Architectures - Common Patterns & ApproachesScalable Web Architectures - Common Patterns & Approaches
Scalable Web Architectures - Common Patterns & ApproachesCal Henderson
 
Presentation3
Presentation3Presentation3
Presentation3s1190105
 
Apache Traffic Server
Apache Traffic ServerApache Traffic Server
Apache Traffic Serversupertom
 

Similar to Talk Nerdy to Me: Optimizing big websites (20)

lotus domino questions answers 2017
lotus domino questions answers 2017lotus domino questions answers 2017
lotus domino questions answers 2017
 
MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011
 
Background processes and tasks in an async world
Background processes and tasks in an async worldBackground processes and tasks in an async world
Background processes and tasks in an async world
 
Guide 4 - How To Dramatically Speed Up Your Website Using A Caching Plugin.pdf
Guide 4 - How To Dramatically Speed Up Your Website Using A Caching Plugin.pdfGuide 4 - How To Dramatically Speed Up Your Website Using A Caching Plugin.pdf
Guide 4 - How To Dramatically Speed Up Your Website Using A Caching Plugin.pdf
 
Scalable Architecture 101
Scalable Architecture 101Scalable Architecture 101
Scalable Architecture 101
 
Synchronous Reads Asynchronous Writes RubyConf 2009
Synchronous Reads Asynchronous Writes RubyConf 2009Synchronous Reads Asynchronous Writes RubyConf 2009
Synchronous Reads Asynchronous Writes RubyConf 2009
 
DNS_Tutorial 2.pptx
DNS_Tutorial 2.pptxDNS_Tutorial 2.pptx
DNS_Tutorial 2.pptx
 
HTTP cache @ PUG Rome 03-29-2011
HTTP cache @ PUG Rome 03-29-2011HTTP cache @ PUG Rome 03-29-2011
HTTP cache @ PUG Rome 03-29-2011
 
Expecto Performa! The Magic and Reality of Performance Tuning
Expecto Performa! The Magic and Reality of Performance TuningExpecto Performa! The Magic and Reality of Performance Tuning
Expecto Performa! The Magic and Reality of Performance Tuning
 
Developing a Globally Distributed Purging System
Developing a Globally Distributed Purging SystemDeveloping a Globally Distributed Purging System
Developing a Globally Distributed Purging System
 
Wordpress optimization
Wordpress optimizationWordpress optimization
Wordpress optimization
 
Dealing with Enterprise Level Data
Dealing with Enterprise Level DataDealing with Enterprise Level Data
Dealing with Enterprise Level Data
 
Intro to advanced web development
Intro to advanced web developmentIntro to advanced web development
Intro to advanced web development
 
I Can Haz More Performanz?
I Can Haz More Performanz?I Can Haz More Performanz?
I Can Haz More Performanz?
 
Tips to improve your website performance
Tips to improve your website performanceTips to improve your website performance
Tips to improve your website performance
 
L hammonds adventure
L hammonds adventureL hammonds adventure
L hammonds adventure
 
Scalable Web Arch
Scalable Web ArchScalable Web Arch
Scalable Web Arch
 
Scalable Web Architectures - Common Patterns & Approaches
Scalable Web Architectures - Common Patterns & ApproachesScalable Web Architectures - Common Patterns & Approaches
Scalable Web Architectures - Common Patterns & Approaches
 
Presentation3
Presentation3Presentation3
Presentation3
 
Apache Traffic Server
Apache Traffic ServerApache Traffic Server
Apache Traffic Server
 

Recently uploaded

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 

Recently uploaded (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 

Talk Nerdy to Me: Optimizing big websites

  • 1. Optimizing big websites Talk Nerdy to Me December 8th, 2010 Andreas Creten
  • 3. We are madewithlove, so are our products.
  • 4.  
  • 6.  
  • 7.  
  • 9. wireframes back-end design support front-end hosting concept
  • 11. Wireframes Not to complex? How many information do we need to show?
  • 16.  
  • 17.  
  • 18.  
  • 19.  
  • 21.  
  • 22.  
  • 23. 336 Bytes 133 Bytes
  • 28. Caching Performing a lot of queries on a database server might overload it, especially when a lot of users are using the application. Server Can you give me an overview of all our clients? Yeah, sure! I’ll load them from the database. Pff, I’ll get me a coffee in meanwhile. Database Dude, calm down, I’m still getting the first one! Database, can you give me client 1? Database, can you give me client 2? Database, can you give me client 3? Database, can you give me client 4? Database, can you give me client 5? Database, can you give me client 6? It’s getting hot in here The database gets overloaded
  • 29. Caching By storing the results from the database in a temporary in-memory cache we reduce the number of database request and decrease the page load time. Server Can you give me an overview of all our clients? Yeah, sure! I’ll check if I can remember them, otherwise I’ll load them from the database. Wow, I’ll have to call my secretary to bring some coffee. Database Database, can you give me client 4? Database, can you give me client 6? I’m bored Client 1 Client 2 Client 3 Client 5 Client 6 Client 4
  • 30. Background workers When a user performs a server intensive action it might slow down the whole server. By executing the tasks in the background we off-load the server. Ex: the user request a zip file of all the photos he uploaded.
  • 31. Background workers When a user performs a server intensive action it might slow down the whole server. By executing the tasks in the background we off-load the server. Server Can you send me all my photo’s in a zip archive? Yeah, sure! But it might take a while. Dude, this takes for hours! And the site is super slow now! I told you. I can’t do everything at once.
  • 32. Background workers When a user performs a server intensive action it might slow down the whole server. By executing the tasks in the background we off-load the server. Server Can you send me all my photo’s in a zip archive? Yeah, sure! I’ll send it to a worker, come back in 10 mins. Hey, thanks, that was fast! Worker Ok, I’ll do it straight away I’m ready, that was an easy one!
  • 36. Clusters When a user logs in, a session file is created on the server. This file us used as a temporary store. Ex: it enables us to keep a user logged in while browsing a site.
  • 37. Cluster support The first time a user opens a site we store a session cookie containing his session id. When they navigate to the next page they send us the session id and we know which session to load. Server Session 3 Session 2 Session 1 I want to see my account page Cool, who are you? I’m that guy from Session 1 Ok, there you go!
  • 38. Cluster support On a cluster the users are send to servers based on the server load. Server Server Load balancer I want to see my account page Ok, you can do it. Hey, I’ve nothing to do!
  • 39. Cluster support So their next request might get handled by another server Server Server Load balancer I want to see the homepage page Ok, you can do it. Hey, I’ve nothing to do!
  • 40. Cluster support Since the sessions are stored on the server, the second server doesn’t know about the user’s session. Server Server Load balancer I want to see my account page What’s your session id? Session 1 My session has id 1 Hmm, I don’t know about that session
  • 41. Cluster support Since the sessions are stored on the server, the second server doesn’t know about the user’s session. Server Server Load balancer I want to see my account page Session 1 Hmm, I don’t know about that session The second server is not aware of the session on the first one
  • 42. Cluster support We solve this problem by storing the sessions into a central database. Database Server Server Load balancer I want to see my account page What’s your session id? My session has id 1 Let me check for that session in the database There you go Session 1
  • 43. Hosted vs. Managed vs. Cloud vs. In-house
  • 46. Team/company Picking the right people
  • 47. wireframes back-end design support front-end hosting concept
  • 48. Interns To do the impossible
  • 49.  
  • 50.  
  • 51.  
  • 52.  
  • 53. Thanks. Any questions? [email_address] - @andreascreten
  • 54.