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.1k
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.6k
Technical Onboarding, Training, and Mentoring by Kate Heddleston and Nicole Zuckerman
pycon2014
1
2.3k
"My big gay adventure. Making, releasing and selling an indie game made in python." by Luke Miller
pycon2014
2
1.5k
Farewell and Welcome Home, Python in Two Genders by Naomi_Ceder
pycon2014
1
710
Deliver Your Software in an Envelope by Augie Fackler and Nathaniel Manista
pycon2014
1
530
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
690
Smart Dumpster by Bradley E. Angell
pycon2014
0
500
Software Engineering for Hackers: Bridging the Two Solitudes by Tavish Armstrong
pycon2014
0
710
Other Decks in Programming
See All in Programming
サーバーゆる勉強会 DBMS の仕組み編
kj455
1
300
KubeCon NA 2024の全DB関連セッションを紹介
nnaka2992
0
120
watsonx.ai Dojo #6 継続的なAIアプリ開発と展開
oniak3ibm
PRO
0
160
2025.01.17_Sansan × DMM.swift
riofujimon
2
510
月刊 競技プログラミングをお仕事に役立てるには
terryu16
1
1.2k
Androidアプリの One Experience リリース
nein37
0
1.1k
Flatt Security XSS Challenge 解答・解説
flatt_security
0
700
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
3
2k
QA環境で誰でも自由自在に現在時刻を操って検証できるようにした話
kalibora
1
140
traP の部内 ISUCON とそれを支えるポータル / PISCON Portal
ikura_hamu
0
180
ATDDで素早く安定した デリバリを実現しよう!
tonnsama
1
1.7k
DevFest - Serverless 101 with Google Cloud Functions
tunmise
0
140
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.6k
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
Code Reviewing Like a Champion
maltzj
521
39k
Documentation Writing (for coders)
carmenintech
67
4.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
The Language of Interfaces
destraynor
155
24k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
230
52k
The Cult of Friendly URLs
andyhume
78
6.1k
Docker and Python
trallard
43
3.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
A better future with KSS
kneath
238
17k
A designer walks into a library…
pauljervisheath
205
24k
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