J’utilise des logiciels libres/open source, par philosophie et pragmatisme. Je décris ici l'édifice vers lequel j’ai pour l’instant convergé.
Ce qu’il faut retenir :
- Centraliser l’ensemble des données dans une base unique permet de sécuriser rendre cohérentes et accessibles les données de l’entreprise (la chasse aux fichiers excel)
- La conception du modèle de donnée ne doit pas être dirigé par l’application
- La base est interfacée avec des applications web, ce qui permet une utilisation immédiate sur les postes de l’entreprise et/ou vers l’extérieur.
- Le développement sous forme de webservices permet à d’autres applications de d’interagir directement avec le système (API).
Écosystème GNU / Linux
Tombé dedans en 1996, je prend si possible en charge l’administration des serveurs applicatifs 1.
Une architecture à deux serveurs «clones» est proposée pour l’environnement de production, avec réplcation master/slave en temps réel de la base de données. Les backups sont historisés sur plusieurs jours, et l’ensemble des paramétrages système est versionné. Les déploiements se font à base de Makefiles, et l’environnement de recette se met à jour automatiquement à chaque mise à jour de la branche de test du repository.
Base de données PostGreSQL
Conception en Forme Normale, mise en place, configuration, utilisation et maintenance. Utilisée depuis la version 7.0, pour des modèles jusqu'à 300 tables, 600 req./s..
PostGreSQL me permet de proposer des systèmes transactionnels performants, fiables et évolutifs. C’est la base de donnée relationnelle la plus avancée du monde du libre.
Langage Python, Framework de développement web Django
Python est un langage qui permet de déveloper rapidement et proprement. Le framework web Django s’inscrit dans la même veine. Principalement destiné à fonctionner avec PostGreSQL, j’ai pu l’utiliser dans le cadre de sites internet à fort traffic et d’applications web complexes. Modulaire par escence, le produit n’a finalement pas énormément évolué depuis quelques années et son credo initial, the web framework for perfectionists with deadlines, n’est toujours pas usurpé.
Framework Angular
Angular est un framework Javascript développé par Google qui me permet d’avoir :
- En combinaison avec Django REST Framework, du code JavaScript qui se charge d'échanger avec le serveur en json.
- Un langage de template qui communique avec ces données JavaScript, permettant d’avoir une séparation complète entre affichage et données.
Divers
Sont listés ici en vrac d’autres outils qui me permettent de proposer un travail de qualité et qui allègent mon existence !
- Apache couplé à NGINX pour servir le web,
- GNU Emacs le monde en soi,
- git pour ne pas scier la branche,
- Magit qui réconcilie ergonomie et efficacité,
- GNU bash parce qu’il tourne toujours,
- GNU make, GNU sed et gawk parce qu’ils se font oublier.
- rsync qui sauve le monde toutes les nuits,
- LaTeX pour les beaux PDF,
- Firefox, Wikipedia, deux beaux projets libres et grand public parmi d’autres.
-
Dans le cas contraire, une fois la base de données et les serveurs web configurés, seul un compte simple et un accès ssh sont nécessaires. ↩︎