SlideShare a Scribd company logo
1 of 26
Download to read offline
Scalable OSGeo Stacks 
From Tutorials to Production 
David Zwarg 
dzwarg@courbanize.com
Tutorials 
• A good place to start! 
• A bad place to end!
Production Environments 
• Your production environment is a beautiful snowflake. 
! 
• Mileage may vary
Definition of Terms 
• “Production” 
• A data-driven, dynamic, scalable, web application 
• “Tutorial” 
• Anything else
“data-driven” 
Anything that can be 
changed in the 
application is changed in 
a database. 
photo by Daniel Mitchell (flickr)
“dynamic” 
Each visitor may have a 
personalized “view” of 
any URL. 
photo by Jessa Dow-Anderson (flickr)
“scalable” 
The application may be 
run on 1 server or 100 
servers. 
photo by Tiny Delights (flickr)
“web 
application” 
An application that 
provides rich interactivity 
in a user’s web browser.
Good Tutorials Warn You 
• Bad tutorials don’t
Tutorial #1: django 
• https://docs.djangoproject.com/en/1.7/intro/tutorial01/ 
• Do not ignore these helpful notes:
Tutorial #2: geodjango 
• “Use the source” 
• Source installs can be just as dependable as package 
management solutions
Side Note: Source Install 
• Ensure that all script installations are scriptable 
• Script & version package management installations 
• Aim for a repeatable installation
Tutorial #3: celery 
• More helpful log messages: 
“UserWarning: Using settings.DEBUG 
leads to a memory leak, never use this 
setting in production environments!”
Side Note: Workers 
• Long-running processes should be performed “out of 
band” 
• Use separate processes to do big tasks
Visitor Traffic 
What your users feel 
photo by Björn (flickr)
Visitor Traffic 
What it really looks like 
photo by joiseyshowaa (flickr)
Backend 
Scaling 
Tips for Servers 
photo by Henrik Bennetsen (flickr)
Scaling GEOS & GDAL 
• Single-threaded designs 
• Apache: use the preform multiprocessing module 
(mpm_prefork) 
• gunicorn: use synchronous workers with many 
worker_processes
Scaling Tiles 
• Geoserver includes Geowebcache 
• Cache WMS image tiles 
• Automatic cache seeding 
• Scriptable via REST
Scaling Tiles (cont.) 
• Tilestache 
• Plugs into Mapnik 
• Use with MBTiles, Amazon S3, Memcache, etc
Scaling PostGIS 
• Heroku provides the option of HA failover and PostGIS. 
• Or, roll your own snowflake (WAL, Slony, Bucardo)
Frontend 
Scaling 
Tips for Web 
Applications
OpenLayers 
• Loading Strategies 
• BBOX 
• Vector “Resolution” 
• Don’t drown in data
Use a CDN 
• “Content Delivery Network” 
• https://cdnjs.com 
• https://ajax.googleapis.com 
• http://cloudflare.net 
• more!
General Tips 
• Scale servers on demand 
• Don’t overwhelm clients 
• Focus on long-running processes & slow requests 
• Use a cache
Scalable OSGeo Stacks 
From Tutorials to Production 
David Zwarg 
dzwarg@courbanize.com

More Related Content

What's hot

Kudu voodoo slideshare
Kudu voodoo   slideshareKudu voodoo   slideshare
Kudu voodoo slideshareAidan Casey
 
The 7 deadly sins of micro services
The 7 deadly sins of micro servicesThe 7 deadly sins of micro services
The 7 deadly sins of micro servicesAidan Casey
 
Introduction to azure functions
Introduction to azure functionsIntroduction to azure functions
Introduction to azure functionsamitvasu
 
Essential git for developers
Essential git for developersEssential git for developers
Essential git for developersAidan Casey
 
Event Sourcing your AngularJS applications
Event Sourcing your AngularJS applicationsEvent Sourcing your AngularJS applications
Event Sourcing your AngularJS applicationsMaurice De Beijer [MVP]
 
Automation for Anyone at Nutanix NEXT 2017 US
Automation for Anyone at Nutanix NEXT 2017 USAutomation for Anyone at Nutanix NEXT 2017 US
Automation for Anyone at Nutanix NEXT 2017 USChris Wahl
 
Windows Azure IaaS and Hybrid
Windows Azure IaaS and HybridWindows Azure IaaS and Hybrid
Windows Azure IaaS and HybridMike Martin
 
Why Not Public Cloud?
Why Not Public Cloud?Why Not Public Cloud?
Why Not Public Cloud?Matt Ray
 
The Geni Experiment Engine
The Geni Experiment EngineThe Geni Experiment Engine
The Geni Experiment EngineUS-Ignite
 
vBrownBag - Scripting and Versioning with PowerShell ISE and Git Shell
vBrownBag - Scripting and Versioning with PowerShell ISE and Git ShellvBrownBag - Scripting and Versioning with PowerShell ISE and Git Shell
vBrownBag - Scripting and Versioning with PowerShell ISE and Git ShellChris Wahl
 
Monoliths vs microservices
Monoliths vs microservicesMonoliths vs microservices
Monoliths vs microservicesahmadezzeir
 
Study from Japanese user cases and community
Study from Japanese user cases and communityStudy from Japanese user cases and community
Study from Japanese user cases and communitySatoshi Shimazaki
 
Automate your development and operation processes!
Automate your development and operation processes!Automate your development and operation processes!
Automate your development and operation processes!Nico Meisenzahl
 
Packing It In: Images, Containers and Config Management
Packing It In: Images, Containers and Config ManagementPacking It In: Images, Containers and Config Management
Packing It In: Images, Containers and Config ManagementMichael Goetz
 
Big Sky Dev Con 2018 - Building a Serverless Backend
Big Sky Dev Con 2018 - Building a Serverless BackendBig Sky Dev Con 2018 - Building a Serverless Backend
Big Sky Dev Con 2018 - Building a Serverless BackendJacob Meacham
 
A practical approach on - How to design offline-online synchronization system
A practical approach on - How to design offline-online synchronization systemA practical approach on - How to design offline-online synchronization system
A practical approach on - How to design offline-online synchronization systemFoyzul Karim
 

What's hot (20)

Kudu voodoo slideshare
Kudu voodoo   slideshareKudu voodoo   slideshare
Kudu voodoo slideshare
 
The 7 deadly sins of micro services
The 7 deadly sins of micro servicesThe 7 deadly sins of micro services
The 7 deadly sins of micro services
 
Introduction to azure functions
Introduction to azure functionsIntroduction to azure functions
Introduction to azure functions
 
Essential git for developers
Essential git for developersEssential git for developers
Essential git for developers
 
Event Sourcing your AngularJS applications
Event Sourcing your AngularJS applicationsEvent Sourcing your AngularJS applications
Event Sourcing your AngularJS applications
 
Automation for Anyone at Nutanix NEXT 2017 US
Automation for Anyone at Nutanix NEXT 2017 USAutomation for Anyone at Nutanix NEXT 2017 US
Automation for Anyone at Nutanix NEXT 2017 US
 
Windows Azure IaaS and Hybrid
Windows Azure IaaS and HybridWindows Azure IaaS and Hybrid
Windows Azure IaaS and Hybrid
 
Why Not Public Cloud?
Why Not Public Cloud?Why Not Public Cloud?
Why Not Public Cloud?
 
The Geni Experiment Engine
The Geni Experiment EngineThe Geni Experiment Engine
The Geni Experiment Engine
 
vBrownBag - Scripting and Versioning with PowerShell ISE and Git Shell
vBrownBag - Scripting and Versioning with PowerShell ISE and Git ShellvBrownBag - Scripting and Versioning with PowerShell ISE and Git Shell
vBrownBag - Scripting and Versioning with PowerShell ISE and Git Shell
 
The Cloud
The CloudThe Cloud
The Cloud
 
Monoliths vs microservices
Monoliths vs microservicesMonoliths vs microservices
Monoliths vs microservices
 
Study from Japanese user cases and community
Study from Japanese user cases and communityStudy from Japanese user cases and community
Study from Japanese user cases and community
 
Automate your development and operation processes!
Automate your development and operation processes!Automate your development and operation processes!
Automate your development and operation processes!
 
Packing It In: Images, Containers and Config Management
Packing It In: Images, Containers and Config ManagementPacking It In: Images, Containers and Config Management
Packing It In: Images, Containers and Config Management
 
Unleashing cloud
Unleashing cloudUnleashing cloud
Unleashing cloud
 
Big Sky Dev Con 2018 - Building a Serverless Backend
Big Sky Dev Con 2018 - Building a Serverless BackendBig Sky Dev Con 2018 - Building a Serverless Backend
Big Sky Dev Con 2018 - Building a Serverless Backend
 
A practical approach on - How to design offline-online synchronization system
A practical approach on - How to design offline-online synchronization systemA practical approach on - How to design offline-online synchronization system
A practical approach on - How to design offline-online synchronization system
 
AWS re:invent 2013 recap
AWS re:invent 2013 recapAWS re:invent 2013 recap
AWS re:invent 2013 recap
 
Un poco de caché, por favor!
Un poco de caché, por favor!Un poco de caché, por favor!
Un poco de caché, por favor!
 

Similar to OSGeo in Production

Building Mobile Web Apps with jQM and Cordova on Azure
Building Mobile Web Apps with jQM and Cordova on AzureBuilding Mobile Web Apps with jQM and Cordova on Azure
Building Mobile Web Apps with jQM and Cordova on AzureBrian Lyttle
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesTeamstudio
 
Preparing your dockerised application for production deployment
Preparing your dockerised application for production deploymentPreparing your dockerised application for production deployment
Preparing your dockerised application for production deploymentDave Ward
 
Talk Paris Infovis 091207132953 Phpapp01(2)
Talk Paris Infovis 091207132953 Phpapp01(2)Talk Paris Infovis 091207132953 Phpapp01(2)
Talk Paris Infovis 091207132953 Phpapp01(2)johnnybiz
 
Using Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the WebUsing Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the Webphilogb
 
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)Adam Dunford
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuningJohn McCaffrey
 
Backbone/Marionette recap [2015]
Backbone/Marionette recap [2015]Backbone/Marionette recap [2015]
Backbone/Marionette recap [2015]Andrii Lundiak
 
Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012Adam Mokan
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAppDynamics
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGroup
 
John Resig Beijing 2010 (English Version)
John Resig Beijing 2010 (English Version)John Resig Beijing 2010 (English Version)
John Resig Beijing 2010 (English Version)Jia Mi
 
Masterin Large Scale Java Script Applications
Masterin Large Scale Java Script ApplicationsMasterin Large Scale Java Script Applications
Masterin Large Scale Java Script ApplicationsFabian Jakobs
 
USG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalUSG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalEric Sembrat
 
Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Jeremy Likness
 
Static Site Generators - Developing Websites in Low-resource Condition
Static Site Generators - Developing Websites in Low-resource ConditionStatic Site Generators - Developing Websites in Low-resource Condition
Static Site Generators - Developing Websites in Low-resource ConditionIWMW
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talksRuslan Meshenberg
 

Similar to OSGeo in Production (20)

Building Mobile Web Apps with jQM and Cordova on Azure
Building Mobile Web Apps with jQM and Cordova on AzureBuilding Mobile Web Apps with jQM and Cordova on Azure
Building Mobile Web Apps with jQM and Cordova on Azure
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPages
 
SeaJUG 5 15-2018
SeaJUG 5 15-2018SeaJUG 5 15-2018
SeaJUG 5 15-2018
 
Preparing your dockerised application for production deployment
Preparing your dockerised application for production deploymentPreparing your dockerised application for production deployment
Preparing your dockerised application for production deployment
 
Talk Paris Infovis 091207132953 Phpapp01(2)
Talk Paris Infovis 091207132953 Phpapp01(2)Talk Paris Infovis 091207132953 Phpapp01(2)
Talk Paris Infovis 091207132953 Phpapp01(2)
 
Using Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the WebUsing Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the Web
 
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
 
Backbone/Marionette recap [2015]
Backbone/Marionette recap [2015]Backbone/Marionette recap [2015]
Backbone/Marionette recap [2015]
 
Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
 
Mobile native-hacks
Mobile native-hacksMobile native-hacks
Mobile native-hacks
 
John Resig Beijing 2010 (English Version)
John Resig Beijing 2010 (English Version)John Resig Beijing 2010 (English Version)
John Resig Beijing 2010 (English Version)
 
Masterin Large Scale Java Script Applications
Masterin Large Scale Java Script ApplicationsMasterin Large Scale Java Script Applications
Masterin Large Scale Java Script Applications
 
USG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalUSG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using Drupal
 
Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!
 
Static Site Generators - Developing Websites in Low-resource Condition
Static Site Generators - Developing Websites in Low-resource ConditionStatic Site Generators - Developing Websites in Low-resource Condition
Static Site Generators - Developing Websites in Low-resource Condition
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talks
 
Cloud patterns
Cloud patternsCloud patterns
Cloud patterns
 

Recently uploaded

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
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
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
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
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 

Recently uploaded (20)

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
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
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
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
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 

OSGeo in Production

  • 1. Scalable OSGeo Stacks From Tutorials to Production David Zwarg dzwarg@courbanize.com
  • 2. Tutorials • A good place to start! • A bad place to end!
  • 3. Production Environments • Your production environment is a beautiful snowflake. ! • Mileage may vary
  • 4. Definition of Terms • “Production” • A data-driven, dynamic, scalable, web application • “Tutorial” • Anything else
  • 5. “data-driven” Anything that can be changed in the application is changed in a database. photo by Daniel Mitchell (flickr)
  • 6. “dynamic” Each visitor may have a personalized “view” of any URL. photo by Jessa Dow-Anderson (flickr)
  • 7. “scalable” The application may be run on 1 server or 100 servers. photo by Tiny Delights (flickr)
  • 8. “web application” An application that provides rich interactivity in a user’s web browser.
  • 9. Good Tutorials Warn You • Bad tutorials don’t
  • 10. Tutorial #1: django • https://docs.djangoproject.com/en/1.7/intro/tutorial01/ • Do not ignore these helpful notes:
  • 11. Tutorial #2: geodjango • “Use the source” • Source installs can be just as dependable as package management solutions
  • 12. Side Note: Source Install • Ensure that all script installations are scriptable • Script & version package management installations • Aim for a repeatable installation
  • 13. Tutorial #3: celery • More helpful log messages: “UserWarning: Using settings.DEBUG leads to a memory leak, never use this setting in production environments!”
  • 14. Side Note: Workers • Long-running processes should be performed “out of band” • Use separate processes to do big tasks
  • 15. Visitor Traffic What your users feel photo by Björn (flickr)
  • 16. Visitor Traffic What it really looks like photo by joiseyshowaa (flickr)
  • 17. Backend Scaling Tips for Servers photo by Henrik Bennetsen (flickr)
  • 18. Scaling GEOS & GDAL • Single-threaded designs • Apache: use the preform multiprocessing module (mpm_prefork) • gunicorn: use synchronous workers with many worker_processes
  • 19. Scaling Tiles • Geoserver includes Geowebcache • Cache WMS image tiles • Automatic cache seeding • Scriptable via REST
  • 20. Scaling Tiles (cont.) • Tilestache • Plugs into Mapnik • Use with MBTiles, Amazon S3, Memcache, etc
  • 21. Scaling PostGIS • Heroku provides the option of HA failover and PostGIS. • Or, roll your own snowflake (WAL, Slony, Bucardo)
  • 22. Frontend Scaling Tips for Web Applications
  • 23. OpenLayers • Loading Strategies • BBOX • Vector “Resolution” • Don’t drown in data
  • 24. Use a CDN • “Content Delivery Network” • https://cdnjs.com • https://ajax.googleapis.com • http://cloudflare.net • more!
  • 25. General Tips • Scale servers on demand • Don’t overwhelm clients • Focus on long-running processes & slow requests • Use a cache
  • 26. Scalable OSGeo Stacks From Tutorials to Production David Zwarg dzwarg@courbanize.com