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