-
Notifications
You must be signed in to change notification settings - Fork 22
Plan de reprise
- Le service Github doit être accessible
- La CI / CD doit être fonctionnelle (kontinuous + cluster en état de marche)
- Un backup de la base de données de l'application d'administration
- Les bases de données Elasticsearch et PostgreSQL doivent être accessibles, celle-ci peuvent être totalement vides
- Poste configuré avec un accès au cluster de production
- Cloner le projet code du travail numérique
- Cloner le projet cdtn-admin
Estimation du temps : ~ 5 minutes
- https://github.com/SocialGouv/legi-data
- https://github.com/SocialGouv/kali-data
- https://github.com/SocialGouv/fiches-travail-data
- https://github.com/SocialGouv/fiches-vdd
De plus, comme j'ai pu l'indiqué précédemment dans les pré-requis, il nous faut absolument un backup de la base de données, afin de ne pas perdre toute la donnée utilisateur enregistré
Estimation du temps : ~ 5 minutes
- Il faudra vérifier que le projet recherche-entreprises soit bien disponible. https://api.recherche-entreprises.fabrique.social.gouv.fr
- Et aussi, le projet serving-ml soit bien disponible. https://serving-ml.fabrique.social.gouv.fr. Celui-ci est utilisé dans notre moteur de recherche pour l'aspect sémantique.
- De manière optionnel, vérifier que matomo pour l'analytics soit bien en route. https://matomo.fabrique.social.gouv.fr
- De manière optionnel, le faire aussi pour Sentry, afin de nous remonter des soucis sur l'applicatif https://sentry.fabrique.social.gouv.fr
Estimation du temps : ~ 5 minutes
Note : Ce processus est à effectuer si les credentials d'accès aux bases de données ont été modifiés
- Accéder à la base de données PostgreSQL afin que l'application d'administration puisse avoir des services qui se connecte à celle-ci
- Faire la même procédure pour la base de données Elasticsearch qui va être utilisée par le frontend
Les credentials d'accès doivent être de nouveau sceller sur l'application : https://socialgouv.github.io/sre-tools/, et ensuite être mis à jour dans les variables d’environnement du folder kontinuous
Estimation du temps : ~ 5 minutes
La première étape est la partie déploiement qui devrait être effective grace à la CI / CD. Nous utilisons kontinuous pour cela.
Estimation du temps : ~ 20 minutes
Une fois l'outil d'administration déployé et accessible, nous pouvons lancer les commandes de restauration de la base de données :
# backup avec teleport sur la ci
teleport exec -n cdtn-prod -c cdtn-prod -- pg_dump -Fc --no-acl --no-owner -h postgres -U postgres postgres > hasura_prod_db.psql
Estimation du temps : ~ 5 minutes
Lorsque le dernier backup est effectif au sein de PostgreSQL, nous pouvons lancer la commande suivante :
kubectl create job --from=cronjob/cron-ingester cron-ingester-manual
Estimation du temps : ~ 6 minutes
Le but est de tourner l'ingester
, qui est un service qui va récupérer les dernières versions des fichiers issus des repositories Github de data.
Une fois cela effectué, il faudra se connecter à l'administration avec un compte précédemment utilisé dans les backups pour lancer une mise à jour de la preproduction, puis de la production.
Le but sous-jacent étant d'utiliser le service export-elasticsearch
, qui permet d'exporter les données depuis PostgreSQL en passant par Hasura, vers Elasticsearch.
Estimation du temps : La durée de la mise à jour de la preproduction est d'environ 1 heure, le temps est similaire pour celui de la production.
Lorsque les données sont à jours, il ne reste plus qu'à lancer le processus de CI / CD du frontend résumé dans ce wiki : https://github.com/SocialGouv/code-du-travail-numerique/wiki/D%C3%A9clencher-une-mise-en-production afin de déployer la dernière version du frontend.
Dans le cas où la CI / CD est fonctionnel, le frontend sera déployé sur les dernières données issues du backup de la base de données qui a été mis à jour avec les dernières données issues des repository Github de data.
Estimation du temps : ~ 20 minutes
Il faut se connecter sur https://code.travail.gouv.fr
Le temps total du processus : ~ 3 heures 30 minutes