Skip to main content
BlogBases de donnéesDéployer un système de gestion électronique de documents basé sur l'informatique en nuage

Déployer un système de gestion électronique de documents basé sur le cloud computing

Le système de gestion électronique des documents (SGED) à haute disponibilité avec Mayan et PostgreSQL

Pour le travail quotidien, le stockage des documents se fait généralement par le biais de logiciels de productivité en ligne et de stockage en nuage. La tâche devient plus ardue lorsqu'une application doit traiter, stocker et récupérer des volumes plus importants. L'utilisation d'un système de gestion électronique de documents (SGED) est une meilleure solution, car ces systèmes sont conçus pour stocker, indexer et récupérer des documents avec des performances et une disponibilité élevées, et certains incluent des fonctionnalités telles que des métadonnées personnalisables et le contrôle des versions.

Bien qu'il existe de nombreuses solutions de GED en mode SaaS, vous pouvez déployer votre propre GED open source pour garder un contrôle total sur vos données. Dans cet article, vous apprendrez à mettre en place une GED Mayan hautement disponible, soutenue par une base de données PostgreSQL.

Avantages de la GED

Cette configuration est idéale si vous stockez et traitez un grand nombre de documents et si vous avez besoin d'une GED rattachée à une application web, ce qui élimine le besoin d'installations côté client. L'utilisation d'une GED en tant que plaque tournante centrale garantit :

  • la sécurité, la confidentialité et le contrôle total de vos données ;
  • une intégration facile avec des logiciels tiers ; et
  • l'automatisation des flux de documents pour les processus d'entreprise.

Pourquoi PostgreSQL ?

PostgreSQL est un puissant système de gestion de base de données relationnelle objet open source, très apprécié pour son évolutivité, sa sécurité et ses performances. Afin d'assurer l'évolutivité de bout en bout de votre application, votre base de données doit également être hautement disponible. C'est pourquoi cet exemple d'architecture intègre un outil de réplication spécifique à PostgreSQL.

Démarrer avec Mayan EDMS

Mayan est une GED open source basée sur le web et écrite en Python. Mayan s'installe et s'exécute par défaut (par conception) sur un seul système ; tous les composants de votre application et de votre base de données peuvent se trouver sur un seul serveur ou dans plusieurs conteneurs Docker. Bien que cela soit parfait pour les tests ou les environnements triviaux, pour un environnement de production, nous voulons une haute disponibilité et un concept largement connu et adopté connu sous le nom de principe SoC (Separation of Concern). Il s'agit d'une meilleure pratique cruciale pour la construction d'applications stratifiées et évolutives. Cette architecture de référence montre comment le faire avec Mayan.

Pour

  • L'open source signifie qu'il n'y a pas de frais de licence
  • Stocker, visualiser et inverser facilement les versions d'un document
  • Recherche en texte intégral de documents à l'aide de métadonnées personnalisables définies par l'utilisateur
  • Contrôles d'accès flexibles pour concevoir des rôles et des autorisations efficaces pour les utilisateurs
  • Flux de travail personnalisables avec déclencheurs d'événements pour maintenir les documents à jour

Cons

  • Complexe pour les petits cas d'utilisation
  • L'interface utilisateur est moins intuitive que d'autres solutions
  • Lourdeur des ressources pour les unités centrales qui utilisent la reconnaissance optique de caractères (OCR)

Architecture de référence de l'application

Pour optimiser les capacités de Mayan dans des applications réelles, notre architecture utilise :

Un NodeBalancer distribue le trafic vers nos nœuds d'application. Si un serveur d'application tombe en panne, le service d'équilibrage de la charge commencera à diriger le trafic uniquement vers le nœud sain. Dès que le nœud malade se rétablit, il recommence à équilibrer les connexions comme avant. Il est ainsi facile d'ajouter, de supprimer ou de mettre à jour des serveurs d'application sans interruption de service, tout en maintenant les connexions avec les nœuds de la base de données PostgreSQL.

Pour le "cerveau" de l'application, Mayan et NGINX sont déployés sur les mêmes machines virtuelles et nous pouvons exploiter le support de Mayan pour s3boto3 en tant que backend de stockage pour télécharger nos documents sur le site de Linode S3-compatible Object Storage.

Si votre application est critique et utilise PostgreSQL comme base de données principale, l'intégration de Bucardo offre une meilleure garantie de disponibilité et rend votre base de données tolérante aux pannes.

Vous pouvez également obtenir une haute disponibilité et une réplication avec un service de base de données géré qui prend en charge PostgreSQL, mais gardez à l'esprit que la plupart des offres DBaaS se concentrent sur la mise à jour des versions de PostgreSQL et le maintien de votre cluster de base de données en ligne et disponible. L'implémentation de Bucardo donne à votre base de données PostgreSQL une réplication bidirectionnelle entre deux ou plusieurs nœuds de base de données, garantissant ainsi la haute disponibilité de votre base de données.

Dans cet exemple, tous les nœuds sont sécurisés par des pare-feu en nuage pour se protéger de l'internet public et communiquent en interne via une adresse privée VLAN. Les serveurs d'application se connectent aux bases de données via une adresse IP flottante partagée VLAN avec keepalived pour faciliter le basculement.

Keepalived, ou un autre système de basculement IP tel que FRRouting (FRR), est mis en œuvre au niveau de la base de données de sorte qu'un nœud de base de données sain sera connecté au cluster de vos nœuds d'application.

Tolérance de panne pour les fichiers critiques

Une GED servira souvent de plaque tournante pour les opérations quotidiennes et hébergera certains des fichiers les plus critiques de votre organisation. Notre application est construite avec une redondance à tous les niveaux pour une tolérance de base aux pannes et une optimisation des performances :

  • Les documents sont stockés sur le site hautement disponible de Linode Object Storage.
  • La base de données se trouve sur un nœud distinct afin d'améliorer les performances et d'éviter un point de défaillance unique.
  • Bucardo effectue une réplication automatique de la base de données entre les nœuds Postgres.

Explorer plus de contenu technique et d'architectures

Notre équipe d'ingénierie des solutions partage des cadres, des guides et des outils comme celui-ci pour permettre aux développeurs de créer plus facilement des applications qui respectent les meilleures pratiques en matière d'architecture logicielle. Consultez notre architecture de référence du cluster Galera pour une architecture MySQL/MariaDB hautement disponible, ou parcourez nos exemples d'architecture de référence disponibles sur Linode Docs.


Commentaires (2)

  1. Author Photo

    How much those it cost to implement the mayan edms in a month and in a year.
    Your swift response is best appreciated

Laissez un commentaire

Votre adresse électronique ne sera pas publiée. Les champs obligatoires sont marqués d'un *.