Comment configurer des serveurs cloud Ubuntu pour les applications Web Python

De Get Docs
Aller à :navigation, rechercher

Introduction


Le cloud computing façonne l'ensemble de l'industrie des technologies de l'information (IT) et Ubuntu est en plein dans le mille - littéralement ! Avec la prise en charge d'un très large éventail d'outils, de bibliothèques et d'applications variés, couplée à la facilité d'utilisation et à la façon dont elle simplifie les tâches difficiles, cette distribution Linux de confiance est devenue le choix incontournable pour beaucoup sur sa façon de prendre le contrôle de l'espace du cloud public.

Dans cet article DigitalOcean, nous allons apprendre à préparer un serveur cloud Ubuntu à partir de zéro pour héberger des applications Web Python. En suivant ce tutoriel, vous aurez une installation Ubuntu solide, équipée de presque tous les outils nécessaires pour déployer votre projet Python.

Ubuntu 13.10 (date de sortie : octobre 2013)


Nous commencerons par mettre à jour le système, télécharger et installer les outils et bibliothèques nécessaires dont nous aurons besoin [pour Python], puis créer l'environnement de déploiement parfait pour votre application Web.

Mise à jour du système


La première chose à faire est de mettre à jour tout ce qui est déjà livré avec Ubuntu.

Mettons à jour la liste des sources logicielles, puis mettons à niveau les applications obsolètes :

# Update the applications sources list:
aptitude    update

# Upgrade the outdated applications on the system:
aptitude -y upgrade

Obtenir les outils et bibliothèques système nécessaires


Ensuite, téléchargeons et installons les outils et bibliothèques nécessaires qui seront soit utilisés directement, soit utiles à l'avenir.

Exécutez la commande suivante pour installer le package build-essential requis pour compiler le code source des applications :

aptitude install -y build-essential 

Ensuite, quel que soit l'outil de contrôle de version dont vous avez besoin pour le développement :

aptitude install -y cvs subversion git-core mercurial

Afin de faire fonctionner certaines applications Python, nous avons également besoin de certains packages Python :

aptitude install python-setuptools python-dev \
                 python2.7-dev python-software-properties \
                 libpq-dev

Et enfin, certaines bibliothèques tierces requises pour diverses autres choses, telles que le traitement d'image :

aptitude install libtiff4-dev libjpeg8-dev \
                 zlib1g-dev libfreetype6-dev liblcms2-dev \
                 libwebp-dev tcl8.5-dev tk8.5-dev

Obtenir les outils Python communs


Sur Ubuntu et Debian, une version récente de l'interpréteur Python - que vous pouvez utiliser - est fournie par défaut. Cela ne nous laisse qu'un nombre limité de packages supplémentaires à installer :

  • pip (pour gérer les packages) ;
  • virtualenv (pour créer des environnements virtuels isolés).

Exécutez les commandes suivantes pour installer pip :

# Get pip's dependency:
curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python -

# And then pip:
curl https://bootstrap.pypa.io/get-pip.py | python -

# Finally, let's add it the PATH variable:
export PATH="/usr/local/bin:$PATH"

Il est préférable de contenir une application Python dans son propre environnement ' avec toutes ses dépendances. Un environnement peut être mieux décrit (en termes simples) comme un emplacement isolé (un répertoire) où tout réside. A cet effet, un outil appelé virtualenv est utilisé.

Exécutez ce qui suit pour installer virtualenv en utilisant pip :

pip install virtualenv  

Création d'un environnement pour votre application Web Python


Remarque : Les instructions données ici sont brèves. Pour en savoir plus, consultez notre article pratique sur pip et virtualenv : Common Python Tools : Using virtualenv, Installing with Pip, and Managing Packages.

Exécutez les commandes suivantes pour créer un environnement virtuel pour votre application Web Python :

# Create a virtual environment:
# Usage: virtualenv [main app. directory name]
# Example:
virtualenv django_app

# Enter the directory to start working with
# the Python interpreter:
# Example:
cd django_app

Ensuite, pour travailler avec l'interpréteur Python isolé et pip le gestionnaire de packages, activez l'environnement, par exemple :

# Activate the *virtualenv*:
source bin/activate

Ou appelez directement l'interpréteur Python chaque fois que vous avez besoin de travailler avec l'application située dans cet environnement, par exemple :

# Call the Python interpreter directly:
# Usage: bin/python [command]
# Example:
bin/python manage.py runserver 0.0.0.0:8000

Installation de votre application


Une fois que tout est prêt, vous pouvez maintenant commencer à travailler avec Python et créer votre application Web.

Voici quelques excellents exemples :

  • Ballon:

Comment déployer des applications Web Flask

Comment structurer les applications de grands flacons

  • Pyramide:

Comment utiliser le framework Pyramid pour créer votre application Web Python

Comment déployer des applications Web Python WSGI basées sur une pyramide

  • Web2py :

Comment utiliser le framework Web2py pour créer rapidement votre application Python

  • Bouteille:

Comment utiliser le Bottle Micro Framework pour développer des applications Web Python

  • CMS Django :

Comment configurer et installer Django CMS Comment installer Django CMS version 3 bêta 3

  • Mezzanine:

Comment installer et démarrer avec le CMS Mezzanine basé sur Django

Se préparer pour la production


Le serveur [d'application] de test fourni avec Django n'est pas adapté aux scénarios de production réels. Avant de mettre votre application en ligne, vous devez télécharger et installer un serveur d'application Python adapté et le configurer. Cependant, n'ayez pas peur car c'est vraiment un processus remarquablement facile.

Afin de décider quel serveur d'application répond le mieux à vos besoins, consultez notre article : Une comparaison des serveurs Web pour les applications Web basées sur Python.

Une fois que vous avez décidé, suivez l'un des tutoriels suivants pour déployer votre application Mezzanine en ligne de manière solide et fiable :

  • Gunicorne :

Comment déployer des applications Python WSGI à l'aide du serveur HTTP Gunicorn derrière Nginx

  • uWSGI :

Comment déployer des applications Python WSGI à l'aide du serveur Web uWSGI avec Nginx

  • CerisePy :

Comment déployer des applications Python WSGI à l'aide du serveur Web CherryPy derrière Nginx

Si vous êtes plus habitué à travailler avec Apache ou si vous souhaitez le conserver pour une raison quelconque, vous pouvez opter pour le remplacer par Nginx. Afin de voir comment utiliser votre installation Apache actuelle en tant que proxy inverse pour l'un des serveurs d'applications ci-dessus, consultez notre article : Comment utiliser le serveur HTTP Apache en tant que proxy inverse à l'aide de l'extension mod_proxy.

Soumis par : [[“%3Ca|https://twitter.com/ostezer]] [[“%3C/a|”>SE]] Tézer