Comment la CLI DoiT Cloud Intelligence ouvre la voie à une gestion cloud d'exception
Nous venons de publier la CLI DoiT Cloud Intelligence, et vous n'imaginez pas le sourire que cette annonce a fait naître chez moi. Je trahis peut-être mon âge, mais j'ai grandi à une époque où le scripting bash tenait du superpouvoir et où ceux qui maniaient grep avec brio étaient révérés comme le sont aujourd'hui les meilleurs analystes de données. Bref, je m'égare.
Je me suis immédiatement empressé de tester notre nouvelle CLI, et j'ai appris quelque chose dès les premières minutes. Nous avons utilisé restish comme socle de l'implémentation : dès lors que votre API repose sur OpenAPI (et c'est le cas chez DoiT), il prend en charge la découverte du schéma et l'authentification.
La mise en place
Pour démarrer, j'ai suivi notre documentation, installé restish via brew dans mon terminal, puis configuré l'outil pour fonctionner avec les API DoiT. Le profil par défaut permet de personnaliser les appels — je ne m'en suis pas servi au début, mais je le présente ici car certains d'entre vous pourraient y trouver leur compte.

Place maintenant à la vérification. J'ai validé ma connexion avec la commande dédiée restish dci validate, qui a déclenché le workflow OAuth (un grand merci à Browserosaurus, un excellent sélecteur de navigateur dont je ne peux plus me passer).

Une fois connecté à mon tenant DoiT Cloud Intelligence, tout était en ordre : prêt à scripter pour viser une gestion cloud d'exception.

L'objectif
Pour mon premier cas d'usage, j'ai sans détour repris ce sur quoi nos clients butaient depuis des années avant de s'associer à DoiT : la responsabilisation des coûts.
Je voulais offrir aux clients un moyen simple et fluide de :
- Inviter un nouvel utilisateur sur DoiT Cloud Intelligence ;
- Créer une Allocation reposant sur son nom d'utilisateur pour suivre les coûts qu'il génère ;
- Créer un budget qui suit cette nouvelle Allocation et envoie des notifications dès qu'un seuil défini est atteint.
Chaque nouvel utilisateur dispose ainsi de sa propre boucle de feedback sur les coûts cloud, avec un minimum de friction. C'est parti.
L'implémentation
Inviter l'utilisateur
Difficile de faire plus simple, voici la commande :
restish dci invite-user email:<user_email>

vous avez un e-mail
Créer une Allocation dédiée à l'utilisateur
Si vous découvrez la plateforme et que vous ne connaissez pas encore les Allocations, je vous recommande vivement de vous y familiariser.
En résumé : les Allocations permettent de regrouper logiquement les coûts cloud selon n'importe quelle dimension de données disponible. Dans notre cas, je veux regrouper l'ensemble des coûts cloud générés par notre nouvel utilisateur, afin qu'il puisse suivre ses dépenses sans effort.
Voici la commande :
restish dci create-allocation < allocation_conf.json
mais nous devons lui passer quelques paramètres de configuration. Je vais légèrement tricher en partant du principe qu'une clé Tag nommée member est disponible dans nos données de facturation, et que chaque valeur correspond à un cloud engineer (dans notre cas, luca+test).
Le fichier conf.json ressemble à ceci :
{
"name": "luca+test generated costs",
"description": "All costs generated by luca+test",
"rule": {
"formula": "A OR B",
"components": [\
{\
"key": "member",\
"type": "label",\
"mode": "is",\
"values": [\
"luca+test"\
]\
}\
]
}
}
L'exécution de la commande renvoie l'id de l'Allocation, qui nous servira dans un instant.

Créer un budget dédié à l'utilisateur
Le mot budget suffit à inquiéter la plupart des Engineers avec qui j'échange : c'est synonyme d'innovation bridée par des restrictions et des barrières.
Si je reconnais que cela a pu être vrai par le passé, la façon dont les budgets sont implémentés dans DoiT Cloud Intelligence crée une boucle de feedback productive entre les cloud Engineers et leurs coûts, où les mauvaises surprises se font rarissimes et où la prise de conscience devient le maître-mot.
Pour aller plus loin, consultez notre documentation, qui détaille toutes les fonctionnalités.
Dans mon cas d'usage, je vais à l'essentiel. Il me faut simplement un budget mensuel de 1000 $ pour que les nouveaux utilisateurs aient une visibilité sur leurs dépenses et soient alertés de façon proactive lorsque la dépense identifiée via l'Allocation atteint 80 % du budget.
Là encore, c'est très direct :
restish dci create-budget < budget_conf.json
et le fichier budget_conf.json ressemble à ceci :
{
"name": "luca+test - Monthly Budget",
"scope": ["<ALLOCATION_ID>"],
"amount": 1000,
"type": "recurring",
"timeInterval": "month",
"startPeriod": $(( $(date -u -v1d -v0H -v0M -v0S +%s) * 1000 )),
"currency": "USD",
"alerts": [{"percentage": 80}],
"collaborators": [\
{\
"email": "<user_email>",\
"role": "owner"\
}\
]
}
Deux points à noter :
- La valeur
startPerioddoit être exprimée en secondes depuis epoch. J'ai inclus dans le fichier de configuration la commande pour l'extraire. - Vous pouvez définir plusieurs alertes à différents seuils de pourcentage : ici, nous nous en sommes tenus à une seule.
L'exécution de la commande renvoie une réponse positive.

fini les mauvaises surprises !

L'interface web affiche les données suivies et les seuils associés.
Voilà qui clôt ma première exploration de la CLI DoiT Cloud Intelligence — mais les possibilités sont infinies. Imaginez réunir ces étapes dans un script d'onboarding !
Une excellente idée pour un prochain article, peut-être. En attendant, installez la CLI DoiT Cloud Intelligence et n'hésitez pas à nous solliciter en cas de besoin.