5. Infrastructure et déploiement
5.1 Serveur, conteneur et sauvegarde
EVA est déployé dans un conteneur Apache configuré pour permettre l’exécution de PHP ; c’est une infrastructure « classique » sans image Docker, le conteneur est installé directement sur le serveur Unix mis à disposition par l’hébergeur.
La base de données tourne sur un serveur MySQL installé sur le même serveur Unix que le conteneur Apache et « en direct » (pas d’image Docker).
Le logiciel est donc basé sur une architecture 2-tiers aussi appelée client-serveur
Le logiciel GIT doit être installé sur le serveur afin de permettre le déploiement des sources EVA depuis Gitlab.
Sauvegarde
Les deux serveurs sont sauvegardés suivant le même plan :
Quoi sauvegarder : Toute la machine
Où sauvegarder : Stockage sur le Cloud
Planification : Tous les jours à 03:00
Durée de conservation : Mens.: 1 mois Hebdo.: 4 semaines Journ.: 10 jours
Ikoula peut restaurer des fichiers/dossiers en cas de besoin ou alors mettre à disposition ces derniers.
5.2 CI/CD avec GitLab
Il y a deux branches GIT qui permettent de déployer sur les environnements :
Branche develop pour les environnements de démo, de recette et de preprod
Branche master pour les environnements de production
Dans le menu CI/CD de Gitlab, les pipelines servent à livrer sur les serveurs à l’aide du script .gitlab-ci.yml à la racine du projet. Le script va lancer toutes étapes utiles à la livraison :
Récupération des sources (git pull)
Installation des dépendances (Zend et AngularJS)
Script de mise à jour applicative
Redémarrage du conteneur (Apache)
5.3 Maintenance et correctifs
5.3.1 Apache
Les interventions sur cette couche techniques sont prises en charge au titre de l’infogérance serveur. En ce qui concerne les logs, leur emplacement est configuré dans le conteneur car il n’y a pas de logs applicatifs. Le dossier des logs sur un serveur est /var/log).
5.3.2 MySQL
Les interventions sur cette couche techniques sont prises en charge au titre de l’infogérance serveur. L’emplacement des logs MySQL est configuré sur le serveur. Le dossier des logs sur un serveur est /var/log).
5.3.3 Déploiement des correctifs
Méthode de mise à jour pour le déploiement des correctifs sur les serveurs de recette et production.
Pour les correctifs mineurs et bloquants : recette + production
Pour les correctifs complexes ou non bloquants : recette puis production si OK recette
Pour les évolutions : recette puis production si OK recette
5.3.4 Sauvegardes interne des bases de données
Les bases de données de chaque « utilisateur » sont sauvegardées en .sql compressé de façon quotidienne (6), hebdomadaire (5) et mensuelle (7) via un CRON.
Les fichiers sont respectivement stockés dans les répertoires ci-dessous :
/var/www/siter/automysqlbackup/monthly
/var/www/siter/automysqlbackup/weekly
/var/www/siter/automysqlbackup/daily