150 captures
10 Jun 2014 - 26 Apr 2025
May JUN Jul
27
2021 2022 2023
success
fail

About this capture

COLLECTED BY

Collection: Common Crawl

Web crawl data from Common Crawl.
TIMESTAMPS

The Wayback Machine - http://web.archive.org/web/20220627024342/https://www.fullstackpython.com/deployment.html
 

Full Stack Python
All topics | Blog | Supporter's Edition | @fullstackpython | Facebook | What's new?

Deployment






Deployment involves packaging up your web application and putting it in a production environment that can run the app.

Why is deployment necessary?


Your web application must live somewhere other than your own desktop or laptop. A production environment is the canonical version of your current application and its associated data.

Deployment topics map


Python web application deployments are comprised of many pieces that need to be individually configured. Here is a map that visually depicts how each deployment topic relates to each other. Click the image to pull up a PDF version.

Full Stack Python deployments map.

Deployment hosting options


There are four options for deploying and hosting a web application:



"Bare metal" servers



Virtualized servers



Infrastructure-as-a-service



Platform-as-a-service



The first three options are similar. The deployer needs to provision one or more servers with a Linux distribution. System packages, a web server, WSGI server, database and the Python environment are then installed. Finally the application can be pulled from source and installed in the environment.

Note that there are other ways of installing a Python web application through system-specific package management systems. We won't cover those in this guide as they are considered advanced deployment techniques.

Deployment tools




teletraan is the deploy system used by the development teams at Pinterest, a huge Python shop!



pants is a build system originally created at Twitter and now split out as its own sustainable open source project.



Screwdriver is an open source build system originally developed at Yahoo! that is now open source. Learn more about it in the introduction post that contains the rationale for its creation.


Deployment resources




Hello, production lays out the powerful philosophy of putting a project into production as soon as possible in a project's lifecycle to establish the pipeline, identify issues and bottlenecks, and build the foundation for continuous delivery. The post also covers common objections and provides some arguments to help you convince others that this strategy is the right way to go on all projects.



Automated Continuous Deployment at Heroku explains Heroku's deployment system, the checks they use to ensure code quality and what they have learned from building the pipeline and process.



Deploying Python web applications is an episode of the great Talk Python to Me podcast series where I discuss deploying web applications based on a fairly traditional virtual private server, Nginx and Green Unicorn stack.



Thoughts on web application deployment walks through stages of deployment with source control, planning, continuous deployment and monitoring the results.



Deploying Software is a long must-read for understanding how to deploy software properly.



The evolution of code deploys at Reddit teaches the history, including the mistakes, that Reddit's development teams learned as they scaled up the development team and the traffic on one of the most-visited websites in the world.



Deployment strategies defined explains various ways that development teams deploy applications, ranging from reckless to versioned.



How we release so frequently provides a high-level overview of tactics for how teams at large scale can deploy changes several times per day or more with confidence the systems will not completely fail. There will be bugs, but that does not mean the entire operation will stop.



Hands-off deployment with Canary explains how SoundCloud automates their deployment process and uses canary builds to identify and roll back issues to mitigate reliability issues that can occur with shipping software at scale.



Practical continuous deployment defines delivery versus deployment and walks through a continuous deployment workflow.



5 ways to deploy your Python application in 2017 is a talk from PyCon US 2017 where Andrew Baker deploys the getting started Flask app using Ngrok, Heroku, Zappa on the serverless AWS Lambda platform, a virtual machine on Google Cloud and Docker.



Continuous deployment at Instagram is the story of how their deployment process evolved over time from a large Fabric script to continuous deployments. Along the way they encountered issues with code reviews, test failures, canary builds and rollbacks. It's a great read that sheds some light on how Python deployments can be done well at large scale.



Stack Overflow's guide on how they do deployment is an awesome in-depth read covering topics ranging from git branching to database migrations.



TestDriven.io shows how to deploy a microservices architecture that uses Docker, Flask, and React with container orchestration on Amazon ECS. 


Deployment learning checklist




If you're tight on time look at the platform-as-a-service (PaaS) options. You can deploy a low traffic project web app for free or low cost. You won't have to worry about setting up the operating system and web server compared to going the traditional server route. In theory you should be able to get your application live on the web sooner with PaaS hosting.



Traditional server options are your best bet for learning how the entire Python web stack works. You'll often save money with a virtual private server instead of a platform-as-a-service as you scale up.



Read about servers, operating systems, web servers and WSGI servers to get a broad picture of what components need to be set up to run a Python web application.


How would you like to deploy your web app?





Show me options for bare metal and virtualized servers.
 




How do I use a platform-as-a-service to deploy my Python app?
 




I have a server, how do I set up the operating system?
 







Table of Contents



1. Introduction 2. Development Environments 3. Data 4. Web Development 5. Deployment Hosting Servers Static Content CDNs Virtual Private Servers Linode DigitalOcean Lightsail Platform-as-a-Service Heroku PythonAnywhere AWS CodeStar Operating Systems Ubuntu macOS Windows FreeBSD Web Servers Apache HTTP Server Nginx Caddy WSGI Servers Green Unicorn (Gunicorn) mod_wsgi uWSGI Continuous Integration Jenkins GoCD Configuration Management Ansible Salt Containers Docker Kubernetes Serverless AWS Lambda Azure Functions Google Cloud Functions 6. DevOps Changelog What Full Stack Means About the Author Future Directions Page Statuses ...or view the full table of contents.



Full Stack Python


Full Stack Python is an open book that explains concepts in plain language and provides helpful resources for those topics.

Updates via Twitter & Facebook.



Chapters



1. Introduction 2. Development Environments 3. Data 4. Web Development » 5. Deployment 6. DevOps Changelog What Full Stack Means About the Author Future Directions Page Statuses ...or view the full table of contents.

 



Matt Makai 2012-2022