Intelligent Design for Business
Appelez-nous au
01 45 21 05 21
Attention !

Pour une meilleure qualité d'affichage, nous vous recommandons de consulter ce site en mode portrait.

Subvitamine(tm) Akkurate Subvitamine(tm)
Partagez sur
Par Olivier Lacombe

Les environnements, quésaco ?

Un “environnement”, c’est un ensemble de composants, matériels et logiciels sur lesquels sont exécutés votre application. Il en existe de différentes sortes, pour des usages et des utilisateurs différents.

Ainsi, pour sécuriser les mises à jour de votre application, il est nécessaire de travailler sur différents environnements :

  • L’environnement de développement, sur lequel est programmée l’application (c’est donc l’espace de travail des développeurs) ;
  • L’environnement de recette, qui permet de tester les évolutions de l'application avec le donneur d’ordre, sans que l’application soit en ligne et visible par tous (seuls les développeurs et le donneur d’ordre y ont accès) ;
  • L’environnement de production, sur lequel sont exécutés les programmes, une fois validés par le donneur d’ordre; ils sont alors rendus public (c’est l’environnement que les utilisateurs finaux vont voir).

Les composants sont de différentes natures :

  • Le système d’exploitation (Linux très souvent) ;
  • Les programmes associés tels que Apache ou Ngnix, qui interprètent les langage comme PHP,  NodeJS ou encore Python et le système de base de données comme MySQL, PostGre ou MangoDB ;
  • Votre application elle-même, qui va être versionnée avec des outils comme Git ou SVN ;
  • Les données dites privées, qui sont générées par le programme lors de tâches planifiées et au fur et à mesure de son utilisation ;
  • Les fichiers chargés par les administrateurs, via ftp, upload, ou téléchargés depuis des machines externes ;
  • Les dépendances, qui représentent des programmes additionnels généralement présentés sous la forme de librairies ;

Et enfin, les informations de la ou des bases des données (on parle des données et non de l’application qui permet leur exploitation).

Architecture & méthodes

Il est essentiel, dès le départ de mettre en place une architecture avec plusieurs environnements, ce qui va augmenter la productivité des développeurs, qui ainsi ne sont pas obligés de modifier le code en fonction de l’état d’avancement du projet et de son étape au niveau du déploiement.

N.B. : 3 environnements nécessitent 3 bases de données distinctes, donc 3 configurations différentes; chaque base de données porte un nom différent et les codes d’accès ne sont pas les mêmes.

En parallèle, il faut disposer d’outils efficaces pour permettre aux développeurs de passer leurs modifications d’un environnement à un autre. Pour celà, vous pourrez utiliser différents outils :

  • Git par exemple pour gérer le code source, avec lequel vous distinguerez les 3 environnements.
    En quelques secondes, vos développeurs pourront transférer les modifications d’un environnement à l’autre ;
  • CLI comme Command Line Interface, un vrai truc de geek mais très utile pour charger rapidement les modifications d’un environnement disponibles sur le Git, voir même mettre en place toute une procédure (sauvegarde, droits d’écriture sur des dossiers, traitements massifs…) ;
  • Gestionnaire de packages, pour automatiser l’installation des dépendances, que ce soit pour les librairies côté serveur avec Composer ou côté client (CSS, Javascript) avec Yarn.

Certains développeurs affirmeront leur perfectionnisme en créant des scripts Shell (il s’agit d’instructions direct au niveau du système d’exploitation) pour automatiser l’ensemble… ce que nous faisons chez Subvitamine(tm) :)

Comme dans tout domaine, la programmation nécessite des règles et normes. C’est pourquoi, quelques soient vos langages de programmation, nous ne pouvons que vous recommander l’usage d’un framework (cadre de développement).

En fonction des technologies utilisées, nous recommandons de privilégier celles qui disposent d’un Design Pattern (trame de conception) courant tel que MVC (Model View Controller), ce qui permet de séparer proprement le code de votre application, en isolant les différentes couches de programmation :

  • Model (modèle de données) : le code qui concerne les relations entre votre application et vos sources de données (en général, votre base de données) ;
  • View (vue) : le code qui permet de faire le rendu d’affichage, comme le HTML, le XML ou le JSON ;
  • Controller : le code qui fait appel aux modèles de données, qui effectue les traitements (calculs, formatage, assemblage) pour les transmettre aux vues, idéalement en passant par des librairies pour rendre le code plus léger et donc plus compréhensible.

Enfin, dernier point important à prendre en compte : les tâches planifiées ou crons. Il s’agit d’une partie du code qui peut être exécutée directement par la machine (votre serveur) en fonction d’un calendrier. Par exemple, lorsqu’il faut effectuer un export régulier de données, vous planifiez que le serveur exécute un script qui généralement n’est pas accessible via le web (pour des questions de sécurité).

Conclusion

Plus votre application devient complexe, plus il devient nécessaire d’organiser et de sécuriser la publication des mises à jour.

De même, pour assurer la pérennité de vos développements, il faut organiser et structurer autant que possible.Vous y gagnerez sur de nombreux aspects :

  • En  productivité, car de nombreuses tâches peuvent être automatisées et cela simplifiera grandement la collaboration entre vos développeurs ;
  • En qualité, car vous réduirez de manière significative les erreurs et bugs liés au changement de plate-forme ;
  • En pérennité de vos investissements, car vous augmenterez la longévité de vos codes sources, et réduirez ainsi votre dette technologique.
Newsletter

Restez connecté avec l'Agence pour être informé de nos prochaines publications et annonces.

SUIVEZ-NOUS SUR
48 rue Maurice Béjart, 34080 Montpellier, France
® 2003-2018 Subvitamine(tm). Tous droits réservés.

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation de Cookies pour mesurer l’audience et optimiser votre expérience. Afin de savoir comment paramétrer les « cookies », merci de consulter notre page sur les Cookies.