infra

Infrastructure pour les projets de développement

Champs-Libres gère sa propre infrastructure informatique de cloud.

Cette infrastructure lui permet d'héberger les projets de ses clients. Elle a été construite pour permettre le déploiement des projets de manière fréquente, de manière à réduire le cycle développement - mise en production.

Quelques caractéristiques ;

  • l'infrastructure est basée sur docker swarm (Kubernetes en développement) ;
  • elle est répartie sur 8 serveurs virtuels ;
  • elle héberge 15 projets différents, et 20 stacks docker swarm ;
  • certains projets servent deux millions de pages par jour (comedien.be). Le temps de réponse des projets les plus consommateurs de ressources sont inférieurs à 500ms pour 75% des pages ;
  • l'infrastructure collecte en permanence des métriques sur son systèmes (openTSDB), visualisables via Grafana. Elle permet également la centralisation, le tri et le stockage des logs ;
  • le SLA sur les projets hébergés est de 99.9% ;
  • l'infrastructure logicielle est basée sur des conteneurs. Des serveurs spécifiques viennent s'ajouter à ceux-ci et proposent des services persistants: PostgreSQL en réplication, cluster RabbitMQ, …

Notre infrastructure nous permet de déployer des projets de différentes technologies. Citons notamment :

  • des projets basés sur python: Django, Flask, …
  • des projets écrits en PHP, basés sur le framework Symfony ;
  • des logiciels libres qui tantôt utilisent nos propres images compilées, tantôt ré-utilisent les images officielles, parfois patchées: Nextcloud, Matomo, LibreOffice Online, Grafana, …
  • des logiciels géographiques: MapServer, …

Serveurs cartographiques

Champs-Libres maintient des serveurs de tuiles cartographiques et de géocodage basés sur OpenStreetMap (Nominatim).

Les serveurs de tuiles absorbent une charge de service de 15 à 20k tuiles quotidiennes et disposent encore de marges de croissance.

Technologies utilisées: Docker - Docker swarm - PostgreSQL - MariaDB - RabbitMQ - Logstash - Nginx - Ansible - Grafana - Graylog - Elasticsearch - Openstack swift - NFS - Imposm - osm2pgsql - apache mod_tile - osmosis - cartoCSS - mapnik