Prérequis et recommandations

Ce chapitre liste les prérequis nécessaires et les recommandations afin de pouvoir installer le serveur SAINet (voir l’architecture).

Les utilisateurs accèderont à ce serveur uniquement au travers du client riche ou d’un navigateur Web (dans les deux cas en HTTPS). Cette installation doit donc se faire sur une machine distante (via SSH ou RDP), contrairement au client riche qui lui est installé directement sur les postes utilisateurs.

L’installation du serveur SAINet peut être faite des manières suivantes:

Type Système d’exploitation Remarques
Docker Linux En utilisant l’image SAINet, l’installation et la mise en route des composants nécessaires se fait automatiquement. C’est la manière la plus simple et rapide pour installer SAINet ainsi que pour faire les mises à jour car les composants sont indépendants du système et peuvent facilement être relocalisés.
Système Linux et Windows Chaque composant (base de données, Apache) doit être installé manuellement. Ce type d’installation implique également des opérations manuelles conséquentes lorsque les composants doivent être mis à jour.
Application Server Linux et Windows En plus de chaque composant, le serveur applicatif (GlassFish ou Payara) doit également être installé et configuré afin de pouvoir déployer SAINet. Ce mode d’installation est déconseillé car cela empêche les mises à jour automatiques et complique drastiquement la maintenance.
Info:

D’une manière générale, il est recommandé d’utiliser un système d’exploitation Linux Debian avec une installation Docker.

Matériel

Le performances nécessaires de la machine dépendent du nombre d’utilisateurs qui seront connectés à l’application. Cela dépend également des modules qui seront déployés et de la manière dont l’application est utilisée (typiquement, certains métiers nécessitent un plus gros espace de stockage de GED car ils stockent des photos, tandis que d’autres auront besoin de plus de ressources CPU/RAM pour faire de gros traitements).

Un usage général est défini par les critères suivants:

  • jusqu’à 50 utilisateurs.
  • les fichiers enregistrés dans la solution sont de l’ordre de centaines de Ko, éventuellement de quelques Mo (chacun).
  • utilisation non-intensive de la planification (le nombre d’événements créés reste de l’ordre de quelques milliers par année).
Info:

La bande passante n’est pas une contrainte car le client riche ne transfère que très peu de données.

La configuration recommandée pour un usage général de la solution est la suivante:

  • 4 CPUs Dual Core de 2Ghz (8 coeurs dédiés à SAINet et à la base de données).
  • 8 Go de RAM (4 Go pour SAINet et 4 Go pour la base de données).
  • 150 Go d’espace disque (dont au moins 100 Go pour la GED SAINet).
Info:

SAINet ne dépend pas du matériel. Il est donc tout à fait possible d’utiliser un serveur virtualisé et/ou dans le cloud.

Il est préférable de déployer le portail sur une machine différente afin d’éviter que les même ressources ne soient consommées et par conséquent que les applications s’impactent mutuellement.

La configuration recommandée pour le portail web est la suivante:

  • 2 CPUs.
  • 4 Go de RAM.
  • 10 Go d’espace disque.

Système d’exploitation

Le serveur SAINet utilisant la technologie Java (voir chapitre suivant), il peut être déployé sur n’importe quel système d’exploitation permettant l’installation de cette technologie et d’allouer les ressources CPU et RAM minimales.

Afin de disposer d’outils standardisés permettant un déploiement simple de la solution, il est recommandé d’utiliser une version récente de la distribution Linux Debian (12/Bookworm).

Note:

L’entretien du système d’exploitation (mises à jour, sécurité, …) incombe au service informatique.

Une installation Docker permet de faciliter cette maintenance car les différents composants ne dépendent pas directement du système.

Technologie

Dans le cas d’une installation directe (sans passer par Docker), il est nécessaire d’installer la technologie Java. Il est recommandé d’utiliser une version de l’Eclipse Temurin, dépendante de la version de SAINet (voir ici.

La version de SAINet peut être obtenue avec la commande java -Djdk.jar.maxSignatureFileSize=32000000 -jar sainet.jar --version.

Note:

Il est nécessaire d’installer le JDK (Java Development Kit) et non pas uniquement le JRE (Java Runtime Environment).

Base de données

Le serveur SAINet est compatible avec les bases de données suivantes:

SGBD Commentaire
MariaDB Base de données de référence, recommandée pour la production.
MySQL Pour des raisons de stabilité, il est recommandé de migrer vers MariaDB.
H2 Base de données utilisée dans le cadre de tests.
Info:

Le service informatique n’ayant généralement pas besoin d’intervenir sur la base de données, l’utilisation de MariaDB est fortement recommandée.

Le système de mises à jour de SAINet prend en charge les modifications nécessaires à appliquer sur la structure (schema) de la base de données. Les requêtes DDL ainsi générées ne sont compatibles qu’avec les bases de données mentionnées ci-dessus.

Communications

SAINet échange des données via HTTP et/ou HTTPS. Bien que SAINet puisse communiquer directement avec du HTTPS, ce dernier ne doit pas être exposé directement pour les communications externes, notamment à cause de certains problèmes relatifs au protocole TLS.

Il est recommandé d’exposer un serveur tel qu’Apache2 en frontend pour établir les communications sécurisées et que ce dernier transfère les données en interne via HTTP à SAINet. Dans une installation Docker, c’est le container traefik qui s’occuper de cette gestion ainsi que la gestion du certificat.

Attention:

Seul le port HTTPS doit être exposé à l’externe afin de communiquer avec SAINet. Pour des raisons de confidentialité, les communications non chiffrées (HTTP) sont proscrites.

Cache Redis

Lorsque la partie mobile est déployée, cette dernière utilise Redis afin de mettre les données en cache afin de pouvoir réduire les temps de réponse.

Horloge système (NTP)

Pour certaines fonctionnalités (notamment les déclarations électroniques Swissdec), il est nécessaire que l’horloge système soit synchronisée avec un temps universel au moyen de NTP. Il est recommandé d’utiliser un des serveurs suisse.

Info:

Sur Linux, la synchronisation peut se faire à l’aide de la commande sntp -s ch.pool.ntp.org.

Sauvegardes

Il est indispensable de faire des sauvegardes régulières de la base de données et de la GED, afin de pouvoir récupérer les données en cas de problème majeur. Ces dernières doivent être stockées sur un emplacement physique différent de la machine où se trouve le serveur SAINet.

Attention:

Des sauvegardes régulières doivent être assurées le service informatique !

Dans le cas d’une installation Docker, il est possible de configurer le container pour faire des sauvegardes de la base de données automatiquement, mais cela n’est pas suffisant pour une solution en production.

Accès externe

Le serveur SAINet doit pouvoir se connecter à différents services disponibles sur des URLs publiques (notamment pour les mises à jour ou bien de la géolocalisation). Il est donc nécessaire que l’environnement sur lequel le serveur est installé dispose d’un accès sur le réseau publique (Internet).

Accessibilité

Afin que SAI ERP puisse fournir les services de maintenance adéquats, il est nécessaire que le serveur soit accessible depuis le réseau publique sur le port applicatif (HTTPS/443) et que SAI ERP dispose d’identifiants SUPERADMIN au sein de SAINet. Au besoin, cet accès peut être mis en oeuvre à travers un VPN.

Note:

La mise en place des accès SSH/RDP/VPN et des configurations de sécurité associées incombe au service informatique.

Infrastructure

De manière générale, il est recommandé que le serveur SAINet et la base de données soient installés sur la même machine afin d’éviter des latences potentiellement importantes durant l’échange de données.

Il est également préférable que SAINet et la base de données soient les seules applications installées sur la machine afin d’éviter des ralentissements pouvant être causés par d’autres applications.