Plan de continuité d’activité / Plan de reprise d’activité¶
Prérequis¶
Récupérer l’archive de la base de données¶
Si la base de données est à restaurer
Sur Scalingo, à parir de l’application à restaurer, accéder à l’archive de la base de données: Ressources
/ Addons
/ PostgreSQL
/ Go to dashboard
/ BACKUPS
Télécharger la dernière archive non comrompue.
Récupérer le contenu du stockage s3¶
Si le stockage s3 est à restaurer.
Récupérer la dernière archive sur github (archivé tous les lundis matin):
Accéder à la tâche github action qui archive les objets S3 : https://github.com/MTES-MCT/apilos/actions/workflows/s3_backup.yml
Accéder à la dernière execution de la github action dont le contenu n’est pas comrompu
Télécharger l’artefact s3_production
Créaton d’un environnement sur le PaaS Scalingo¶
Création de l’application¶
FIXME : qu’est-ce qu’est Scalingo
Rendez-vous sur dashboard.scalingo.com
Cliquer sur créer une application
Créer une application avec le nom de votre choix, ex: « apilos-production »
Choisir le déployement
Scalingo git server
Invitez vos collaborateurs sur le projet nouvellement créé
Settings
/Collaborators
Une fois les invitations acceptées, vous serez en capacité de transférer la propriété du projet, ceci transfert aussi la facturation
Création de base de données¶
A partir de l’application sur Scalingo
Accéder à la gestion des Addons
Ressources
/Addons
/Add an addon
Choisir PostgreSQL
Choisir un plan (éviter le plan gratuit)
Clicker sur
Provision Addons
Création d’un utilisateur en lecture seule¶
Nécessaire pour le pluggin explorer de l’application
Accéder à la gestion des utilisateurs de la base de données
Ressources
/Addons
/PostgreSQL
/Go to dashboard
/USERS
Créer un utilisateur en lecture seule sur la base de données
Garder les identifiants, ils vous serviront pour configurer les variables d’environnement
Restoration de la base de donnée¶
récupérer le DSN
SCALINGO_POSTGRESQL_URL
dans les variables d’environnement de votre nouvelle applicationCréer un tunnel ssh sur le réseau de votre application Scalingo (doc https://doc.scalingo.com/platform/databases/access), Astuce : il faudra modifier l’URL et le port de la variable d’environnement
SCALINGO_POSTGRESQL_URL
en local avec les données fourni par le tunnel sshRestaurer la base de données avec la commande
pg_restore
, ex: pg_restore -d « ${DB_URL} » –clean –no-acl –no-owner –no-privileges <dump_file.pgsql>Conseil, vérifier la présence des données sur la nouvelle base de données grâce à un client psql
Sockage Objet S3¶
FIXME : stockage s3, pourquoi faire
Restoration du Sockage Objet S3¶
Accéder au fournisseur de stockage s3 (Scaleway)
Créer un bucket
Stockage
/Object Storage
/Créer un bucket
Nommer le bucket
Choisir un lieu de stockage
Sélectionner la visibilité privé
Activé le versionnage du bucket
Dézipper l’archive
Configurer un client aws s3 locallement pour accéder au bucket nouvellement créé (doc scaleway: https://www.scaleway.com/en/docs/storage/object/api-cli/object-storage-aws-cli/)
Copier le contenu de l’archive dans le bucket
Ajout d’un addon Redis¶
Accéder à la gestion des Addons
Ressources
/Addons
/Add an addon
Choisir Redis
Choisir un plan (éviter le plan gratuit)
Clicker sur
Provision Addons
Deployer l’application¶
Configurer les variables d’environnement¶
Prenez le contenu de fichier .env.template
Adapter les valeurs de chaque variable d’environnement pour l’environnement souhaité
Déployer via le repositories git de Saclingo¶
Suivre la procédure de scalingo : https://doc.scalingo.com/platform/deployment/deploy-with-git
Configurer¶
Configurer les entrées DNS¶
Sur votre fournisseur de DNS (ex: alwaysdata)
Ajouter le CName vers votre application Scalingo selon la documentation (https://doc.scalingo.com/platform/app/domain#configure-your-domain-name)
Adapté la configuration réseau sur Scalingo¶
A partir de l’application sur Scalingo
Accéder aux paramètres réseau de l’application
Settings
/Domains / SSL
/Add
Ajouter l’URL de l’application
Modifier la configuration SSL dans
Settings
/Routing
Activé l’option
Force HTTPS
Modifier la variable d’environnement
ALLOWED_HOSTS
pour ajouter l’url de l’application
Architecture double : SIAP et Webapp indépendante¶
La WebApp APiLos est déployée 2 fois, 1 dépendante du SIAP et 1 indépendante, cf. Architecture APiLos
Il sera donc peut-être nécessaire d’appliquer la procédure ci-dessus 2 fois excepté pour les briques logiciel qui sont partagées:
Base de données PostgreSQL
Stockage Object S3
La variable d’environnement
ENVIRONMENT