## Haute disponibilité des bases de données relationnelles
La haute disponibilité des bases de données fait référence à la capacité d’une base de données à rester opérationnelle et accessible en permanence, même en cas de panne ou de défaillance. Le principe général consiste à déployer une base de données sur plusieurs serveurs avec des mécanismes de synchronisation et de bascules lorsqu'un serveur ne répond plus.
Les deux bases de données étudiées, PostgreSQL et MySQL/MariaDB dispose de solutions de haute disponibilité spécifique, PostgreSQL automatic failover, RepMgr et Patroni pour la première et Galera cluster, MaxScale/ProxySQL/HAProxyProxy + MRM et MySQL Master-HA pour MySQL/MariaDB.
Ces diverses solutions sont mises en perspectives avec la solution de haute disponibilité proposée par Oracle RAC.
Il ressort de l'étude que la haute disponibilité n'est plus un facteur discriminant pour le choix d'une base de données. PostgreSQL et MariaDB/MySQL proposent des solutions de haute disponibilité convaincantes.
Un Reverse proxy (serveur mandataire inverse) est un équipement
réseau positionné entre internet et un sous-réseau d'entreprise.
Il apporte sécurité, performance et simplicité de gestion de
l'infrastructure.
Dans ce domaine, les solutions Open Source sont nombreuses et
diversifiées ; l'étude présente six solutions.
- Caddy est une solution privilégiant la simplicité sans négliger les fonctionnalités.
- Traefik est particulièrement conçu pour les environnements conteneurisés, il est aussi capable de faire de l'équilibrage de charge.
- HAProxy réputé pour ses performances en plus de fonctions de reverse proxy, propose de l'équilibrage de charge et mise en cache intelligente.
- Envoy est performant et extensible porté par la Cloud Native Computing Foundation (CNCF) et donc dédié aux environnements cloud, mais sans exclusive.
- Apache HTTP Server que l'on ne présente plus, peut être paramétré en reverse proxy, mais ce n'est pas sa spécialité.
- NGinx le serveur web excelle aussi en tant que reverse proxy en raison de sa haute performance, de sa flexibilité de configuration, de sa capacité à gérer efficacement les requêtes statiques et dynamiques, ainsi que de sa robustesse en termes de tolérance aux pannes et de gestion de la charge.
Depuis quelques années, l'édition de textes, de tableaux de présentations n'est plus l'apanage d'un client lourd installé sur le poste de l'utilisateur, mais peut être appréhendée au travers du navigateur, sans qu'il soit nécessaire de stocker les documents localement. Outre le stockage centralisé des documents, l'édition en ligne ouvre la possibilité de nouveaux usages, tout particulièrement la co-édition.
L’objet de l’étude est de faire une analyse fonctionnelle, technique et financière des suites bureautiques libres en ligne Collabora Online et OnlyOffice sans oublier leur écosystème.
L’étude est menée en plusieurs temps : la méthode QSOS (Qualification et de Sélection de logiciels Open Source) est d’abord employée pour analyser la qualité de Collabora Online et OnlyOffice selon des critères objectivés. Ensuite est menée une analyse de l’écosystème économique, financier, technique et sur le plan de l’accessibilité. L'étude se conclut par une analyse fonctionnelle comparative des deux suites.
Essentiel pour préserver un système d'information, la sauvegarde est le processus consistant à copier, mettre en sécurité puis restaurer les données suite à des incidents matériels ou logiciels. La nature des fichiers sauvegardés, la fréquence, et la sécurité des sauvegardes sont déterminantes dans la stratégie de sauvegarde - sans oublier le test des sauvegardes !
Beaucoup de solutions libres existent chacune avec sa logique propre ; le contexte dictera largement le meilleur choix. Parmi les solutions les plus génériques, c'est Bareo qui ressort pour sa complétude fonctionnelle et sa maturité. Bacula équivalente fonctionnellement est cependant moins communautaire (ce qui a motivé le fork Bareo en 2010). La toute jeune solution Kopia déjà fonctionnellement très riche est à surveiller.
Pour des besoins plus spécifiques, sans administration centralisée, les plus efficaces sont Borg ou encore Restic.
L'authentification est une étape cruciale de l'accès aux services en ligne des administrations. Le renforcement de la sécurité lors de cette étape ne se fait pas sans contrainte pour l'utilisateur. L'objet de cette veille est d'étudier les dispositifs de scoring permettant d’adapter la cinématique d’authentification aux risques identifiés. Ainsi une connexion depuis un lieu géographique inhabituel entraînera l'envoi d'un mot de passe à usage unique sur le téléphone de l'utilisateur.
Compte tenu du contexte de l'administration, il n'existe pas de solution sur étagère. Cependant certaines fonctions natives de LemonLDAP::NG combinées avec d’autres outils Open Source comme IP2location et Crowdsec permettent de couvrir le besoin.
Le logiciel Crowdsec est une solution libre de détection de comportements malveillants et de blocage d’accès à différents niveaux (infrastructure, applications). L'outil s'appuie en particulier sur une base centralisée d'adresses IP alimentée par la communauté.
IP2Location est un service de la société Hexasoft Development Sdn. De nombreuses bases sont proposées dont le tarif dépend du nombre d’informations fournies : pays, région, ville, fournisseur internet, latitude, longitude, code postal, fuseau horaire, vitesse de connexion, météo, catégorie...
Lors de la conception des applications web, un outil de prototypage facilite les échanges entre les développeurs et le métier voir permet à ce dernier de définir les écrans de l'application. Idéalement le prototypage ainsi obtenu peut être converti en code exploitable par les développeurs. L’outil peut aussi permettre d'anticiper très en amont les principes d’accessibilité.
En alternative aux solutions propriétaires, Figma ou Axure, les solutions GrapesJS, craft.js, Saltcorn et Editor.js ont été étudiées.GrapesJS se détache sensiblement comme une solution extensible permet de créer ses propres layout et l'ajout de composants personnalisés le tout avec une bonne simplicité d'utilisation.
Cependant CraftJS, malgré une documentation perfectible, est à privilégier pour des applications ReactJS en permettant l'importation directe des composants ReactJS. Éventuellement en contexte ReactJS on peut aussi utiliser Saltcorn qui encapsule craft.js et ajoute des fonctionnalités pour gérer une application dans son ensemble.
Édité par la société Microsoft, MECM est un logiciel de gestion centralisé d'un parc informatique permettant l'inventaire matériel et logiciel, la gestion des mises à jour et la gestion de la conformité et de la politique de sécurité. Quatre alternatives libres sont étudiées :
-**Rudder** (société Normation) sur un modèle Open Core propose une solution très aboutie couvrant l'ensemble des attentes de l'administration. Une montée en compétence et une phase d'initialisation importante sont toutefois nécessaires.
-**Pulse XMPP** (société Siveo) offre une bonne couverture des fonctionnalités attendues. Pour améliorer les fonctionnalités d'inventaire, Pulse peut être couplet à un outil tiers (GLPI / ITSM-ng / OCS Inventory).
-**OCS Inventory** est un projet historiquement conçu au sein d'une administration et porté maintenant par la société FactorFX. Le projet est une référence en matière d'inventaire. Il peut paraître un peu limité en matière de reporting, mais il est tout à fait possible de lui adjoindre un outil comme Grafana pour des tableaux de bord à façon.
-**GLPI / ITSM-NG** : GLPI très utilisé au sein des administrations est porté par la société Teclib tandis que son fork ITSM-NG est porté par FactorFX et Worteks. Les deux projets sont proches fonctionnels et se distinguent par l'offre de support proposé par chacune des sociétés. En matière de déploiement il est nécessaire d'ajouter un agent de déploiement qui peut être celui de Fusion Inventory ou d'OCS Inventory.
Un VPN (Virtual Privacy Network) est un dispositif permettant d'établir une connexion sécurisée entre un ordinateur et un réseau distant au moyen d'un réseau public. Les VPN s'appuient principalement sur trois protocoles : SSL/TLS, IPSec et Wireguard. Parmi les sept solutions étudiées, trois sortent du lot :
**OpenVPN** est la plus ancienne et la plus éprouvée ; à ce titre une large expertise est disponible pour accompagner sa mise en place. Toutefois OpenVPN n'est pas la solution la plus performante.
**WireGuard** : est une jeune solution prometteuse, particulièrement performante au regard d'OpenVPN. Cependant sa mise en oeuvre sur un parc à l'échelle d'une administration ne sera pas facile faute d'outils d'exploitation et d'administration. L'offre TailScale comble ce vide.
**Pritunl** est probablement la solution répondant le mieux aux attentes de l'administration. Multi-protocole (OpenVPN, Wireguard et IPSec) elle dispose aussi d'une interface d'administration et de gestion intuitive. Un point de vigilance, il s'agit d'une solution encore jeune.
La sécurité des données qui circulent sur internet repose pour l'essentiel sur le chiffrement par clé publique. Cela nécessite une infrastructure à clé publique ou PKI (Public Key Infrastructure) opéré par une autorité de certification.
L'objet de l'étude est de présenter les solutions sous licence libre couvrant les fonctionnalités attendues d'une autorité de certification d'entreprise.
Aucune des trois solutions étudiées EJBCA, Dogtag Certificat System et OpenXPKI ne couvre dans sa version libre l'ensemble des fonctionnalités - en particulier l'enrôlement des postes Windows. EJBCA se distingue par sa documentation, tandis que Dogtag est le produit qui à la fois propose le plus grand nombre de fonctionnalités, et qui demande le moins d'effort de configuration.
Tous disposent d'un système de plug-ins intégrés au cœur de leurs fonctionnalités tel le workflow d'émission de certificat, ce qui permet facilement d'adapter le dispositif aux spécificités de l'entreprise . Enfin, les trois projets présentés sont tous activement maintenus, mais majoritairement par leur éditeur.
Le langage Java depuis une vingtaine d'années fait partie du trio des langages de programmation les plus utilisés. Le JDK est l'élément essentiel pour mettre en oeuvre les programmes Java, puisqu'il intègre en particulier un compilateur et une machine virtuelle pour exécuter le bytecode produit par la compilation. L'implémentation la plus populaire qui est aussi l'implémentation de référence, c'est l'OpenJDK.
L'objet de cette étude est dans un premier temps d'analyser la solidité de la communauté en charge de l'évolution et de la maintenance de l'OpenJDK. Avec l'initiative Adoptium soutenue par un grand nombre d'acteurs majeurs dans le cadre de la fondation Eclipse, la pérennité du projet est acquise.
Dans un deuxième temps, l'étude présente les évolutions techniques les plus notables de la dernière version LTS (Long Term Support), à savoir la 17 par rapport à la version 11. Autant la version 11 apparaissait comme une version de rupture au regard de la version 8 que le passage de la version 11 à 17 s'inscrit plutôt dans une continuité, avec un impact réduit sur les projets.
Les administrations utilisent le logiciel libre dans des
contextes de plus en plus variés et constatent l’intérêt
qu’elles peuvent en retirer en termes de souveraineté de
maîtrise technologique et de réduction des coûts. Il est
pourtant un domaine où le logiciel libre reste en retrait, c’est
celui du poste de l’agent. À de rares exceptions (la
gendarmerie), aucune administration n’a véritablement fait le
pas d’une migration complète vers un poste de travail Linux,
même si les logiciels libres Firefox, Thunderbird ou LibreOffice
sont très présents sur la poste de l’agent.
L'objet de cette étude est de dresser un état de l’art sur la
manière d’aborder un projet de transformation vers un poste de
travail Linux où la conduite du changement tient un rôle
primordial.
L’approche de l’étude, plutôt stratégique, n’entre donc pas dans
les détails techniques d’une telle migration même si certains
points sont développés dans les annexes. De même, si la
problématique de la distribution Linux est évoquée, elle ne
donne pas lieu ici à une étude comparative des distributions
Linux. Enfin cette étude n’est pas une solution prête à l’emploi
pour une migration vers le poste Linux. Elle décrit simplement
dans les grandes lignes une démarche validée par l’expérience
qu'il conviendra d'ajuster selon les contextes.
L'étude se compose de quatre documents :
-**État de l’art et conduite du changement** : Point d'entrée de
l'étude, il propose un rapide panorama des distributions Linux
avant de dérouler une démarche globale de migration vers le
poste Linux - Analyse du périmètre, stratégie entre migration,
remédiation et statu quo, points d’attentions, conduite du
projet, facteurs de réussite :
[EtudeSLL-Poste de Travail Linux - Etat de l'art et conduite du changement-pub.odt](https://gitlab.adullact.net/marche-sll/etudes-de-veille/-/package_files/361/download)
-**Annexe Retours d’expérience** : Elle est constituée d’un
entretien avec Nicolas Vivant qui a conduit les migrations
vers le poste Linux pour les villes de Fontaine et maintenant
d’Échirolles, puis un entretien avec Stéphane Dumond pour la
gendarmerie :
[EtudeSLL- Poste de Travail Linux - Annexes - Retour Experience-pub.odt](https://gitlab.adullact.net/marche-sll/etudes-de-veille/-/package_files/360/download)
-**Annexe Gestion de parc** : Elle décrit de manière plus technique
les moyens d’inventaires du parc informatique, préalable
incontournable à tout projet de migration, ainsi que les
outils de déploiement et gestion de parc nécessaires (OCS
Inventory et Ansible) :
[EtudeSLL- Poste de Travail Linux - Annexes - Gestion Parc-pub.odt](https://gitlab.adullact.net/marche-sll/etudes-de-veille/-/package_files/359/download)
-**Annexe Accessibilité** : Elle aborde la question de
l’accessibilité du poste Linux dans un contexte ou
l’administration se doit d’être exemplaire :
[EtudeSLL- Poste de Travail Linux - Annexes - Accessiblité-pub.odt](https://gitlab.adullact.net/marche-sll/etudes-de-veille/-/package_files/358/download)
## Web Components
Le terme de "Web Components" désigne la spécification d'un
ensemble de technologies permettant la création de composants
encapsulés et réutilisables pour les applications web.
Cinq implémentations sont étudiées : Hybrids, LitElement,
Skate.js, Slim.js et Stencil
Deux implémentations LitElement et Stencil sortent du lot par
leur polyvalence sur l'ensemble des critères. Gage de pérennité,
l'une et l'autre sont soutenues par de grands acteurs, Google
pour la première et l’entreprise Ionic pour la seconde.
LitElement, grâce aux outils mis à disposition, propose une
courbe d'apprentissage facilitée, tandis que Stencil est le seul
à proposer une solution entreprise avec un support dédié.
Toutefois, malgré ses ambitions, cette technologie peine à
s'imposer. Ainsi élaborée sous l’égide du W3C, elle n'est
toujours pas un standard. Par ailleurs, l’utilisation du code
JavaScript pour les Web Components, amène des problématiques
Log4J est une bibliothèque permettant de produire des logs (traces chronologiques) du fonctionnement d'une application Java. Ces traces sont utiles pour la mise au point des applications, pour auditer le fonctionnement d'une application et pour comprendre après coup d'éventuels dysfonctionnements.
Utiliser directement et indirectement de façon massif, la moindre faille de sécurité sur cette brique a un impact énorme sur la sécurité de l'ensemble des applications Java comme l'a montré la faille Log4Shell.
L'objet de l'étude est de faire un point sur Log4j et ses alternatives, principalement LogBack. Si cette dernière est techniquement au même niveau de maturité et fonctionnellement très proche de Log4j, sa pérennité est toutefois moins assurée, le projet étant porté essentiellement par une seul personne.
Log4j de son côté bénéficie d'une large communauté (une centaine de développeurs) organisée et protégée par la fondation Apache, gage de stabilité et pérennité et qui a montré pour la faille Log4Shell une très bonne réactivité. Log4j reste la meilleure solution de log en contexte Java.