Python en ligne : comment développer sans perdre une seconde à configurer
Le Python en ligne te permet de développer directement dans ton navigateur sans perdre une seconde à configurer un environnement. Tu gagnes énormément de temps et tu restes concentrer sur ton code. De plus, tu peux coder d’où tu veux, pour vu qu’il y ait un navigateur. Et surtout, tu peux continuer à utiliser ton système d’exploitation favori sans lui tordre le bras pour exécuter du code Python !
Le développement Python en ligne est donc une incroyable opportunité mais sais-tu tout ce qui se cache derrière ?!
L’interpréteur Python
Le navigateur ne se transforme pas pour autant en interpréteur Python. Les solutions offrant du Python en ligne vont générer automatiquement un environnement Python sur un serveur. Cette partie est souvent totalement automatisée et invisible pour le développeur. Il est alors possible de modifier le code directement sur le serveur avec un simple navigateur. Le code déjà placé au sein d’un environnement est alors prêt à être exécuté. Les ressources informatiques utilisées pour l'exécution du code Python sont celles du serveur et non celles de votre poste. L’espace disque occupé par le code par exemple est bien de l’espace disque du serveur, même si cela est occulté. Le processeur et la RAM du serveur sont également mis à contribution par l’interpréteur Python.
À noter que certaines solutions, comme Vélhost, proposent d'enrichir l’environnement avec des modules. La communauté Python est très active et partage énormément sous forme de paquets, aussi appelés modules. Il suffit alors d’utiliser l’instruction “import” pour utiliser du code de la communauté. Afin de maîtriser au mieux ses environnements, il est préconisé de créer un fichier des dépendances au fur et à mesure des imports. C’est ainsi beaucoup plus facile de déployer vos développements par la suite. Pour le gestionnaire de paquets “pip” par exemple, ce fichier est nommé “requirements.txt” par convention et permet l'installation des dépendances en une commande.
Un serveur Web
Le langage Python ne cesse de monter en popularité et n’est plus cantonné au développement de scripts. Il est désormais très utilisé pour le développement d’applications Web et de sites Web. Dans ce contexte, l’édition de Python en ligne nécessite de nouvelles briques et donc, de la configuration en plus. Heureusement, les solutions comme Vélhost s’occupent déjà de déployer ces briques et épargnent aux développeurs des configurations fastidieuses.
La brique principale est la WSGI (Web Server Gateway Interface) qui définit une interface entre le serveur Web et les applications Web codées avec le langage Python.
Couplé à la WSGI, le serveur Web (généralement Apache2 ou NGinx) permet de traiter les requêtes HTTP en exécutant le code Python. Les requêtes HTTP provenant du navigateur de l’internaute sont réceptionnées par le serveur Web. Celui-ci, utilise la WSGI pour exécuter le code Python qui va bien et en restitue la sortie sous forme de réponse au navigateur de l’internaute.
Le serveur Web fournit également les fichiers statiques, mais sans traitement ni exécution de code. C’est le cas pour les images, les vidéos et les fichiers Javascript ou CSS.
Par ailleurs, pour répondre à des requêtes HTTP, le serveur doit être joignable sur Internet et associé à un nom de domaine. Vélhost propose par exemple une URL générée automatiquement, déjà configurée et associé aux serveurs Web. L’entrée DNS qui permet d’associer l’URL à l’IP du serveur, est ajoutée automatiquement à la création de l’environnement.
Le serveur Web s’occupe également de la couche SSL pour fournir des applications Web au travers du protocole HTTPS. Au-delà du fait que ce protocole est favorisé par les moteurs de recherche, il est fortement recommandé. Le protocole HTTPS ajoute une couche de chiffrement des données qui sécurise les échanges entre le serveur et le navigateur de l’internaute.
Une base de données
Il y a fort à parier que tes applications Web vont manipuler des données et que celles-ci vont devoir persister! C’est le rôle de la base de données ! Que ce soit PostgreSQL ou MariaDB, les bases de données permettent aux applications Python d’y enregistrer et d’y lire des données.
Rares sont les solutions de type Python en ligne à proposer cette brique, mais heureusement, c’est le cas de Vélhost qui propose une base de données PostgreSQL avec chaque environnement. Déployée et déjà configurée, la base de données est alors accessible depuis l’environnement Python.
Le mode privé
Les solutions permettant d'éditer du code Python en ligne sont pour la plupart orientées pour le partage de bouts de code. Dans ce sens, elles ne sont pas vraiment adaptées pour le développement d’applications Web classiques, car elles ne permettent pas, entre autres, de protéger l’accès au code.
Ce n’est pas le cas de Vélhost qui propose des environnements privés par conception. Chaque utilisateur jouit d’un serveur dédié au travers d’un compte sécurisé. Le code Python n’est accessible que pour le développeur authentifié qui en est l’auteur.
Bien évidemment, l’application Web est quant à elle accessible sur Internet grâce à l'URL générée.
La gestion des versions
Il est difficilement envisageable de développer sans suivi du code. Que se soit pour travailler en équipe ou tout simplement pour sécuriser son code, il est impératif d’utiliser un outil de gestion de versions.
Le principe est que chaque modification de code est conservée et stockée sur un serveur distant. Ainsi, le suivi du code est assuré et le travail en équipe est envisageable. Il peut s’avérer très pratique dans le cas d’une régression. Si un bug apparaît, l’analyse des dernières modifications du code s’avère très souvent payante.
En équipe, la revue de code est désormais très répandue. L’auteur soumet son code pour relecture à d’autres développeurs de l’équipe. Sans leurs validations, le code n’est pas déployé en production. Il va s’en dire que ce genre de pratique n’est pas possible sans un gestionnaire de code abouti.
Le gestionnaire le plus couramment utilisé est sans conteste GIT et c’est également l’outil retenu par Vélhost. Bien qu’essentielle, la gestion des versions est rarement au programme des solutions de type Python en ligne.
Un terminal
Le terminal est l'interface permettant d'exécuter des lignes de commandes. Très utilisé pour la configuration des serveurs qui ne sont pas dotés d’interface graphique, le terminal permet également d’effectuer la maintenance des applications. Dans les usages les plus courants, il est utilisé pour installer les dépendances d’un projet, effectuer les migrations sur la base de données ou encore lancer des scripts.
Sur un projet Python Django par exemple, le terminal est nécessaire pour initialiser le projet, créer les applications et créer le super utilisateur. Ensuite, il est utile pour appliquer les modifications de modèles à la base de données (“migrations”). Il peut également être utile pour injecter des jeux de données.
Les logs
Un log est une donnée associée à une date et une heure. Cette donnée est ainsi stockée dans le but de créer un journal d’événements intervenus au sein d’une application. Typiquement, les erreurs de traitement sont consignées dans un fichier afin d’être analysées par la suite. Il est également possible d’envoyer les logs à un serveur de logs. Ce dernier est chargé de centraliser la gestion des logs dans le but de les analyser et d’identifier des corrélations.
En Python, le module “logging” permet de mettre en place en toute simplicité un système de journalisation. Une simple instruction logger.info('Mon message')
permettra de consigner un événement dans la sortie ou dans un fichier selon la configuration du projet.
Dans un contexte de développement en ligne, il est également possible de visualiser ces fichiers de logs. Souvent séparés en deux, d’un côté les infos et de l’autre, les erreurs, ces fichiers sont essentiels pour vérifier le bon fonctionnement d’une application Web.
Les sauvegardes
On ne le dira jamais assez, mais il y a 10 types de personnes dans le monde, ceux qui ont déjà perdu des données et ceux qui vont en perdre !
La sauvegarde est donc une assurance, celle de repartir rapidement et de ne pas perdre des heures de travail.
En phase de développement, le code est en principe sécurisé par l’usage d’un gestionnaire de version. Mais il y a bien souvent des jeux de données qui peuvent être perdus.
Pour éviter ces mésaventures, il est de bonne augure de réaliser des sauvegardes régulières de l’ensemble des fichiers et de la base de données.
Les solutions de développement en Python en ligne ne proposent pas forcément cette possibilité. Vélhost le permet en un simple clic et te permet d’obtenir une archive de tes fichiers et de ta base de données. Cette archive peut être téléchargée directement sur ton poste pour éventuellement être déployé ultérieurement ou même ailleurs.
Conclusion
Les briques nécessaires pour le développement en Python, notamment pour du Web, sont donc nombreuses et peuvent s’avérer complexes et chronophages à mettre en place. De plus, leurs déploiements peuvent t'éloigner de ton code, de tes objectifs et de ton système d’exploitation favori.
Il est donc tout à fait opportun de s’appuyer sur des solutions proposant des environnements prêts à l’emploi.
Vérifie toutefois que la solution envisagée coche bien toutes les cases selon tes besoins.
Enfin, privilégie les solutions ouvertes, c’est-à-dire celles où il est possible de récupérer son code et ses données à tout moment.