Notre objectif principal est que nos utilisateurs disposent d’un outil facile à prendre en main, qui leur facilite la vie, à utiliser dans leurs scripts, en complément de notre API et de la Console. En 2023, nous avons décidé de retravailler ce projet open source pour lui donner un nouveau souffle.
Voici le bilan de notre première année de travail.
v3 : les bases du renouveau
Nous partions d’un constat : cela faisait deux ans que notre CLI avait peu évolué. Nous avions certes publié quelques mises à jour et versions beta, mais rien de plus.
Pourtant, un outil comme les Clever Tools est utilisé au quotidien par nos clients, il est vital pour l’évolution de notre offre. Basé sur notre API publique, il nous permet de livrer simplement et rapidement de nouveaux services, à nos clients de les utiliser dans de nombreuses situations.
Alors que nous nous apprêtions à faire évoluer Clever Cloud en profondeur, les Clever Tools se devaient d’être le reflet de cette évolution. Profitant de la croissance des équipes, Hubert Sablonnière, en charge du “Front” et développeur principal du projet à l’époque, a lancé une initiative pour y intégrer de nouveaux contributeurs et organiser des échanges réguliers sur son avancement.
Le lancement de la version 3.0 des Clever Tools fin 2023 marquait un premier tournant. Plus qu’une simple mise à jour technique vers Node.js 18, cette version a jeté les bases d’une CLI plus performante, simple et pratique à utiliser. Son mode de distribution a été entièrement retravaillé pour nous permettre de faciliter les releases, mais aussi de ne plus avoir de canaux alpha/beta : chaque PR fait l’objet de la création de binaires de test.
Notre nouvelle stack de logs a d’abord fait son apparition dans les Clever Tools avec des fonctionnalités de recherche textuelle ou par date/durée, un meilleur formatage, etc. Cette version préparait surtout le terrain pour les évolutions que nous avions commencé à planifier pour 2024.
Une gestion simplifiée
L’année 2024 a vu l’introduction de fonctionnalités attendues pour simplifier vos opérations quotidiennes. Par de petits détails, comme la mise à jour des zones dans l’auto-complétion, le fait de ne plus avoir à fournir un nom à la création d’une application, la création de Clever Tasks, l’affichage d’informations utiles ici ou là. Mais aussi par l’introduction de nouveaux paradigmes.
Le meilleur exemple est sans doute l’introduction et la généralisation de l’option --app
aux commandes liées à des applications dans notre “Big Summer Update“. En effet, jusqu’à l’été dernier, il fallait “lier” une application Clever Cloud à un dossier local pour la piloter. Depuis la version 3.8.0 ce n’est plus nécessaire. Vous pouvez par exemple clever ssh
ou clever restart
n’importe quelle application simplement en précisant son nom ou son ID. C’est également à cette période que nous avons introduit la possibilité de lister l’ensemble des applications auxquelles un compte a accès, par organisation (clever applications list
).
Nous avons fait de même avec l’option --format/-F
, généralisée au plus de commandes possible pour disposer par défaut d’une sortie classique mais pouvoir demander un résultat au format JSON, ce qui peut être pratique dans des scripts/CI ou pour le passer à des outils tels que jq/jless. Parfois, nous avons aussi introduit des formats spécifiques comme json-stream
dans le cas des (access) logs, ou shell
pour certaines commandes liées aux variables d’environnement.
Un projet ouvert, qui s’adapte à vos besoins
Apporter une meilleure flexibilité des usages était une autre de nos préoccupations cette année. Ici, l’un des meilleurs exemples est sans doute l’intégration officielle de la commande clever curl
qui vous permet d’effectuer des requêtes vers notre API avec le contexte de l’utilisateur courant. Cela s’est accompagné d’une aide contextuelle enrichie. C’est d’ailleurs à peu près à la même époque que nous avons retravaillé la documentation des Clever Tools.
C’est aussi à travers notre CLI que nous avons introduit des fonctionnalités nous permettant de répondre aux besoins de clients comme la possibilité d’ajouter des plugins dès la création d’un add-on Elasticsearch. Avec la version 3.11 mise en ligne hier, nous avons introduit un système de feature flags qui prend la suite des anciens canaux alpha/beta. Cette manière de faire nous offre plus de souplesse dans le déploiement de nouvelles fonctionnalités, nous permettant de les tester et de les affiner en fonction de vos retours. N’hésitez d’ailleurs pas à nous faire part de vos besoins, idées, retours à travers des issues sur le projet ou même en y contribuant.
# On créé un add-on Materia KV
clever addon create kv myMateriaKV
# Puis on l'utilise instantanément avec la commande expérimentale clever kv
clever features enable kv
clever kv myMateriaKV PING
# On écrit des données, instantanément répliquée dans 3 data centers sur Paris
clever kv myMateriaKV SET myKey myValue
clever kv myMateriaKV GET myKey
Un début de refonte technique, une approche plus didactique
Les Clever Tools accompagnent notre évolution, avec l’introduction de la date d’expiration des tokens (visible via clever profile
), le support des nombreux add-ons lancés cette année : Keycloak, Materia KV, Metabase, Otoroshi with LLM, etc.
Ces derniers ont d’ailleurs été l’occasion pour nous de poursuivre l’approche didactique introduite autour de clever curl
, avec l’ajout de la notion d’instructions suivant la création d’un add-on. Notre objectif est ici d’accompagner nos clients dans l’utilisation de nouveaux services, d’outils, avec des références croissantes à des informations utiles, des renvois à notre documentation.
Mais aussi des commandes d’aide au diagnostique comme clever domain diag qui vous permet de vérifier si les DNS d’une application sont correctement configurés. Son ajout s’était accompagné de celui de la commande clever domain overview pour lister tous les domaines et chemins liés à vos différentes applications.
Cap sur la v4, une évolution continue
Nous avons passé une partie de l’été à effectuer un gros nettoyage du code sous le capot. Nous avons ainsi migré vers les Modules EcmaScript (ESM) avec l’introduction d’une étape de bundling. Tout cela nous permet de disposer d’une base de code plus moderne et plus maintenable, préparant les prochaines évolutions de l’architecture de Clever Tools.
L’année 2025 s’annonce tout aussi riche en nouveautés avec l’arrivée prochaine de la version 4.0. Elle signera le passage à Node 22, introduira un nouveau système de build auto-packagé et poursuivra le travail d’amélioration de l’expérience utilisateur. Nous y proposerons aussi très bientôt l’accès aux Network Groups avec la commande expérimentale clever ng
.
L’accent sera mis sur une meilleure ergonomie, de nouvelles fonctionnalités mais surtout une révision complète des noms et de l’organisation des commandes qui sera introduite progressivement. La génération de la documentation sera également automatisée, les releases planifiées et régulières. Tout cela sera permis par une grosse évolution de la stack technique des Clever Tools.
La période qui s’ouvre reflète notre engagement constant : vous fournir un outil fiable, performant et adapté à vos besoins. Car au-delà des fonctionnalités techniques, c’est bien la collaboration avec notre communauté qui guide l’évolution de Clever Tools. Les changements apportés depuis 2023 ne sont que le début d’une nouvelle ère pour votre CLI de déploiement.
Rendez-vous d’ici quelques semaines pour commencer à découvrir toutes les possibilités qu’offrira la version 4. Pensez à suivre notre changelog pour être tenus informés de ses évolutions.