Gestion des fichiers

Aperçu

Cette section indique quelles données persistantes sont exposées et où. Il recommande également des moyens de persister, de partager et de sauvegarder les données. Pour des stratégies et des recommandations de sauvegarde, consultez la section Continuité des activités et reprise après sinistre.

Données persistantes dans WorkflowGen

Trois éléments doivent être conservés dans WorkflowGen : le dossier App_Data, le dossier de l'application Web wfapps et les données SQL. Pour déployer une base de données, consultez la section Options d'hébergement SQL Server.

Les deux autres sont des fichiers de WorkflowGen, et la raison pour laquelle ils doivent être conservés via un partage de fichiers est expliquée dans la section Description de l'architecture principale.

Vous devez aussi disposer d'un partage de fichier contenant une licence WorkflowGen valide pour que le conteneur puisse le récupérer. Ces dossiers doivent être exposés aux conteneurs WorkflowGen via des volumes. Pour plus d'informations sur les volumes Docker, consultez l'article Volumes de Docker (disponible en anglais uniquement).

Particularité des conteneurs Windows

Les volumes sont traités différemment avec les conteneurs Windows par rapport aux conteneurs Linux. Le modèle d'autorisation change et diffère selon que vous utilisez l'isolation de processus ou l'isolation Hyper-V. Avant de poursuivre les procédures décrites dans cette section, vous devez lire l'article Vue d’ensemble du stockage de conteneurs de Microsoft.

Pour l'essentiel, vous devez vous assurer que les conteneurs WorkflowGen peuvent lire et écrire sur le volume wfgdata et lire à partir du volume de licences. L'utilisateur du conteneur qui accédera aux volumes s'appelle IIS_IUSRS.

Moyens recommandés pour persister

Chemin du système de fichiers local sur l'hôte Docker

Ceci est le moyen le plus simple de conserver les fichiers WorkflowGen avec les conteneurs. Cela consiste à créer un volume local ou à utiliser un montage de liaison sur votre hôte Docker qui conservera les fichiers après la suppression d'un conteneur. Les volumes sont le moyen préféré pour conserver les fichiers par rapport aux montages liés, car ils sont gérés par Docker. Cette méthode ne s'adapte pas bien à plusieurs hôtes Docker, cependant, d'autres méthodes doivent être considérées dans ce cas.

Volumes

Pour créer un volume pour chaque chemin de données du conteneur, exécutez la commande suivante :

"wfgdata", "licenses" | ForEach-Object { docker volume create $_ }

Ensuite, vous devez copier (ou déplacer) votre fichier de licence sur le volume de licences en exécutant la commande suivante :

Copy-Item C:\Path\To\WorkflowGen.lic $(docker volume inspect -f "{{.Mountpoint}}" licenses)

Vous pouvez maintenant exécuter le conteneur WorkflowGen avec ces volumes pour conserver les données. Voici un exemple de commande d'exécution :

docker container run `
    # ...
    --mount "type=volume,src=wfgdata,dst=C:\wfgen\data" `
    --mount "type=volume,src=licenses,dst=C:\wfgen\licenses,readonly" `
    # ...
    advantys/workflowgen:7.18.3-win-ltsc2019

Vous avez maintenant correctement conservé les fichiers de WorkflowGen.

Montages de liaisons

N'oubliez pas que vous gérez les montages liés manuellement. Ce sont des chemins spécifiques sur l'hôte Docker que vous contrôlez. Pour utiliser les montages de liaisons en tant que volumes, il vous suffit de passer les chemins lorsque vous exécutez la commande d'exécution de la manière suivante :

docker container run `
    # ...
    --mount "type=bind,src=C:\some\path\to\wfgdata,dst=C:\wfgen\data" `
    --mount "type=bind,src=C:\some\path\to\wfgen\licenses,dst=C:\wfgen\licenses,readonly" `
    # ...
    advantys/workflowgen:7.16.0-win-ltsc2019

Partage de fichiers réseau

Vous pouvez utiliser un partage de fichiers SMB avec des conteneurs Windows tels que Azure Files. Concrètement, vous connectez le partage à l'hôte Docker, puis vous le montez comme un montage lié dans des conteneurs. Cela s'appelle un montage SMB. Pour en savoir plus sur les montages SMB, consultez l'article Vue d’ensemble du stockage de conteneurs de Microsoft.

Utilisation d'un orchestrateur

Kubernetes

Dans Kubernetes, vous utiliserez un objet Persistent Volume pour spécifier un endroit où Kubernetes placera les données des pods. Pour plus d'informations sur les volumes persistants, consultez la page Persistent Volumes sur le site Web de Kubernetes (disponible en anglais uniquement).

Concrètement, pour WorkflowGen, vous devrez configurer un volume qui peut gérer l'autorisation ReadWriteMany pour le volume de données WorkflowGen car plusieurs pods en même temps accéderont à ce volume pour lire et écrire des données. En règle générale, pour ce faire, vous devrez créer une revendication de stockage sur le cluster comme suit :

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: wfgdata-pvc
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: azurefile
  resources:
    requests:
      storage: 50Gi

Dans cet exemple, la revendication fait référence à une classe de stockage (Storage Class), mais vous pouvez référencer directement un volume persistant ou d'autres services de stockage spécifiques au cloud en fonction du fournisseur de cloud. Ici, la classe de stockage azurefile est fournie par Azure Kubernetes Service. L'attribution du stockage se fera automatiquement par le service. Il créera un compte de stockage avec un partage de fichiers d'une capacité de 50 Go.

Répertoire de collecte

Si vous configurez WorkflowGen pour utiliser un répertoire de collecte pour les notifications, vous devez également spécifier un volume afin d'exposer les notifications à d'autres services qui les traiteront.

Le chemin par défaut du répertoire de collecte est C:\inetpub\mailroot\Pickup. Vous pouvez le changer en fournissant à la variable d'environnement WFGEN_APP_SETTING_ApplicationSmtpPickupDirectory un chemin quelconque à l'intérieur du conteneur. Ensuite, vous devez créer un volume pour les fichiers de la manière suivante :

docker volume create pickup

Vous pouvez maintenant mapper ce volume sur le répertoire de collecte configuré :

docker container run `
    # ...
    --env WFGEN_APP_SETTING_ApplicationSmtpDeliveryMethod=PickupDirectory `
    --env WFGEN_APP_SETTING_ApplicationSmtpPickupDirectory=C:\inetpub\mailroot\Pickup `
    --mount "type=volume,src=pickup,dst=C:\inetpub\mailroot\Pickup" `
    # ...
    advantys/workflowgen:7.18.3-win-ltsc2019

À ce stade, vous pouvez déployer un autre conteneur avec votre service pour prendre en charge les notifications et lier le même volume pour partager les fichiers de notification.

Dernière mise à jour