(Originally written for PyOhio 2016) Infrastructure as Code: from 0 to 1000 servers with Python
Follow the journey of a fictional technology startup, as they struggle to keep up with increasing infrastructure demands of their unexpectedly popular web application. Learn how to deploy and manage infrastructure as code, using familiar tools such as text editor of choice, Git, and of course lots of Python!
In this practical and interactive demonstration, attendees will be provided with tools and encouraged to help our imaginary 'engineering team' with load testing, troubleshooting, and other activities. The journey begins with 0 deployed servers, and works up to an actual deployment of 1000 servers distributed across 10 global datacenters on 5 continents around the world, all behind one endpoint!
Below are some specific technical topics that this presentation will demonstrate:
- The web application being served is Python Bottle + uwsgi + Nginx
- Load and performance testing with Python, and visualizing performance data with matplotlib
- Managing cloud infrastructure with the Boto3 Python library, and AWS CloudFormation
- The use of Round Robin DNS to distribute web traffic globally
- Zero-touch infrastructure management using Git, Jenkins, and the Python plugin for Jenkins.