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 JBoss) 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. |
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. La configuration recommandée pour un usage général du serveur SAINet est la suivante:
- 2 CPUs Dual Core de 2Ghz (4 coeurs dédiés à SAINet et à la base de données)
- 8 Go de RAM (4 Go pour SAINet et 4Go pour la base de données)
- 100 Go de disque dur (dont au moins 50 Go pour la GED SAINet)
SAINet ne dépend pas du matériel. Il est donc tout à fait possible d’utiliser un serveur virtualisé et/ou dans le cloud.
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 (10/Buster ou 11/Bullseye).
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 où le serveur SAINet est directement installé sur la machine (sans utiliser de container comme Docker), il est nécessaire d’installer la technologie Java. Il est recommandé d’utiliser une version de l’OpenJDK, dépendante de la version de SAINet:
- SAINet version <= 4.9 : Java 8
- SAINet version >= 4.10 : Java 11
La version de SAINet peut être obtenue avec la commande java -jar sainet.jar --version
.
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:
Produit | Compatibilité | Mises à jour | Support | Commentaire |
---|---|---|---|---|
MariaDB | Complète | Automatiques | Officiel | Base de données de référence, recommandée pour la production. |
MySQL | Complète | Automatiques | Officiel | Pour des raisons de stabilité, il est recommandé de migrer vers MariaDB. |
H2 | Complète | Automatiques | Officiel | Base de données utilisée dans le cadre de tests. |
Oracle | Partielle | Manuelles | Sur demande | |
MSSQL | Théorique | Manuelles | Aucun | |
PostgreSQL | Théorique | Manuelles | Aucun |
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.
Les différentes niveaux de compatibilité indiquent:
- Complète: la base de données est testée systématiquement (tests automatiques et manuels) et utilisée en production.
- Partielle: la base de données est testée manuellement et utilisée en production.
- Théorique: l’API Hibernate est compatible, mais la base de données n’a pas été testée et n’est pas utilisée en production. Certaines fonctionnalités utilisant des requêtes SQL natives ne seront pas compatibles.
Il est conseillé de ne pas utiliser de base de données n’ayant pas une compatibilité complète.
Le système de mises à jour de SAINet prend en charge les modifications nécessaires à appliquer sur la structure 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 MariaDB, MySQL et H2.
L’utilisation d’une base de données sans mise à jour automatique implique de devoir manuellement effectuer les modifications de structure en adaptant les requêtes SQL pour la base de données ciblée. Cela peut s’avérer fastidieux et requiert des compétences techniques avancées.
Les types de support sont les suivants:
- Officiel: la base de données est supportée officiellement par SAINet.
- Sur demande: les livraisons sont faites manuellement et les scripts de migration sont fournis. Ceci requiert un service d’assistance spécifique auprès de SAI ERP.
- Aucun: la base de données n’est pas supportée et aucune garantie n’est offerte quant à la compatibilité entre 2 versions (même mineures) de SAINet.
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.
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.
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.
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.
Accessibilité
Afin que SAI ERP puisse fournir les services de maintenance, 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.
La mise en place des accès SSH/RDP/VPN et des configurations de sécurité associées incombe au service informatique.