EuroPython 2017 - Infrastructure as Python Code - Run Your Services on Microsoft Azure
My talk at EuroPython 2017 on running Python services on Microsoft Azure with infrastructure as code: ARM templates, the Azure SDK for Python and the Azure Ansible modules.
This post is from 2017. Some of the content may be outdated.
The Microsoft Azure Cloud (https://azure.microsoft.com/) offers different ways to provision, deploy, and run your Python service:
Azure Resource Manager (ARM) templates (https://azure.microsoft.com/en-us/resources/templates/) allow you to provision your application using a declarative template. With parameters, variables, and Azure template functions, the same template can deploy your application to different stages (dev, test, production) and to different customer environments. We have open-sourced the Tropo library (https://pypi.python.org/pypi/tropo/) to create Azure Resource Manager templates from Python.
The Azure SDK for Python (http://azure-sdk-for-python.readthedocs.io) provides low-level access to manage resources in the Azure Cloud.
Azure Ansible modules (https://docs.ansible.com/ansible/guide_azure.html), based on the Azure SDK, automate software provisioning, configuration management, and application deployment across your environments.
Each option has different strengths and drawbacks. Sharing our lessons learned from migrating our infrastructure to the Azure Cloud will help avoid common pitfalls and show deployment patterns that make life easier for DevOps teams.
