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 :

  1. Branche develop pour les environnements de démo, de recette et de preprod

  2. 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