Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
So you want to be a full-stack developer? How t...
Search
PyCon 2014
April 11, 2014
Programming
15
5.2k
So you want to be a full-stack developer? How to build a full-stack python web application by Kate Heddleston
PyCon 2014
April 11, 2014
Tweet
Share
More Decks by PyCon 2014
See All by PyCon 2014
Postgres Performance for Humans by Craig Kerstiens
pycon2014
29
3.7k
Technical Onboarding, Training, and Mentoring by Kate Heddleston and Nicole Zuckerman
pycon2014
1
2.4k
"My big gay adventure. Making, releasing and selling an indie game made in python." by Luke Miller
pycon2014
2
1.7k
Farewell and Welcome Home, Python in Two Genders by Naomi_Ceder
pycon2014
1
780
Deliver Your Software in an Envelope by Augie Fackler and Nathaniel Manista
pycon2014
1
600
Hitchhikers Guide to Free and Open Source Participation by Elena Williams
pycon2014
6
1.2k
Localization Revisted (aka. Translations Evolved) by Ruchi Varshney
pycon2014
0
730
Smart Dumpster by Bradley E. Angell
pycon2014
0
560
Software Engineering for Hackers: Bridging the Two Solitudes by Tavish Armstrong
pycon2014
0
780
Other Decks in Programming
See All in Programming
Python’s True Superpower
hynek
0
200
朝日新聞のデジタル版を支えるGoバックエンド ー価値ある情報をいち早く確実にお届けするために
junkiishida
1
350
AI活用のコスパを最大化する方法
ochtum
0
120
go directiveを最新にしすぎないで欲しい話──あるいは、Go 1.26からgo mod initで作られるgo directiveの値が変わる話 / Go 1.26 リリースパーティ
arthur1
2
450
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
140
Go Conference mini in Sendai 2026 : Goに新機能を提案し実装されるまでのフロー徹底解説
yamatoya
0
510
CDIの誤解しがちな仕様とその対処TIPS
futokiyo
0
160
CSC307 Lecture 10
javiergs
PRO
1
690
JPUG勉強会 OSSデータベースの内部構造を理解しよう
oga5
2
230
「やめとこ」がなくなった — 1月にZennを始めて22本書いた AI共創開発のリアル
atani14
0
350
CopilotKit + AG-UIを学ぶ
nearme_tech
PRO
1
120
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
380
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
Mind Mapping
helmedeiros
PRO
1
110
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Test your architecture with Archunit
thirion
1
2.2k
KATA
mclloyd
PRO
35
15k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
450
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
The browser strikes back
jonoalderson
0
750
Ruling the World: When Life Gets Gamed
codingconduct
0
160
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
170
Transcript
Full-stack Python Web Applications
Kate Heddleston @heddle317
Python is often one part of a much larger system.
None
What we’re going to talk about... 1. A (semi) typical
web application 2. Dev, staging, production, deploy system 3. Helpful python libraries
What we’re not going to talk about... • Massively scalable
web applications. • Every single installation on the machine. • Nitty gritty details of anything.
Web Application
Parts of a Stack 1. Operating System 2. Web Server
3. Database 4. Application Language
Web Server Apache mod_wsgi Application Code Python Application Code Python
Postgres Database Data
Web Server Apache mod_wsgi Application Code Python Postgres Database
Web Server Application Code Database
Web Server Nginx/ Gunicorn Apache/ mod_wsgi
Application Code Frameworks Python libraries Frontend Static Files (maybe)
Database PostgreSQL MySQL SQLServer Redis MongoDB
Web Server Application Code Database Logging
Logging Log files on the machine
Web Server Application Code Logging Version Control Database
Version Control git svn Github Bitbucket
Web Server Application Code Logging Version Control Database SMTP Server
SMTP Server PostmarkApp Sendgrid Amazon SES
Web Server Application Code Logging Version Control Database SMTP Server
Data Store Async Tasks
Async Frameworks Twisted Tornado Async Tasks Python-rq/Redis Celery/RabbitMQ
Web Server Application Code Logging Version Control Database SMTP Server
Data Store Async Tasks !Exception Handling!
!Exception Handling! Emails
Web Server Application Code Logging Version Control Database SMTP Server
Data Store Async Tasks !Exception Handling!
Web Server Application Code Logging Version Control Database SMTP Server
Data Store Async Tasks !Exception Handling!
Web Server Application Code Logging Version Control Database SMTP Server
Data Store Async Tasks !Exception Handling! Cache
Cache Memcached Redis Varnish
Web Server Application Code Logging Database Data Store Async Tasks
!Exception Handling! Cache Monitoring
Monitoring New Relic Nagios Pingdom
Web Server Application Code Logging Database Data Store Async Tasks
!Exception Handling! Cache
Web Server Application Code Logging Database Data Store Async Tasks
!Exception Handling! Cache
!Exception Handling! Emails Sentry
Web Server Application Code Logging Database Data Store Async Tasks
!Exception Handling! Cache
Logging Log Server Loggly Splunk
Web Server Application Code Logging Database Data Store Async Tasks
!Exception Handling! Cache
Web Server Application Code Database Data Store Async Tasks Cache
Web Server Application Code Cache Load Balancer
Logging !Exception Handling! Monitoring Version Control SMTP Server
Web Server Application Code Database Data Store Async Tasks Cache
Load Balancer Web Server Application Code Cache Data Store Async Tasks Database Database
System of Systems
Production (aka everything you just built) Dev Deploy
Dev Venv & Venvwrapper Vagrant & VirtualBox
Deploy git pull & restart services
Deploy Production (aka everything you just built) Dev Testing
Testing Jenkins CircleCI TravisCI
Deploy Production Dev Testing Staging Dev Dev
Server Config Chef Puppet Ansible SaltStack Docker
Deploy Chef Puppet Ansible SaltStack Docker
Dev Venv & Venvwrapper Vagrant & VirtualBox
Deploy Production Dev Testing Staging Dev Dev Deploy Production Dev
Testing Staging Dev Dev
Hosting AWS Rackspace Linode
Chef Repo for a Web Application https://github.com/heddle317/django-chef-application
PaaS Heroku Elastic Beanstalk
Resources Maps https://github.com/heddle317/full-stack- resources/tree/master/resources_maps
None
None
None
Talk Maps https://github.com/heddle317/full-stack- resources/tree/master/talk_maps
None
None
None
None
3 Takeaways • What are the basic pieces of a
full-stack. • What do these pieces look like in different environments. • Resources for learning more and working with these pieces.
Ask your questions now. Kate Heddleston @heddle317 https://github.com/heddle317/full-stack-resources
“A complex system that works is invariably found to have
evolved from a simple system that works.” — John Gall, Systemantics (1975)
“A system is never finished being developed until it ceases
to be used.” — attributed to Gerald M. Weinberg
“It is as if perfection be attained not when there
is nothing more to add, but when there is nothing more to take away.” — Antoine de Saint-Exupéry, Terre des Hommes (1939)
“There is no such thing as a small change to
a large system.” — systems folklore, source lost in the mists of time
“Everything should be made as simple as possible, but no
simpler.” — commonly attributed to Albert Einstein; it is actually a paraphrase of a comment he made in a 1933 lecture at Oxford