publik-infra/architecture-4.md

2.4 KiB
Raw Blame History

Dépendances logicielles

Service de base-de-donnée

Chaque brique utilise une ou plusieurs bases de données PostgreSQL.

Composants logiciels sous-jacents

Publik est un logiciel développé en Python, sur le framework Django. Il est développé et testé pour fonctionner sur un système dexploitation Debian GNU/Linux en version stable (oldstable est supporté égallement).

Le frontal web recommandé est nginx, bien que Publik puisse fonctionner avec Apache et dautres serveurs HTTP. La liaison entre les applicatifs Python et le frontal web est assurée par gunicorn (évolution en cours vers uwgsi).

Les différents composants (briques) de Publik échangent des messages AMQP via RabbitMQ.

Publik nécessite PostgreSQL en version 9 (>9.4 recommandée) sur lequel chaque brique disposera de sa base de données propre.

Source des logiciels (dépôts APT)

Les différents composants logiciels utilisés par Publik proviennent, par ordre de préférence :

  • de la distribution Debian GNU/Linux stable (ou oldstable)
  • des backports officiels Debian, disposant du suivi de sécurité par léquipe Debian
  • des paquets Debian fournis et maintenus par les projets upstream
  • de paquets Debian maintenus par Entrouvert qui en assure le suivi de sécurité

Flux réseau à ouvrir

Publik est un système web : ses composants doivent être accessibles en HTTPS (443/tcp). Le S final est important : Publik nest pas prévu pour fonctionner en HTTP.

Les différentes briques de Publik communiquent entre elles également en HTTPS, elles doivent donc disposer dun accès DNS (53/udp et 53/tcp) et HTTPS.

Le système de provisonning (déploiement, configuration et diffusion des utilisateurs et des rôles) utilise AMQP (5671/tcp).

La connexion avec PostgreSQL utilise 5432/tcp.

La plupart des accès à des logiciels tiers se fait via webservice, généralement en HTTPS (443/tcp). Il peut également y avoir connexion à des annuaires LDAP (389/tcp).

La solution Publik na pas encore été validée sur IPv6.

Pour le support et la maintenance du systèmes, des accès SSH (22/tcp) sont nécessaires, voir ci-dessous.

Certificats X509

La diffusion HTTPS étant obligatoire, il est nécessaire de disposer de certificats valides pour chaque brique déployée ; chacune des briques utilisant un nom de serveur distinct. En général un certificat étoile (wildcard *.example.net) couvre toutes les briques.