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
AIに仕事を丸投げしたら、本当に楽になれるのか
dip_tech
PRO
0
180
文字コードの話
qnighy
43
17k
メタプログラミングで実現する「コードを仕様にする」仕組み/nikkei-tech-talk43
nikkei_engineer_recruiting
0
150
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
kztakasaki
2
510
AI主導でFastAPIのWebサービスを作るときに 人間が構造化すべき境界線
okajun35
0
500
2026/02/04 AIキャラクター人格の実装論 口 調の模倣から、コンテキスト制御による 『思想』と『行動』の創発へ
sr2mg4
0
680
株式会社 Sun terras カンパニーデック
sunterras
0
2k
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
510
Swift ConcurrencyでよりSwiftyに
yuukiw00w
0
240
今更考える「単一責任原則」 / Thinking about the Single Responsibility Principle
tooppoo
3
1.3k
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
180
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
190
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
93
Darren the Foodie - Storyboard
khoart
PRO
3
2.7k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
770
Making Projects Easy
brettharned
120
6.6k
From π to Pie charts
rasagy
0
140
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.3k
The Curse of the Amulet
leimatthew05
1
9.5k
A Tale of Four Properties
chriscoyier
162
24k
Design in an AI World
tapps
0
160
Docker and Python
trallard
47
3.8k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
210
エンジニアに許された特別な時間の終わり
watany
106
240k
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