Voici une liste des outils que j’utilise dans mon activité professionnelle ou associative et dont je suis pleinement satisfait. Tout est open-source. Leur installation peut donc se faire « gratuitement » si vous avez les compétences. Et on peut les utiliser en SaaS.
Mais avant de vous donner « ma » liste, il me faut parler du « pourquoi » utiliser ces outils. C’est une question de philosophie et de politique plus que de technique, parce que, c’est vrai, il faut le dire, les outils « classiques » font le job.
D’abord, il y a la propriétés des données. Pour une entreprise, il me semble important que ces dernières restent en son sein et n’aillent pas se balader chez d’autres. Pour une question de risques, mais aussi d’espionnage industriel (oui ça existe).
Ensuite il y a le fait de « partager », ne serait-ce que des remontées de bugs avec les communautés open-source.
L’inconvénient c’est qu’il y a un surcroît de travail, c’est vrai. Il faut installer ces outils, les mettre à jour, faire des backups, etc… Et on n’a pas toujours le temps de s’en occuper, et d’ailleurs, on ne sait pas toujours quels outils en valent le coup, alors, on fait comme les voisins !
- Gitlab : github est très bien pour se donner une visibilité publique. J’utilise gitlab pour les projets privés. L’avantage c’est d’avoir une plus grande intégration avec les outils du système d’information de l’entreprise. Les outils de workflow, l’intégration continue, la gestion des merge request et des issues avec le dashboard étaient utilisés par mon équipe quotidiennement et nous rendaient de vrais services.
- Mattermost : outil que j’ai découvert récemment, il remplace avantageusement slack. Les conversations vidéos en 1to1 sont possible via zoom (qui n’est pas open-source) d’entrée de jeu, mais il semble possible de configurer un WebRTC pour le remplacer (je n’ai pas encore eu le temps de le faire). Les webhook (ingoing et outgoing sont bien présent) et permettent d’avoir des alertes comme avec slack. Le gros point fort de mattermost, ce sont les Team qui sont très bien intégrées à l’outil et plus conviviales que dans slack.
- Drupal / WordPress : on ne les présentes plus. Pour les projets pro, Drupal permet de construire toutes sortes de sites d’envergure. Pour les blogs perso ou associatifs, wordpress est le meilleur.
- TICK : c’est un acronyme pour une suite d’outils de monitoring : Telegram (un démon qui récolte et envoies les données), InfluxDB (une base de donnée de série temporelles), Chronograf (un outil de visualisation de séries temporelles), Kapacitor (un outil de levée d’alertes en fonction de seuil). Cet outil permet de monitorer un ensemble de serveurs de manière fine et permet de détecter des problèmes en amont (comme par exemple, un disque dur qui se remplit, ce qui peut provoquer des erreurs très bizarres qu’on ne comprends pas de premier abord), ou des problèmes de performance. Je l’avais préféré aux outils traditionnels de monitoring comme Munin ou Nagios (ou tant d’autres) pour sa simplicité et sa capacité à mettre en graphes.
- Piwik/Matomo : le google analytics open-source, qui disposes des fonctionnalités de base pour analyser le trafic mais aussi d’outils plus avancés comme les funnels et bien d’autres dans ses plugins.
- Docker : alors que vagrant est très bon pour monter des machines virtuelles, docker est tout de même plus puissant avec ses images et conteneurs, la possibilité de versionner facilement ses environnements. Il est aussi moins gourmand et on peut donc l’utiliser pour déployer simplement des environnement de dev « iso » d’un serveur à l’autre.
- Ansible : bien que n’ayant encore que peu d’expérience avec Ansible, je le rajoute à ma boite à outil pour gérer les déploiements de manière industrialisée (les classiques : site de dev, préprod, prod notamment).
- Loomio : outil de prise de décision collective, qui permet de voter sur des sujets et qui est utilisé par certains mouvements politiques. J’y vois deux gros intérêts. D’abord le vote de base dispose de quatre boutons « favorable, abstention,défavorable,contre ». Je trouve ça très malin d’avoir introduit la nuance entre défavorable/contre. D’autre part il y a aussi un outil de prise de RDV un peu comme Doodle.
- KeepassX : indispensable pour gérer ses mots de passe perso ou pro sans avoir à faire tourner 2 ou 3 mot de passes qu’on a mémorisé. De plus, couplé avec Nextcloud, il permet de partager un fichier de mot de passes admin et évite les trous de sécurités classique des mots de passes qui transitent par des canaux moins sécurisés.
- Behat : j’exagère à peine en disant que Behat m’a sauvé la vie. C’est un outil de test de sites web automatisé (par script ecrits en « langage naturel » ou presque). Je l’ai utilisé principalement pour des sites Drupal et je n’ai pas creusé pour savoir s’il existe en version nodejs ou pour WordPress. Mais, un outil de test sémantique me semble indispensable pour mener à bien un projet web sur le long terme et avoir confiance dans son produit. De plus, Behat permet d’avoir des specs « utiles » et à jour puisqu’elles servent à lancer les tests. Behat s’insère très bien dans le workflow d’intégration continue de gitlab.
- Nextcloud : il arrive en dernier mais c’est un poids lourd. Au départ, je ne l’ai installé qu’en tant que remplaçant de Dropbox. Mais il est tellement riche de fonctionnalités qu’on peut lui trouver bien plus d’utilités. Par exemple, la première extension que j’ai rajoutée est « Collabora », une version de google-docs issue de Libre-office.
- Pencil : pour créer les wireframes, les mockups, les maquettes de votre site avant de faire appel à un graphiste.
- Pour les performances et la scalabilité : xdebug, locust.io, xhprof, xhgui
- backstopjs : pour les tests de régression visuel