Icon PaaS

"Platform as a Service" : exemple de Django sur Google App Engine

Auteur

Le cloud computing devient de plus en plus omniprésent et pertinent - d'où l'importance d'en avoir une bonne connaissance. "Platform as a Service" (PaaS) offre aux entreprises une possibilité puissante de piloter le développement de logiciels modernes et basés sur le cloud. Dans cette partie, nous allons nous focaliser sur ce que Google App Engine offre en matière de Platform as a Service.

Un aperçu de Google App Engine

Google App Engine est une plateforme sans serveur entièrement gérée pour le développement et l'hébergement d'applications web à grande échelle. Cette solution Platform as a Service (PaaS) permet de concevoir et de développer des applications à l'aide d'un grand nombre de langages, de bibliothèques et de frameworks populaires. En tant que développeur, il est possible de confier à Google App Engine la mise à disposition de serveurs et la mise à l'échelle d'instances d'applications en fonction des besoins. (source)

En résumé, Google App Engine est une solution PaaS (Platform as a Service) qui simplifie la mise à disposition d'applications dans un environnement de cloud computing. Bien que Google App Engine puisse être utilisé par les petites comme les grandes organisations, la solution est plus avantageuse pour les grandes entreprises et organisations, du fait que plusieurs tâches sont automatisées. (source)

Avantages et inconvénients de Google App Engine

En tant que solution de plate-forme en tant que service (PaaS), Google App Engine offre plus d'avantages que d'inconvénients. App Engine est une solution rentable pour les applications à faible flux et les petites entreprises. En effet, les entreprises peuvent bénéficier de fonctions d'auto-scaling plus rapides. De plus, la gestion est moins compliquée, de sorte à ce que les développeurs se consacrent à leur application et non à la gestion de machines virtuelles. Google App Engine dispose également de fonctions intégrées pour le contrôle des versions et la répartition du flux. Celles-ci rendent les fonctions plus rapides et efficaces. L'accès au memcache est possible, tandis que l'accès au datastore est beaucoup plus rapide.D'autre part, comme les instances sont plus petites, Google App Engine est plus limité. Cela simplifie et accélère l’auto-scalling automatique, bien que les grandes applications puissent nécessiter de plus grandes instances de machines virtuelles. En outre, cette solution Platform as a Service ne prend pas en charge les réseaux. (source)

Django sur Google App Engine

Il existe plusieurs options pour le déploiement d'applications Django-Python dans l'environnement de cloud computing de Google :

• App Engine Standard Environment

• App Engine Flexible Environment

• Cloud Run

• Google Kubernetes Engine (GKE)

Moteur de calculDans cet article, nous aborderons l’exécution de Django dans un environnement standard Google App Engine. Les applications python de Django qui s’exécutent sur Google Cloud sont alimentées par la même infrastructure qui fait fonctionner tous les produits de Google. Ainsi, la capacité de l'application à s'adapter à une charge de travail changeante est accrue.

Comme prérequis, il est nécessaire d'avoir un compte Google Cloud avec facture, API Admin Cloud SQL, Secret Manager et API Cloud Build activés. Par ailleurs, Google Cloud CLI doit être installé et initialisé.

Instructions généralespas à pas

Pour exécuter Django dans un environnement App Engine standard, cinq étapes générales doivent être suivies :

Étape 1 : Préparation de l’environnement
Étape 2 : Création des services de backing
Étape 3 : Exécution de l'application sur l'ordinateur local
Étape 4 : Utilisation de la console d'administration Django
Étape 5 : Déploiement de l'application dans l'environnement App Engine standard

Étape 1 : Préparation de l’environnement

Pour cet exemple d'application Django, clonez le référentiel sur votre ordinateur local et accédez au répertoire du code exemple. Assurez-vous également que vous disposez au moins de la version Python 3.7. Créez ensuite un environnement Python virtuel et installez les dépendances.

Ensuite, vous devez télécharger le proxy Auth de Cloud SQL pour vous connecter à Cloud SQL depuis votre ordinateur. Pour ce faire, vous devez vous authentifier et récupérer les informations d'identification pour l'API, puis télécharger et installer le proxy Cloud SQL Auth, comme illustré ci-dessous.

Étape 2 : Création deservices de backing

Tous les services doivent être déployés dans la même région. Dans cette étape, vous allez configurer la base de données, le stockage multimédia et le stockage secret.

Pour créer une instance PostgreSQL, vous devez aller dans la Cloud Console et cliquer sur Créer une instance dans la section Instances Cloud SQL. Ensuite, cliquez sur Créer une instance, puis sur PostgreSQL. Dans le champ Instance ID, saisissez le nom de l'instance souhaitée et un mot de passe pour l'utilisateur PostgreSQL. Cliquez enfin sur Créer.

Sur la page de l'instance créée, allez sur l'onglet Bases de données et cliquez sur Créer une base de données. Définissez le nom de la base de données et cliquez sur Créer.

Pour créer un utilisateur de base de données, allez dans l'onglet Utilisateurs et cliquez sur Ajouter un compte utilisateur. Sous Authentification intégrée, ajoutez un compte utilisateur à l'instance, saisissez le nom d'utilisateur de la base de données et le mot de passe, puis cliquez sur Ajouter. (source)

Pour sauvegarder des valeurs via des services de sauvegarde configurés, veuillez lire la section Sauvegarder des valeurs secrètes dans le gestionnaire secret.

Étape 3 : Exécution de l’application sur PC

Dans un terminal distinct, démarrez le proxy d’authentification Cloud SQL, définissez l'ID du projet localement ainsi qu’une variable d'environnement pour indiquer que vous utilisez le proxy d’authentification Cloud SQL.

Exécutez les migrations Django pour configurer vos modèles et vos ressources. Enfin, démarrez le serveur Web Django. Dans le navigateur, allez sur http://localhost:8000 pour afficher le texte de l'application d'exemple. Pour arrêter le serveur web local, appuyez sur Ctrl / Cmd + C. (Source)

Étape 4 : Utilisation de la console d'administration Django

Pour utiliser la console d'administration de Django, vous devez créer un superutilisateur et saisir un nom d'utilisateur, une adresse électronique et un mot de passe. Rendez-vous sur http://localhost:8000/admin et connectez-vous avec les identifiants créés. (source)

Étape 5 : Déploiementde l'application dans l'environnement App Engine standard

Tout d'abord, téléchargez et déployez l'application. Ensuite, saisissez « oui » pour confirmer les paramètres, et attendez le message de fin. Après cela, ouvrez app.yaml et mettez à jour la valeur de APPENGINE_URL avec votre URL déployée et mettez à jour vos modifications de configuration en déployant à nouveau l'application.

Pour exécuter l'application déployée, ouvrez le site web déployé ou bien affichez l'URL et ouvrez-la manuellement. (source)

Pour plus d'informations sur la mise à jour de votre application, la compréhension du code ou le nettoyage du projet Django Python, consultez la documentation officielle de Google Cloud.

La plupart des fournisseurs de cloud proposent une forme de Platform as a service (PaaS), mettant ainsi les avantages ci-dessus à la disposition de toute entreprise. On trouve d’autres exemples de PaaS comme Microsoft Azure App Services et Elastic Beanstalk. Vous en découvrirez plus dans les prochains articles de blog.

Vers tous les articles