Des bonnes/mauvaises pratiques pour le déploiement d'applications Python:
- packager sa propre version de python au lieu d'utiliser celle fournie par l'OS
- utiliser pip au lieu des packages fournis par l'OS pour toutes les librairies Python
- utiliser des virtualenvs pour tout, la seule librairie python installée au niveau global doit être virtualenv
- ne pas faire tourner les daemons dans un simple screen ou tmux, utiliser supervisord à la place
- séparer la configuration de l'application
- utiliser nginx/gunicorn au lieu de apache/mod_wsgi pour les applis web
- packager l'applis en .DEB ou .RPM au lieu de déployer via GIT et PIP (cf. https://hynek.me/articles/python-app-deployment-with-native-packages/)
Un module Fabric pour gérer les déploiements via Git.
L'auteur utilise des Git Push depuis un repo local vers le repo sur le serveur cible au lieu d’exécuter le git pull directement sur le serveur cible.
cf. http://dan.bravender.net/2012/5/11/git-based_fabric_deploys_are_awesome.html
Awesome Python liste les outils, frameworks et librairies pour interagir avec Python
- asynchrone => le programme n'attend pas le retour des IO
- parallèle => le programme peut lancer plusieurs threads ou processus pour profiter de plusieurs CPU
- concurrente => plusieurs programmes différent communiquent entre eux
L'essentiel de python pour les développeurs Java.
et la version Python2: https://learnxinyminutes.com/docs/python/
Pour debuguer un script Fabric avec PyCharm (IDE IntelliJ for Python)
Un TLDR des conventions de codage pep8 pour python
Un analyseur de code python pour detecter les erreurs et s'assurer de respecter la convention de codage python pep8
Pour rendre un code python automatiquement compliant avec pep8
Pour travailler avec des templates de fichiers de conf jinja2 depuis le shell
Un script en python qui permet de se connecter en SSH sur une instance EC2 ou un membre d'un autoscaling group à partir de ces metadatas AWS (nom, instance id, ...)
Un script en python pour automatiser le snapshot des volumes EBS possédant un tag spécifique
Un shell en python
La doc officielle du SDK AWS for Python
Un tuto pour manipuler AWS avec le SDK Python Boto3
Merci iMil
Comment déployer des application python en créant des packages .deb avec dh-virtualenv
Un classement de tutos pour différents langages (ruby, python, ...) et outils (git, puppet, chef, aws ec2, ...)
Un script python qui permet d'afficher un dashboard en ligne de commandes avec toutes les infos d'un AutoScaling Group (status des instances...)
Forkable sur GitHub: https://github.com/osalkk/autoscaling-cli-dashboard
Un guide des bonnes pratiques Python écrit sur GitHub :https://github.com/kennethreitz/python-guide