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.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.6k
Farewell and Welcome Home, Python in Two Genders by Naomi_Ceder
pycon2014
1
740
Deliver Your Software in an Envelope by Augie Fackler and Nathaniel Manista
pycon2014
1
550
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
700
Smart Dumpster by Bradley E. Angell
pycon2014
0
530
Software Engineering for Hackers: Bridging the Two Solitudes by Tavish Armstrong
pycon2014
0
740
Other Decks in Programming
See All in Programming
第9回 情シス転職ミートアップ 株式会社IVRy(アイブリー)の紹介
ivry_presentationmaterials
1
230
Claude Codeの使い方
ttnyt8701
1
130
F#で自在につくる静的ブログサイト - 関数型まつり2025
pizzacat83
0
310
Blazing Fast UI Development with Compose Hot Reload (droidcon New York 2025)
zsmb
1
180
エラーって何種類あるの?
kajitack
5
290
ドメインモデリングにおける抽象の役割、tagless-finalによるDSL構築、そして型安全な最適化
knih
11
2k
Benchmark
sysong
0
250
LINEヤフー データグループ紹介
lycorp_recruit_jp
0
800
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
1
640
プロダクト志向なエンジニアがもう一歩先の価値を目指すために意識したこと
nealle
0
100
Cline指示通りに動かない? AI小説エージェントで学ぶ指示書の書き方と自動アップデートの仕組み
kamomeashizawa
1
570
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
560
Featured
See All Featured
Navigating Team Friction
lara
187
15k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Code Reviewing Like a Champion
maltzj
524
40k
Six Lessons from altMBA
skipperchong
28
3.8k
Music & Morning Musume
bryan
46
6.6k
Producing Creativity
orderedlist
PRO
346
40k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
4 Signs Your Business is Dying
shpigford
184
22k
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