
Dev'Obs #18 / driftctl
Durée: 61m45s
Date de sortie: 16/03/2021
Comment gérer le "drift" d'infrastructure ?
C'est d'abord une culture. Quand on est en DevOps, on prend tout le monde.
DevOps et agile font effectivement partie de la même famille.
Sa virtualisation applicative, c'est très bien.
Aujourd'hui, ça nous prend 10 minutes et un café.
Ce n'est ni être dev, ni être DevOps. C'est avant toute la communication.
Ce mouvement DevOps, c'est tout simplement drivé par la communauté
et endorsé par les entreprises.
J'ai adopté une démarche DevOps.
Le développement agile, on a accéléré des poignements.
Ça amène une clarté sur le travail de...
Être dans une démarche d'amélioration contiereux face à des...
Ça, oui, naturellement ensemble. Ça donne des résultats contrêts.
L'objectif individuel, ça s'atteint. Alors qu'une ambition, ça se partage.
Bonjour à tous et à toutes et bienvenue dans un nouveau numéro de DevOps.
Alors aujourd'hui, on va parler d'un outil d'infrastructure.
Et donc pour ça, je suis accompagné de Stéphane.
Bonjour.
Alors Stéphane, je te laisse te présenter un peu plus.
C'est pour ceux qui ne connaissent pas tout ton parcours.
Bien.
Donc je suis Stéphane.
Ça fait 20 ans que je bosse dans l'infra.
Globalement, j'ai commencé à l'époque où on l'ait raqué.
Voilà. Et qu'on avait des serveurs sur place.
C'était royal d'avoir un Data Center.
J'ai pu voir le cloud et Chlor et Docker prendre force.
Il y a quelques années, c'était intéressant comme période à vivre de 2000 aujourd'hui.
Qu'est-ce que je peux raconter ?
J'ai été freelance pendant une dizaine d'années.
J'ai passé pas mal de temps au Canada.
J'ai écrit un bouquin sur l'automatisation d'infrastructure chez Pact.
Donc si tu veux tout savoir sur Chef, ChefPuppet, Encebal, Terraform, etc.
Il y a 300 pages qui commençaient de vieux le bouquin.
Donc ce n'est pas forcément ta première source d'information.
C'est toi qui nous écoute.
Plus récemment, en revenant à Paris, j'ai créé Cloudskiff.
C'est une startup dans le but de répondre à un certain nombre de problèmes rencontrés par nos clients de l'époque.
Et ceux que j'ai rencontrés, probablement, qu'on va parler de ça également aujourd'hui.
Exactement.
Tout le monde le connaît maintenant, donc je n'ai pas allé plus loin.
Mais justement, on va parler d'un outil que tu as sorti qui s'appelle DriftCTL.
D'ailleurs, comment tu vas le prononcer ?
Parce que je sais que dans le monde Kubernetes, comment on prononce CubeCTL ?
C'est ça.
En français, on dit plutôt, j'ai l'impression, DriftCTL.
Les gens ont l'air de dire DriftCTL, comme on dit CubeCTL.
Mais en anglais, les gens plutôt l'air de dire DriftControl.
Donc je ne sais pas, des fois ça glisse sur le catalogue.
Donc DriftCatalogue, voilà.
Donc l'avantage c'est...
Le même problème que avec CubeCTL.
On a cherché la merde aussi en l'appelant comme ça.
Aujourd'hui, nous allons parler de DriftCTL.
Si jamais tu dois présenter DriftCTL en quelques mots, ça va être quoi ?
C'est clairement un outil aujourd'hui, Commonline Open Source,
à intégrer dans ta CIA pour avoir des alertes quand les choses sur ton infrastructure cloud
dérivent de ton intention que tu aurais pu définir dans ton terraform.
Aujourd'hui, on ne supporte que terraform.
Donc tu définis des choses dans terraform.
La réalité est faite que souvent elles sont modifiées,
quelle que soit la raison pour laquelle ça allait, et tu dois le savoir.
Et ce à quoi on répond, c'est que ces modifications sont souvent en dehors de terraform
ou dans terraform, mais malheureusement, terraform ne voit pas tout
pour des bannées de mauvaises raisons.
Et donc nous, on est là pour apporter une réponse à ça.
Et alors justement, parce que ça reste un podcast assez technique là,
si jamais tu dois rentrer dans les détails justement du pourquoi.
Parce que à l'heure actuelle, beaucoup de gens utilisent terraform
pour bonnes, une mauvaise raison, certains connaissent mon opinion sur terraform.
Donc voilà.
Mais en effet, si tu devais exposer le problème,
donc là tu as dit que terraform ne voyait pas tout,
techniquement parlant, quand on va dans le détail,
c'est quoi vraiment le problème qui t'a fait que tu as dû créer cet outil-là
plutôt qu'utiliser les outils proposés par terraform ?
Alors il va y avoir des bugs.
Bon ça, c'est pas très faire plaid d'attaquer uniquement sur les bugs.
Tu fais pas un produit parce qu'il y en a pas de temps que ça sur cette partie-là.
Mais on a eu par exemple des cas de settings, par exemple sur S3,
quand ils sont cochés, en fait,
son haut terraform de refresh vont être écrit dans le state.
Il y a des bonnes raisons côté API pour ça parce qu'Amazon renvoie,
AWS renvoie en fait une structure qui n'était pas initialisée par défaut
et donc terraformes l'écrit.
Le problème, c'est que ça pour moi c'est une dérive.
Typiquement, activer le versioning des objets sur un bucket S3,
pour moi c'est pas un odin, que ce soit d'un point de vue billing
ou d'un point de vue stratégie, que tu as dans ta center brûle ou non.
Donc le fait que ça ne soit pas visible par terraformes est en soucis.
Mais ça c'est un cas un peu isolé, c'est pas le cas le plus faire plaid.
Et ça ça va être dû si on prend ce point-là pour un problème d'API côté Amazon.
C'est-à-dire ou c'est vraiment l'implémentation qu'on a à côté terraformes ?
Moi j'ai l'impression, de ce qu'on a vu au niveau code c'est que c'est un statut
qui n'a pas de default apparemment, c'est-à-dire que le default n'est pas réversible.
C'est-à-dire que tu peux l'avoir en disabled ou en enable mais par défaut il n'y a rien.
Donc comme par défaut tu l'as mis en rien,
à côté Amazon si toi tu vas cliquer dans l'interface,
là il devient enabled mais ça n'a rien à voir avec le default qui a pu être mis
dans le state terraformes.
Terraformes n'est pas vraiment incriminé mais c'est clairement,
si moi j'avais eu à gérer ça, je l'aurais géré différemment,
je me fout de savoir qu'il y a un default, par défaut c'est disabled,
laissons-le à disabled.
Si ça passe à default, si ça passe à trop, on doit le notifier.
Donc c'est un problème vraiment de coordination entre l'état dans les PIs Amazon
et l'état dans le state terraformes.
Très clairement, oui.
D'ailleurs, est-ce que tu peux d'ailleurs d'aller dans les détails,
parce que je pense que tout le monde ne connaît pas exactement comment marche terraformes.
C'est un peu un outil magique, je fais 3HCL et j'ai l'impression d'avoir spawné toute mon infrastructure.
Ouais, t'as l'argent pour.
Revenons vraiment sur le problème.
Les fondamentaux de terraformes parce que vraiment,
je connais beaucoup de gens même qui l'utilisent depuis longtemps et qui n'ont pas forcément la vision exacte
de comment ça marche, under the hood, comment ça fait.
C'est ça.
Pour ceux qui n'ont pu connaître des choses plus vieilles,
quand tu vas scripter par exemple en chef une interaction avec une API,
tu as un vrai langage, tu as du rubis, tu as autre chose,
ou du boteau en piton, etc.
Donc ça fait des requêtes d'API et il n'y a pas forcément d'état qui est stocké,
c'est-à-dire que tu fais une requête qui dit je veux un nouveau bucket
et tu gères la vie de ton infra comme ça.
Et sachant que les ressources doivent être immutables,
enfin, ils doivent être surtout idempotentes,
c'est-à-dire que tout le temps la même ressource,
si jamais on fait trois fois un create, il ne doit pas créer trois fois un bucket.
Il doit comprendre que, ah bah non, il y a déjà quelque chose,
donc je ne fais rien, etc.
C'est ça.
C'est une petite ressource à sa propre idempotence interne
et ça, ça doit gérer dans le code.
C'est ça.
Ça fait du chef, c'est extrêmement dur de faire des ressources vraiment idempotentes.
C'est un enfer.
C'est, voilà, de tout le temps dans la communauté,
on trouvait des ressources qui n'étaient pas tout le temps ça
et donc ça pouvait partir en vrille assez facilement.
C'est ça.
Et ce qui a amené Terraform, donc il y a, on va dire, il y a à peu près 5 ans,
c'est donc cette notion de state.
Donc, tu as un langage, c'est-à-dire, si vache, pour plus simple.
Donc, c'est du HCL, comme tu as dit, le Hitchicorp Configuration Language.
Et, on peut s'en prouver, je crois que c'est ça.
Et donc, là, tu as cette notion d'état.
C'est-à-dire que, donc tu as l'intention,
tu vas écrire en fait ton petit blog disant, je veux un bucket avec ses paramètres.
Terraform, la commande L à coup de provider,
donc les providers, c'est des plugins en gros,
va se charger, déchanger avec la pays d'Amazon
pour exécuter ton action.
Et en cas de retour avec succès,
va écrire donc dans une sorte de Megadison, le state,
c'est l'état après ton intention.
Donc, tu as ton code qui est l'intention.
Terraform, qui est en gros le moment où ça applique,
ça parle à la pays, ça exécute.
Et le state qui est censé être la réalité côté Amazon.
Je sais pas si ça te voit comme explication.
Non, mais si, puis de toute façon, il reviendra justement dans les problèmes.
Donc là, on a ce fonctionnement-là,
moi que j'explique souvent à trois états en fait,
même si on appelle ça un state,
il y en a un seul quels sites, il y a ce qu'est le code, le state et la réalité.
Et encore, il y a même la réalité qui est différente de l'API
qui doit normalement représenter la réalité.
Donc en fait, il y a quatre états en vrai,
mais bon, on va simplifier à trois états.
Donc toi, dans la création de Drift Control,
tu as parlé d'un des problèmes déjà,
qui était des fois des petits boys qu'on va trouver dans Terraform.
Il va y avoir quoi d'autre qui a mené à la réflexion
de devoir créer cette souci ?
Alors il y a eu donc une double réalité.
Pendant mes années de freelance,
je me suis rendu, enfin, j'avais forcément des clients.
Donc les clients, tu dois leur donner des credentials.
Quoi qu'il se passe, c'est pas vrai qu'un client va se dire,
« Tiens, super, je vais rester dépendant de mon freelance. »
Donc ça ne fonctionne pas.
Et le client qui a des credentials,
pas de temps à vouloir lui-même faire des choses,
et donc, temps à les faire évidemment en dehors de Terraform,
parce que lui, ce n'est pas son boulot,
et donc, étant très souvent en fait à faire de la merde,
qui va impacter ce que toi t'avais fait.
Donc pour pouvoir le savoir,
même si tu as un super workflow en place,
même si tu as tout ce que tu veux dans GitHub Action,
dans Jenkins, n'importe quoi, un GitLab CI,
et avec tout en place, tu peux ne pas le voir.
C'est là qu'on arrive à la deuxième raison,
qui est qu'il y a un certain nombre de choses
qui m'ont cuit à pas mal de reprises,
et ainsi qu'à d'autres gens,
on parlera tout à l'heure de la création de la boîte,
des gens qu'on a rencontrés.
Donc il y a toutes les notions d'attachement,
par exemple sur AWS,
ne peuvent pas être vues par Terraform,
comme étant un changement,
puisque en fait, ce n'est plus nos son périmètres.
Donc je m'explique en un mot,
tu crées un IAM,
dessus, tu lui mets un rôle hyper limité,
et tu es content.
Demain, ton client, ton collègue,
le mec à la prod la nuit,
qui a eu un problème, je ne sais quoi,
en fait, Col a fait un nouvel attachement de ta polysine,
qui là donne beaucoup plus de droits,
alors ça ne peut pas aller jusqu'à admis,
mais bon, même simplement plus de droits,
juste dans la S3 Global,
ils ne leur donnent que ça.
Et bien alors là, ça, en fait, Terraform ne le verra jamais,
car pour lui, c'est un nouvel objet,
c'est un objet qui ne dépend pas de l'objet IAM,
c'est quelque chose qui a été attaché sur IAM,
c'est en dehors de lui, et lui, ne le rapportera jamais.
Donc c'est pour ça que le plan, le Terraform plan,
ne peut pas fonctionner en ces cas-là.
Enfin, le Terraform plan ne va rien voir,
et trouvera que il n'y a pas de modifications
que l'on a été appliquées.
C'est ça.
Donc comme une révocation de clés IAM,
par exemple, une nouvelle clé IAM,
tu es super content,
les gars de ton équipe, en fait,
ils ont tous la clé gérée dans Terraform,
tu peux, s'il y en a un qui se barre,
tu peux les révoquer, etc.
Mais tu vas te retrouver à révoquer des choses
qui ont déjà été révoquées depuis des années,
et avoir en vrai décrédé un chose qui circule
dans toute la boîte, qui ont été créées à la main,
et Terraform ne le verra pas, car c'est des nouvelles ressources.
Ce n'est pas une ressource existante, alors que toi,
tu pourrais t'attendre, si tu n'es pas les creusés un peu,
tu pourrais t'attendre à ce que Terraform,
moi, je m'attendais naïvement à ce que Terraform me rapporte
qu'une clé avait été créée, et que c'est celle-là
qui était utilisée maintenant, et alors, c'était pas le cas.
Donc, ça ramène à des problèmes de type,
non-visibilité, qui dit non-visibilité,
dit problème de sécurité,
dans le cas où c'est, typiquement,
une police admine,
ou je ne sais quoi, qui a été mise sur quelqu'un,
qui ne devait pas,
sur un microservice, qui se met à avoir un accès
sur tous les trois.
Donc, imagine, en fait,
les particuliers ou des clés,
qui ne sont pas sous contrôle,
circulent avec des droits plus larges
que ce qu'ils t'imaginaient.
Ça s'appelle, en fait, un énorme problème de sécurité.
Donc, là, dans ce cadre-là,
la réflexion qui s'est faite,
c'est que tu as fait, c'est donc
de se dire, on pourrait essayer de créer quelque chose
pour essayer de gérer, donc,
ce drift, cette drift
de ton infrastructure.
Est-ce que tu as vu d'autres cas
possibles qui vont exister
maintenant, ou c'était, surtout,
voilà, pour des raisons de sécurité,
d'interventions manuelles, ou de choses comme ça ?
Alors, on a vu, oui, il y avait essentiellement,
essentiellement, donc, des actions manuelles
et des...
On va dire, des changements,
parce qu'il y avait du debug, etc.
Tu t'es logué, tu as détaillé voir quelque chose.
On a eu des cas
bête et méchant, en fait,
de passage d'environnement
à un autre, donc tu passes par exemple
de pré-prod à prod, et
ça marchait nickel en pré-prod,
et ça marche plus en prod, pourquoi ?
Et en fait, il y a des changements manuelles,
qui, même si tu les as réveillés,
tu as annulé ton changement manuel,
donc, je pense à créer une RDS
pour tester quelque chose, je pense à...
Voilà, n'importe quoi que tu aurais pu faire
dans l'interface, et qui a créé
l'interface d'Amazon, t'as créé des sous-ressources
qui elles n'ont pas été rollbacks.
Donc, tu vas avoir des...
tu vas avoir des...
typiquement des subnet, qui vont avoir
des sécurité groupes, qui vont avoir
des autorisations IPv6 sur des subnet, qui ne sont pas sensibles
d'exister, ce genre de choses.
Et si par malheur,
sur ta pré-prod, par exemple, tu as un service
qui, nous voyons, qui n'arrive pas à faire
quelque chose en V4, tente en V6, en V6,
oh bah super, j'ai un subnet, et j'ai
des... et j'ai la route qui m'autorise tout,
en fait, c'est parti, et ça en fait
bah t'es rafond, bah jamais te le remonter.
Donc en fait tout ça, c'est un peu la notion...
c'est assez marrant, parce que,
j'avais... j'ai écrit un article, il y a pas mal
de temps de ça sur la notion du snowflake,
justement, de se dire, il faut aller
vers une infrastructure immutable, vers des choses
comme ça, mais souvent, en tout cas
dans tous les exemples que j'ai montrés, c'est des exemples
au sein de la machine, c'est-à-dire une machine
elle va drifter au fur et à mesure,
parce qu'on va installer des fichiers,
on va installer des paquets et que
installer un paquet et supprimer un paquet, ça fait pas exactement
pareil que de ne pas l'avoir installé.
Là, c'est assez marrant, on sait que tu montres bien
qu'il y a même un drift des...
des infrastructures, en fait, dans une
infrastructure cloud. Alors en fait, une drift
des API, une drift des objets créés
des PI, en fait, quelque chose...
C'est ça.
...invisible, quelque chose qui est en fait invisible
à l'heure actuelle.
Non, et dans le...
Dans l'idéal, en vrai, si l'équivalent
en fait de ce que tu décris, ça serait
en fait de droper le compte Amazon
pour repartir d'un compte vide,
or en fait, des comptes vides
c'est assez compliqué à...
à toutes les limites qu'il faut lever pour la
progrès, etc. Bon, ça se fait pas comme ça, puis de toute
façon, la Paix d'Amazon ne permet pas
de destroy des comptes Amazon
comme ça, il y a 3 mois de délais, enfin bon, ça
ça peut pas, mais c'est pas fait pour, quoi.
Donc... Donc il faut gérer, donc il faut gérer ça.
Donc là, en fait, ce que tu...
ce qu'il faut donc faire,
là, si je comprends bien, on a quand même une API
qui nous montre tout. Donc là, en fait,
naïvement, ce que je me dirais,
bah c'est qu'il faut que je récupère tous les objets
qui sont dans mon compte
et que je les importe dans terraformes.
Alors tu veux pas forcément les importer.
Là, c'est là, en vrai que...
Voilà l'idée, voilà l'idée que je pourrais
avoir en fait. Si jamais je prends tous mes objets
et que je les importe, genre j'ai un script
qui prend tous mes objets et je les importe dans mon state.
Alors tu peux, alors tu peux effectivement
faire... Il y a un outil qui s'appelle Terraformer
qui est écrit par les... les mecs
de Waze maintenant Google Cloud
GCP à Tel Aviv et...
Donc ils ont fait un outil qui scanne ton
compte Amazon et qui t'écrit
du terraforme et te l'intègre
dans ton state. Donc...
est-ce que c'est vraiment ça que tu veux, c'est-à-dire
que... Maintenant qu'il y a quelque chose qui a été fait en dehors
des règles, en dehors de github, en dehors de tout ce
que tu veux, est-ce que tu as envie de l'écrire dans le barbre ?
Je sais pas, ça peut être ce que tu veux
parce qu'effectivement du moment où ça a été vu
bah peut-être que tu veux pouvoir par exemple
dire que tu ne le veux pas, c'est-à-dire que tu peux maintenant le ressortir.
Vu que c'est sous Terraforme, bah non, tu vas pouvoir
le distroiller. Mais enfin bon, c'est peut-être
te créer un nouveau, t'avais un problème maintenant, t'en as deux.
Donc...
J'entends bien, c'est vraiment ça.
Deuxième... Deuxième notion,
là je me fais un peu l'avocat du dia parce que
j'ai essayé de trouver, dans Kubernetes
c'est un problème qu'il y a, c'est que par exemple
si tu upply un deployment
et qu'après tu en upply, tu l'as changé
tu le plies une deuxième fois, potentiellement t'en as deux
ceci t'as changé son nom par exemple.
Alors actuellement, on a
créé, il y a une option de purge
qui dit, si jamais j'upply
quelque chose dans un in space
et que...
j'apply, et qu'il reste des choses,
des choses que je n'ai pas apply, bah je détruit tout
ce que je n'ai pas apply. Et je fais un
énorme dealit de n'importe quoi
que j'ai pu ne pas mettre. Est-ce que ça c'est
une solution probable
possible ? Est-ce que ça aurait pu être ça
par exemple la solution dans un cas
comme ça ? Alors bah côté
Terraform ne fonctionne pas comme ça, c'est-à-dire
que si il avance vraiment, il fait
son arbre de dépendance etc. et
si tout va bien jusque-là
donc il va faire du premier setup
il va les écrire et mais si
il y a une erreur d'aide de Terraform
sur cette route là, il ne reviendra pas en arrière.
Donc ce qui est créé
c'est pas que ça crée un drift, c'est
que tu crées un état intermédiaire
peut-être pas
tu peux peut-être pas facilement
remonter à partir de là
et si
toi en tant que
dévops
en fait qui va régler le problème là, bah
peut-être que tu es une star et que tu vas
aller manipuler avec les API, les machins, opérer
ton state à chaud etc.
Si tu n'es pas une star, bah tu vas aller
sur ton compte Amazon et tu vas essayer de régler
le problème. Si manquer
une réglée quelque part à sécurité group'
droit ici, bah tu vas essayer de le fixer
et là ça y est, tu viens d'intégrer un problème
dans la chaîne, tu viens de mettre un truc
manuel et si tu étais dans ton premier
environnement, bah ça va finir pas fonctionner
bravo mais t'as rien réglé à la source
donc tu vas à nouveau avoir le problème
peut-être à l'étape d'après
donc c'est là qu'un outil comme
drift-ctl
va te remonter, attention, là il y a
Kevin qui vient de changer
ce truc là et donc
toi tu vas le voir, mais à son moment quand
tu vas le voir, tu vas dire ah mais
pourquoi Kevin, as-tu changé la police
ici à tel endroit etc.
ou sur des...
Non c'est sympa
c'est quelque chose que je dis souvent
des fois on développe des fois ailleurs
en disant on ne automatise pas quelque chose
qui ne marche pas et c'est souvent
le problème que j'ai vu c'est qu'on part
directement avec le code Terraform, on se lance
guillément et en fait on s'aperçoit
à la fin qu'on n'était pas capable de le faire
en Terraform ou c'était pas comme ça, on a perdu
énormément de temps à faire du hl, enlever du hl,
refaire du hl, changer du hl
sans même savoir
s'il y a eu un drift, c'est même pas la réflexion
qu'on a eu, mais surtout on ne sait même pas
si ce qu'on a fait marche, donc en fait
moi c'est assez marrant, c'est que je prône très souvent
le fait de le faire à la main
mais après, qu'est-ce que j'ai vraiment fait à la main
est-ce qu'on était deux à débugger en même temps
et est-ce qu'on a fait un endroit, qu'est-ce qu'il a
vraiment résolu le problème et que maintenant
je peux intégrer dans mon automatisation
ça, j'ai pas vraiment la réponse
j'espère que c'est ce que j'ai fait
j'espère que c'est les actions que j'ai fait en clique
dans l'interface, mais est-ce que quand j'ai cliqué
un endroit, en fait ça m'a pas créé une sous ressort
dont il était dépendant sans vraiment le dire
voilà parce que l'interface web en fait c'est un client de l'épia
et des fois elle fait des petites choses
qu'on savait pas
pour Terraform le fait aussi, là pour toucher pas mal
aux clients Terraform Azure
il y a deux-trois trucs qui y fait sans trop te le dire
et en fait ils touchent à plusieurs ressources Azure
derrière un peu en secret
mais oui, et c'est assez bien
c'est que là, tu réponds à ce problème-là
qu'on peut faire les deux
on fait à la main et on sait gérer
on ne sera jamais à la main
on fait à la main et on sait le gérer
c'est ça, et avec en background
qu'on a eu pas mal d'expérience
en tout cas c'est mon cas par exemple
où j'ai nettement plus d'expérience
en AWS que par exemple en Azure
tu parles d'Azure
je suis vraiment nul en Azure
je suis capable de savoir à peu près avec l'expérience
maintenant qu'effectivement pour arriver
à faire l'équivalent de quand tu cliques
sur le bouton dans la console
en vrai c'est tel est tel est tel est le ressource
qui se combine et il faut une gate with life
il faut tout ça, tout ça tu le vois
mais je suis incapable
de décrire l'équivalent en connaissance
fine sur un autre cas
donc quel problème des compétences de chacun
et la même en fait
si tu me demandes de faire du dutch et telecom
en fait avec leur implementation
d'openstack ou je ne sais quoi
on va se retrouver que les mêmes genres de problématiques
de profondeur de connaissance
et puis bien sûr que je vais t'attonner
bien sûr que j'ai t'attonné en fait et que je vais tester
comment ça se passe si je clique ici
ah oui c'est comme ça que ça marche, je vais t'activer
IPv6 et voilà et donc les problèmes c'est
pas tu te retombes sur le même problème que le gars qui a fait
ces modifications manuelles
délibérément
toi t'as voulu tester mais t'as laissé des trucs
tu ne savais pas que tu l'as laissé
et tu retombes sans problème de visibilité
donc c'est là qu'à nouveau que Drift CTL
va te remonter alors aujourd'hui on ne supporte pas Azure
on supporte Code AWS mais dans le cadre
d'AWS va te remonter
en fait tout changement
toute modification tout ce qui est
en dehors de ton state terraform
de ton ou de tes states d'ailleurs
puisque c'est une bonne pratique
courante que d'avoir une multiplicité
de states pour séparer un peu les conserves
donc ça permet de voir
en fait qu'est ce qui est en dehors de chacun
de chacun de ces
des états voulu
quel qu'on soit le raison
donc là justement un peu plus dans la technique
comment vous avez
comment t'as traité
le problème
tu fais un différentiel donc en gros
si jamais tu devais décrire le comportement
de Drift CTL
qu'est ce qui fait quand tu le lances
qu'elles sont un peu les étapes pour pouvoir arriver
à sa
on va récupérer d'abord
le ou les states
qui soit sur
où qui soit
sur S3, local etc
et on va
on va créer
une structure de quoi comparer
et ensuite on va
faire passer nos requêtes à la pays d'Amazon
via, à ce stade on réutilise
les provider terraform
ça va changer dans une prochaine version
parce que ça nous limite énormément
puisqu'on est obligé de passer sur la manière dont
la terraform
interagir avec Amazon
donc ça on va le modifier
on va le modifier et puis on va le faire
là
et à ce moment là on fait les requêtes
à la pays d'Amazon
qui elles nous renvoient des données
qu'on est capable à ce moment là de restructurer
et de comparer et d'ignorer
tout le bruit parce que tout le long jeu
dans Drift CTL c'est
non seulement de voir tout ce qu'il n'y a pas
dans le state mais également
d'ignorer tout ce qui du bruit
si l'utilisateur le lance et voit
tous les settings par défaut qu'il n'a pas
cété dans Terraform
il n'a rien gagné, ils sont fous
de voir les settings par défaut qu'il n'a pas cété
c'est pour ça qu'il n'a pas cété
par contre si ces settings ont changé manuellement
eux doivent être... donc là
c'est ça qu'on apporte
c'est cette connaissance assez fine
d'un côté de Terraform
et du state et de l'autre
des appellés Amazon
et comment tu arrives à connaître
les ressources qui ont été créées
et qui ne sont pas dans le state
toutes celles qui existent dans Amazon
et que tu ne connais pas
là c'est du listing
et puis c'est de la comparaison
c'est ce qu'il fait en fait
il va demander des listings
côté Amazon
et donc si tu réutilises à l'heure actuelle
les providers
grâce au provider de lister les ressources
à l'heure actuelle il y a cette notion de listing
qui existe dans les providers Terraform
en partie
mais pas de manière...
on ne pourrait pas sortir
complètement de l'univers Terraform
tout l'intérêt de Drift Cetel c'est de sortir
de l'univers Terraform c'est de dire je veux vraiment savoir
ce qui n'est pas dans le state
donc si jamais il y avait quelque chose qui ne marche pas
à cause de Terraform je veux le savoir c'est le principe
c'est pour ça que je veux l'exemple
en gros tu es obligé des fois à faire Drift Control
c'est pas juste un manipulateur de Terraform
il fait vraiment... il va appeler directement
l'Epi, la AWS
la AWS
donc là tu dis que vous supportez AWS
que AWS par exemple ?
on a AWS et GitHub
parce qu'on a dû faire...
donc encore une fois l'outil il était réalisé la première version
en décembre donc c'est un outil assez récent
on a pris quelques short cuts
pour arriver à prouver quand même que c'est un outil utile
pour les gens
on avait nos opinions
on avait les intervues utilisateurs qu'on avait fait jusqu'à présent
mais ça ne voulait pas nécessairement dire que ça allait prendre
donc on a pris quelques short cuts
et ces short cuts maintenant
faut les payer
donc les short cuts c'était en gros tout mettre par défaut sur Amazon
on ne se pose pas la question
donc on a pris un petit provider qui est GitHub
il n'y a pas beaucoup de ressources, il y en a une 10, une 15
plus près de la 10 je pense
et qui nous a permis en fait de désincarcerer
ce qui était complètement collé à Amazon
donc là aujourd'hui on a ces deux là
le prochain
vous pouvez aller... à supporter
on l'a pas encore décidé, est-ce que c'est GCP
est-ce que c'est Azure
j'encourage tous les auditeurs à aller
upvoter sur le GitHub
des DRIVES CETEL, on a une GitHub discussion
c'est un peu la guiguière entre ceux qui veulent
Azure et ceux qui veulent GCP
donc on est vraiment
le choix ça sera vraiment fait
par les plus de votes qui ont eu
donc là on a globalement arrêté
de faire des... on a fait quelques premiers choix
en temps de produit
au début quand il n'y a pas de communauté, quand personne ne connaissait c'est normal
là on essaye vraiment de prioriser
uniquement en fonction des feedbacks
des gens qui nous utilisent
c'est bien donc tu commences à apparaître
comment ça se passe maintenant
la création
vraiment du produit
comment ça s'est passé
si jamais tu devais raconter le storytelling
vraiment
c'est ça, ça a commencé dans un bar
ça a commencé, comment ça s'est fait
quelles sont les étapes pour créer le projet
pour arriver maintenant
à toute la gestion de la communauté
que tu dois avoir
c'est intéressant parce qu'on a pas commencé
on a pas commencé à faire ça
on a commencé d'abord par faire un produit
monter une équipe autour d'un produit
GitOps qui gère un peu
les workflow
donc c'était plutôt un sas
de gestion, de code
qui devait à la fin
être aussi bien interraforme
que gérer n'importe quoi
possible imaginable du pool au mis
que tu veux
et c'est là-dessus qu'on a levé de l'argent
là-dessus, sur ce projet là
qu'on a quand même réalisé en quelques mois
mais
tous les gens à qui on parlait
à ce moment-là, nos utilisateurs
et d'autres
nous remontait quand même pas que c'était leur plus gros problème
ceux qui avaient besoin
de ce genre de choses là
si tu as déjà du terraformes etc
en vrai tu sais faire un pipeline
GitLab CI, tu sais
faire un GitLab Action
c'était certes peut-être un peu pénible
dans certains cas
mais c'était pas leur problème principal
donc on a demandé
quelles sont les problèmes que vous avez actuellement
et ce qui vraiment remontait
donc on a parlé
à une centaine d'équipes
donc ça fait à peu près 200 personnes
vu qu'il est souvent
1 à 3 personnes à chaque rendez-vous
et ce qui vraiment remontait c'était
ce problème de drift
si vous avez une nouvelle fonctionnalité à faire
c'est vraiment ça, on veut voir quand il y a un truc échanger
être capable de faire du terraform apply
en 3-click etc
super intégré GitLab, bon génial
mais en fait c'est pas ça nos principales problèmes
c'est que les choses changent
il y a des variations
on n'a pas de visibilité, alors toi on a tâtonné
on se dit est-ce que vous voulez
une sorte de terraformer hyper ciblé
non non, déjà je suis juste à trop courant
c'est comme ça qu'on est arrivé
on s'est dit en fait c'est peut-être pas du tout
une fonctionnalité à l'intérieur d'un produit SaaS
qui gère du workshop etc
c'est peut-être juste un outil purement open source
et à faire
puisque la communauté
dans cet univers-là t'arrives avec un produit close source
ça apporte rien et puis t'es pas prêt d'avoir
des contribes dans cet ambiance-là
et puis nous venons tous
au niveau de l'équipe tech
on venait tous du d'un univers
complètement open source donc il n'y a pas de raison
de pas le faire
et bah voilà
donc on a fassonné
le petit pivot
côté boîte
on a eu le support des investes
on a eu le support des gens au bord
on a eu le support de tout le monde
quand j'ai support c'est soutien
et donc on est arrivé
donc on a codé ça
en trois mois
à partir de l'automne
premier release en décembre
pour nos groupes en Noël
et puis voilà
maintenant on est dans une version 0.16
on a quasiment 1000 stars
ce qui est pas mal c'est cool
même si c'est de la vanitimétrique
non mais dans un domaine comme le nôtre
1000 stars c'est bien
c'est pas que dalle donc on est plutôt content
on a un discord
dans communautaire où il y a pas mal de gens
qui vont, qui viennent
on a touché du monde un peu partout
sur la planète donc c'est plutôt rigolo
je m'attendais pas du tout
parce que tu me parles de communauté
je m'attendais pas du tout à ce qu'on ait des poules request aussi tôt
on a eu des articles en japonais
des mecs au japon qui en parlaient du truc
on a fait des réponses
donc je me suis mis à utiliser google translate en masse
pour comprendre de quoi parler ces gens
et donc tu leur réponds
leur même mettre à jour en fait
en disant super les développeurs du produit
ont nous répondu
super super
et alors à partir de là
des gens ont commencé à prendre
des poules request
des issues simples
des petits bug fix et trucs comme ça
et puis ils sont mis en fait en prendre dès que nous on pensait faire nous
et donc là c'est pour la première fois
à moi de ma vie en fait c'était le
c'était un peu le
je dirais pas le rêve open source
mais l'image des pinales
que tu peux avoir toi en tant que contributeur en disant
ah mais de l'autre côté eux comment ils le vivent
bah là j'étais vraiment de l'autre côté
après avoir été contributeur pendant longtemps
j'ai jamais eu été moi du côté du produit
donc on a des gens qui vont, qui viennent
c'est parfois fmr
parfois ça revient
des fois tu vois on a envoyé une newsletter
la semaine dernière
et on cite
un belge
qui bosse dans une
dans une grosse
un gros telco
bindard de belgique et il a
tel et tel problème on le fixe
et donc il nous donne tellement d'informations
qu'on peut vraiment le fixer très vite
donc c'est
un bug report hyper cali
son state, son code, le contexte
tout ce que tu veux, beaucoup recit tout simplement
bah les gars ils reviennent en fait sur le chat
sur le discord communautaire et juste pour nous dire
super sympa
ça paraît peut-être anecdotique mais pour un produit aussi jeune
d'avoir un riche aussi large
de gens qui
qui contribuent, qui utilisent, qui font des feedbacks
qui sont hyper tolérants
sur le bal
tous les endroits où on n'a pas encore répondu
on n'a pas toutes les ressources Amazon
on a eu des bugs à la con
il y a des choses que je savais pas
est-ce que tu savais toi que
euh, est-ce que c'est
ouais, c'est les vieux bug-ket E-U-W1
S3, ont comme retour quand ils sont vieux
comme région E-U en majuscule
c'est pas E-U-W1, c'est E-U-Gorme majuscule
désolé
celui-là je l'avais pas vu, je savais pas
donc gros bug et
est-ce que, pareil est-ce que tu savais
que US East 1
au niveau du SDK
quand tu le requêtes, lui il te renvoie pas
US East 1, il te renvoie Nile
ça ça me dit quelque chose
j'ai déjà eu ce truc là
et donc forcément, tu test machin
puis tu test pas forcément sur tous ces cas
donc les gens étaient hyper patients
alors c'est bien, tu apprends en fait à mort
sur le SDK
et comment fonctionne la pays d'Amazon
et ses inconsistences
mais les gens étaient hyper patients, ils ont donné plein d'infos
on a même certains qui nous donnent accès à leur compte
pour qu'on puisse, enfin des comptes de tests
pour qu'on puisse simuler chez eux
c'est vraiment un boulot communautaire
hyper intéressant
et donc là, à l'heure actuelle, l'équipe qui bosse dessus c'est combien de personnes
donc c'est, on est 7 au total
et donc ça fait 5 développeurs
ah oui c'est quand même 5 développeurs
et là, à l'heure actuelle
forcément, quand on parle
à l'heure actuelle, et je l'ai vu beaucoup passer sur Twitter
quand on parle de projets open source
avec donc des projets
avec une notion gratuite forcément
la notion de business
associé à ça, ça va être
quoi ? Parce qu'avant
on peut dire que c'est assez simple quand on voit un produit
en ça, sur des choses comme ça
là, quand on est dans des produits communautaires
ça va être quoi l'enjeu ?
là, dans les next steps que tu vois
qui vont permettre d'avancer dessus
Super question, surtout que moi j'avais pas
les réponses à ces questions, surtout en revenant à Paris
il y a un an et demi
côté Amérique du Nord, ça fonctionne assez différemment
il y a déjà eu beaucoup de success stories
autour de l'open source, surtout de l'infra
tout le monde est très très chaud
et en vrai c'est une question qui se pose pas aussi tôt
c'est tout à fait normal
en fait, là-bas pendant super longtemps
on t'explique que c'est pas grave
réfléchis pas à l'argent
le but c'est d'acquérir des éducateurs, de l'usage
et de la réputation
voilà, et donc ça commence à arriver en fait ici
on a la chance en fait d'avoir
des investisseurs
des Béats
et donc des gens au bord
en fait qui ont exactement
cette expérience là et qui non seulement
ne nous foutent pas du tout de la pression
sur la monetisation
en pré-site
ni en site en fait, ils sont vraiment
dans
une logique de soutien
de type
on investit chez vous car
vous arrivez à faire de la communauté
vous arrivez à créer l'usage, vous arrivez
à
répondre à un vrai problème
les questions de monetisation
c'est des questions qui arrivent beaucoup plus tard
ne cassez pas ce que vous êtes en train de faire
le marché est tellement large
le nombre de gens qui utilisent Amazon
est tellement large
le nombre de gens qui utilisent Azure
et GCP et d'autres
le but du jeu est d'avoir
vraiment des gens qui utilisent le produit
derrière en fait
dans quelques années on réfléchira
non pas à comment
faire payer ces gens
mais comment répondre à des besoins qui sont
très enterprise dans un coin
avec un produit particulier
dans un modèle peut-être plus
achicorpe, peut-être justement
de se dire en fait que l'essentiel
4e et 9% du produit
est open source
le pouliem
restant en fait c'est peut-être
4 banques en fait et 2 studios
d'animation qui vont le payer
là je... on verra ça dans 2 ans
donc aujourd'hui on a un soutien complet pour ne faire
que de l'open source
et c'est ce qu'on fait
et la question que je me pose dans l'histoire
que vous avez eue c'est que vous avez fait un pivot
est-ce que tu penses que ça aurait été simple
de créer directement la boîte
uniquement sur l'idée
de drift control
vous avez arrivé
ou est-ce que la première
expérience c'était celle qui a permis
de faire le rêve
est-ce que là si maintenant tu arrivais
que tu aurais cherché
ça avait cherché des investissements
avec juste drift control
t'aurais trouvé plus facilement ou moins
on fait pas ça
mais d'instinct
d'instinct comme ça
qu'est-ce qu'est ce qu'il y a le conseil
là ce qui a
vraiment permis de solidifier
de rendre solid le
pivot entre
entre guillemets c'est de se dire
c'est vraiment qu'on a présenté qu'on a parlé à énormément de gens
c'est le fait d'être
à l'écoute
vraiment du
produit des utilisateurs de quel sont leurs vrais prolignes etc
de faire ça de manière quand même
assez
très assidue
très précise c'est pas rien en fait de
passer plusieurs semaines, plusieurs mois
en fait même à interviver
systématiquement 2, 3, 4 équipes par jour
pour récolter
en fait les mêmes questions, les mêmes réponses
parce que c'est pas un point de
se passer tout ça, mettre ça en forme, on tire
quelque chose et ça en fait ça montre
quand on a dit bon on va abandonner
le premier projet
de workflow et on va faire un outil à côté
on a pu le baquer avec des vrais data
c'est pas juste
salut je suis un développer AirSuite
avec ma barbe et j'ai décidé en fait qu'on allait faire ça
on avait vraiment des données
venant d'utilisateurs réels
de gens qui pouvaient eux-mêmes interviver
si ils aient besoin etc
et ça permettait de rendre un peu sérieux
le pivot c'était pas un pivot de désespoir
mais on a trouvé peut-être mieux
on allait dans la direction de la forêt
puis en fait près de la forêt on a tombé sur une clairière
et ce qu'on n'irait pas voir plutôt la clairière
ok et donc justement
maintenant on en revient aux usages
donc que tu vois apparaître
les usages courants
que tu as de Rift Control
ou ceux-mêmes que toi tu préconises
alors actuellement ça va être plutôt quoi
la user story
et les user journey
d'un initiateur de
alors moi la manière dont je voudrais
que ce soit utilisé c'est clairement aujourd'hui
de manière répétable et répétée
pardon en CIA
c'est clairement un outil qu'on va mettre
en fonction de ton workflow
à un endroit ou un autre
de ton pipeline
est-ce que c'est au moment d'une poule request
c'est ce que...fais bon
quand tu veux valider en fait la consistance
lors d'un changement moi je le mettrai plutôt avant
qu'un changement arrive quand même valider
que déjà tu es consistant avant
puisque après tout on s'attend
à ce qu'un terraforme plan ou un terraforme
apply le FAST
mais également en fait un intervalle régulier
donc typiquement toutes les heures
enfin en fonction de ton temps de run
et aussi de ce qui t'raise comme
à pays...comme requête d'appelliers Dispo
en fonction si tu as une
grosse infrastructure
c'est pas impossible que si tu scannes
toutes les demi-heure en fait tu te fasses bannir
par ton cloud provider
donc pour moi ça c'est vraiment
l'usage idéal
tu mets ça dans ton GitlapsiA
ou dans ton GitHub Action
et tu as un rapport
tu te prends une alerte
que tu as choisi, comment tu vas vouloir la recevoir
sur ton Discord, sur ton Slack,
ce que tu veux par email
si quelque chose sort du normal
pour l'instant c'est quand même pas
l'usage majeur qu'on envoie
les gens ont quand même à tester
l'outil sur leur laptop et ils ont un rapport
donc ils ont un jeuil rapport
indenté, ressource par ressource avec tout ce qui est déconné
un JSON au milieu
et puis ils se disent bon
bah là à partir de maintenant en fait
ok je viens de voir tout ce qui est pas bon
et bah maintenant je vais fixer ça
donc ils ont enviré
on leur amène, on ouvre les yeux
on a un système
de Ignore
à la Gitignore donc c'est le Driftignore
et donc dans lequel tu vas mettre
ressource.n don de la ressource
et
ils vont pouvoir les
les Ignorer
pour pouvoir partir
en peu de zéro, mais pour ceux qui en ont
beaucoup, bah c'est dur
donc là on a ce genre de choses là aujourd'hui
à dîler et puis
il y a le fait que la pays d'Amazon
n'est pas globale, elle est par région
pour beaucoup
de ressources
donc ça demande
de faire la même chose région par région
donc qu'est ce qui se passe
si j'ai eu le cas
il y a quelques années de quelqu'un
qui me dit non mais tout est sous contrôle
en fait tout est en
sur EUS 3 en fait c'est nickel
c'est tout à Paris on est bien
et en plus c'est tout automatisé donc
rien ne peut sortir et en fait
bah ils avaient un consultant qui avait lancé
des GPU en Aurégon
et pour 30 000 dollars par mois
donc voilà
donc c'est des choses
en fait bah quand on
pareil tu veux savoir avec
avec ton
avec DriCetel quoi, donc on a
quelques améliorations enfin
quelques évolutions d'usage en fait à faire avec ça
permettre en fait le
multi-région pas par défaut
parce que tu n'as pas envie de tuer ton crédit
de pay rate
et puis bah faciliter la
mise en CIA aujourd'hui c'est pas forcément
super évident
donc là on est en train de faire ça on est en train
de publier enfin je crois que c'est pas encore public
c'est encore pour le request
encore cet après-midi mais donc on a eu des orbes
Circle on a
une Github Action complète on vient
de republier
le container docker
donc on a viré Distrolest on est
passé en Alpine
parce que Circle a besoin
d'exécuter des choses dedans d'avoir un shell
ça a des impacts en fait un peu partout
et
donc ouais en termes d'usage aujourd'hui c'est
quand même beaucoup plus laptop
que Circle
enfin que CIA
mais ça tend
à changer quoi
Cool
je t'avais dit que je te donnerais sans doute
les insights que je vois l'un dedans
moi c'est dans les missions dans
dans lesquels je suis à l'heure actuelle
un outil comme ça moi
je le verrai beaucoup utilisé
par la sécu
c'est qu'en fait le drift
on parle dans les PR, dans les choses comme ça
quelque chose qu'on peut ignorer
bah en fait il y a certaines choses que certaines personnes veulent pas qu'on ignore
typiquement et c'est pas
à nous de choisir
ce qui va être ignoré ou pas
et donc c'est clairement le problème
qu'on rencontre assez souvent qui est
en fait il est exprimé souvent
dans le sens on aimerait
une CMDB
voilà en fait la requête telle qu'elle vient
en plus par le temps alors qu'en fait c'est pas ça
ils veulent pas une CMDB
ils veulent savoir s'il n'y a pas des ressources
qui n'ont pas été audités, qui n'ont pas été ceux-ci
etc etc
mais souvent le terme il vient on aimerait une CMDB
et voilà et donc en fait
quand on va gratter un peu plus loin en fait le besoin
souvent en fait non mais on aimerait
savoir s'il y a bien exactement
ce que vous nous avez dit qu'il y avait
on veut savoir exactement ce que c'est
etc etc et donc
un outil comme drift control pour le coup
serait
serait vraiment utile à des équipes comme ça
mais là pour le coup
utiliser de leur côté et là
sans doute pas dans un pipeline de CI
ce sont pas des équipes qui l'utilisent
elles vont être sur leur laptop
elles veulent savoir exactement ce qu'il y a
elles veulent voir de leur propre yeux
gérer leur gaiting nord etc
quasiment dans un autre contexte
donc vérifier qu'il n'y a pas un problème
ça c'est le premier usage
que moi je vois dans mon expérience
à l'heure actuelle en plus de gérer
tout le cycle de vie
il y a un deuxième usage possible qui en lien
avec un peu ce dont je parlais avant
qui est la notion du manuel en fait
et je me dis j'aimerais bien avoir un truc
prendre l'exemple des
des tests
c'est à dire que quand on fait des tests de code
des tests unitaires on a souvent un coverage
et bah en fait moi je me dis
bon bah je commence à tout faire à la main
j'ai quelque chose qui marche
bon c'est pas ça qu'il faut que je garde
parce que je suis pas assez bien
je lance drift control ça me dit 0% de coverage
puis au fur et à mesure je vais ajouter
mes petites ressources terraformes
et en fait je vais juste augmenter mon taux de coverage
pour arriver jusqu'à
jusqu'à mon 100% rêver idéal
dans lequel je sais que je contrôle absolument tout
et là après je peux mettre ma CIA
qui me dit non non mais j'ai pas le droit de descendre en contrôle
etc etc je ne peux que augmenter
et en fait c'est une sorte de coverage
bah bonne nouvelle
on affiche un taux de coverage
après on
on n'argument pas
trop dessus parce qu'en fait
on fait un taux de coverage
par ressources c'est à dire que tu changes
l'intégralité des paramètres de leur source
ou un ça fera le même résultat
donc en fait c'est
c'est pas un vrai coverage
au sens code coverage
de mon ingénierie logicielle normale
c'est adapté à la cette notion hyper pauvre
de
ressources terraformes
on voudrait faire beaucoup mieux pour le mettre en avant
mais aujourd'hui il y a clairement ça
en fait aujourd'hui on rapporte
ton terraform
et ton state
enfin
par rapport à la réalité que la paix nous a renvoyé
ton state aujourd'hui
couvre parce qu'on ne lit pas le code on ne se basque
que sur le state à ce stade
ton state couvre 30% de ce qu'il y a
donc ton job en fait c'est de le faire monter ou de ne pas le faire descendre
là c'est exactement ce qu'il peut être fait
on renvoie
pardon on renvoie du
du...
une structure JSON en fait
tu le pars, tu le jq
et si c'est inférieur à ce que c'était avant
en fait non
ça ne passe pas quoi
tu as complètement raison c'est un
c'est vraiment une usage
un usage qu'on pourrait voir
voilà dans un
et en fait qui ferait en sorte que
l'infrastructure commence à ressembler plus à l'ingénierie logicielle
tu vois ce terme là à l'ingénierie logicielle
et quand on parle d'infrastructure
à ce code, bah un moment il va falloir qu'on se pose des questions
de bah oui mais en fait on fait du code
et on doit avoir une notion d'ingénierie
c'est pas juste on met 3 fichiers
et puis c'est ça le code c'est vraiment
toute cette notion là de coverage, de test
etc. on a parlé de podcast avant
de la notion de test
avec de la test
voilà là c'est encore quelque chose
d'autre qui permet de voir le coverage
exact de ce qu'on a réellement
voire même un
point important en fait qui est
c'est quelque chose en fait d'expérience qui nous arrivait
c'est qu'on a changé le provider
terraform et en fait les valeurs
par défaut ont changé
pas forcément les valeurs par défaut dans
les pieds Aïe d'Azur mais en fait
les valeurs dans le
de provider et en fait ça c'est clairement un problème
donc on s'est mis à mettre
le plus possible les valeurs par défaut en dur
parce qu'on veut exprisimer
et expliciter notre volonté
et en fait
quasiment quelque chose que des fois j'aimerais avoir
c'est pas forcément ce que DRIVe Control peut apporter
mais ce qui est important c'est que si un nouveau
paramètre qui apparaît chez Azure
ou chez mon provider Azure ou l'un et l'autre
une complexité qui apparaît
mais j'aimerais le savoir
j'aimerais savoir qu'un nouveau paramètre apparaît et quelle est
sa valeur dedans et je ne l'ai pas cété
ça serait peut-être bien
mais j'ai une petite alerte qui fait
j'aimerais bien l'expliciter en fait
pour être sûr qu'il n'y a pas
il n'y a pas de problème et j'ai pas un comportement
nouveau qui est apparu
qui n'était pas attendu en fait
c'est un problème
c'est des problèmes qu'on a eu nous aussi
donc un peu plus
sur OpenStack que
sur Amazon
j'ai pas de temps eu sur Amazon
on a eu des feedbacks dans la période dont je t'ai parlé
on a interviewé des gens
on a eu pas mal sur Azure
dont un terrible qui était
en deux mots
la personne avait un parc
apparemment assez large
de machines sur Azure
qui était tout authentifié
sur un AD
et donc c'était
avant apparemment qu'un setting
par défaut soit activer
pour dire que l'authentification
doit être
configurée pour être fonctionnelle
donc il y a un matin en fait
il refait un apply
sans apply en fait on voit rien
il n'y a pas de problème et dans la foulée
il se rend compte qu'il n'y a plus rien qui marche
il peut plus se loguer sur aucune machine
les services ne fonctionnent plus
et en fait c'était tout simplement
que le un setting par défaut
avait été pouché, activé
comme lui il avait réappli derrière
bah en fait, semble-t-il la Pays de Azure
avait pris pour acquis
que le fonctionnement était celui qui était attendu
et lui n'a jamais su que non seulement plein de choses
a été changé mais que en plus
lui avait été renvoyé une nouvelle structure
avec des valeurs qui elle avait été setée
qui n'existait pas avant
et ça c'est vraiment le genre de chose
que Drift CTL veut
montrer à l'utilisateur
ou entre Deren
puisque ce que tu décris là, tu peux l'avoir entre Deren
c'est à dire que entre 13h et 14h
ici un changement
qui est fait au niveau de la pays, tu veux qu'ils soient remontés
parce que Interaform Apply
il peut faire exactement ça, ne va pas trop monter le problème et valait écrire
donc toi tu veux le savoir au milieu
d'où l'intérêt de ne pas avoir que du laptop en reporting
mais également de l'intervalle régulier
pour avoir de l'alerting
c'est vraiment de l'expérience
que j'ai pu voir
j'ai pas une très grande expérience
dans Interaform
mais c'est la chose qu'on a vu
et clairement qui est un manque
quand on voit dans le
dans le projet
et d'ailleurs
est-ce que là à l'heure actuelle, il y a des choses
que tu aurais besoin peut-être pour faciliter le produit
parce qu'on aurait pu se dire que tout ça
c'est quelque chose qui aurait pu être implémenté
dans Interaform
plutôt que dans un produit à part
enfin je sais pas quelle est la notion
jusqu'à quel niveau justement
ça aurait pu être possible
ou est-ce que tu aimerais avoir en plus
dans Interaform
c'est une bonne question parce que je suis pas sûr
que
Qhcorp est un intérêt en fait à se lancer
dans la gestion cloud globale
de ce qui sort de Interaform
eux ce qu'ils vendent c'est on a Vault, on a Nomad
on a Consul
ils ont des éléments très clairs, très définis
ils sont un peu l'alternative à plein de projets
autres qui existent dans chacun des cloud providers
etc etc
imagines pour eux
la complexité de dire
bon bah à partir de maintenant en fait on va gérer
tout ce qui est en dehors tout ce qui n'est pas géré
on vous a vendu l'automatisation
et du carré jusqu'à présent
bon bah maintenant en fait on va faire
ça serait un peu l'encourager et nous notre job c'est pas du tout de l'encourager
c'est de dire la réalité
bien sûr qu'on sait qu'il faut aller vers cette automatisation
sans pensant bien sûr qu'il faut qu'il y ait le moins de gens possible
qui est des credentials
bien sûr il faut qu'il y ait
check off par exemple sur la route
qui analyse
enfin des analyseurs syntéxiques
qui analyse en fait pour la compliance
non on ne chiffre jamais
en prod des security group qui ouvrent sur 0, 0, 0, 0
bon ce genre de choses
tout ça c'est bien mais tout ça c'est tout ce qui est
on sait que c'est vers ça qu'il faut aller mais la réalité
et c'est pas une réalité
à 50% c'est une réalité
à
largement plus
qui est qu'on n'en est pas là
on n'est pas près d'en être là
et quand bien même les nouveaux projets en seraient là
les anciens projets n'y sont pas
donc j'embrasse pas le legacy non plus
mais la réalité elle a l'air
pour l'instant on va résoudre des gros gros pains
et je pense pas du tout que Terraform
doit s'occuper de ça en fait
Terraform et qui se concentre
en fait sur gérer plus de ressources
mieux des ressources fixer leur ton de bug
et c'est pas
il n'y a pas de mépris dans la danse
gros projets donc c'est normal en fait qu'il y en ait plein
ils ont toujours en fait un cheval de retard
sur
sur les nouvelles fonctionnalités
sur telles et telles clades
donc ils se concentrent là dessus qui fasse le meilleur produit
là dessus on voit qu'il a sacré
des émules puisque Apolloumi qui arrive derrière
donc qui se base sur une base existante
alors bon si t'avais
si t'avais super envie de faire du
du J.S. à la place du HCL ben maintenant
tu peux à la fin tu finis avec du Terraform
dessous mais c'est
si c'est ça que tu voulais faire bon ils ont
créé tout cette émulation là
je crois pas qu'il faut qu'ils
doivent s'occuper de
de ce qui est en dehors qui reste
là dedans c'est très bien
et puis il y a des gens qui ont reçu du Solink
oui c'est sûr qu'on appelle un écosystème en fait
ouais voilà tout simplement
t'as besoin d'avoir un écosystème un seul acteur unique
c'est jamais une bonne situation
quand t'es le seul au milieu
au milieu de la cour
et là toi
ce serait quoi les attendre que t'aurais
de tous les gens qui pourraient écouter donc
tester le produit ok et est-ce qu'il y a d'autres
choses que tu pourrais
attendre
surtout tester le produit évidemment mais
surtout en fait venir nous raconter
soit sur github soit sur le discord
ben les ce qui était
évidemment si y a du positif venu nous le dire
ça fait toujours plaisir mais surtout
en fait ce que vous auriez attendu
qu'est-ce que la déception ah mais t'as parlé
de tout ça en fait je l'ai pas vu comme ça
ou qu'est-ce qui a été dur c'est qu'elle est
la prochaine ressource qu'on doit supporter
tu vois là ça fait 2 jours
une des ressources majeures qu'on ne supporte pas aujourd'hui c'est oks
sur amazon
et c'est marrant parce que ça fait 2 jours
que ben là on a des gens qui viennent sur le discord
disant bon quand est-ce que vous y supportez oks
parce que là vraiment ça manque
donc toi on priorise comme ça
voilà je fais plus du tout le pm
mais en fait le doigt en l'air a me poser la question
avec mon pool de 3 clients
on est vraiment sur le tout
l'équipe sur le discord
et c'est tout le monde qui est en contact
en permanence avec
avec la communauté
donc clairement c'est ça
si vous testez drift et telle et que vous vous dites
tiens il y a ça qui manque ou j'aurai envie de voir ça
c'est vraiment ce qu'elle est plus précieux aujourd'hui
c'est de nous faire nous remonter en fait
qu'est-ce qui manquait pour vous n'utiliser pas
est-ce que c'est de la doc, est-ce que c'est
du contenu, est-ce que c'est une fonctionnalité
voilà c'est comment
je ne pense pas forcément
à tout et si ça se trouve
il y a peut-être des gens qui
pensent
peut-être que la plupart des gens se disent mais c'est un mode
démon par exemple qui nous faudrait
et personne n'ose le dire
et en fait le premier qui va venir le dire tous les autres vont arriver dans la foule
en disant bah oui évidemment c'est un mode démon
je ne pense pas qu'il faille un mode démon à ce genre de produit
mais ne venez pas de me troller en parlant de ça
et voilà c'est ça le
et si jamais les gens veulent contribuer
tu conseilles quoi comme est-ce que c'est compliqué
est-ce que la code base est propre
est-ce que c'est vraiment
quel est l'état du code
quelle est l'attentie des gens se disent
ah non mais j'ai besoin d'un truc
mais j'aimerais bien le faire
alors on a essayé de faire ça bien
on a des tests sur à peu près tout
on a fait une documentation de développeurs assez
assez poussées
on a des...
toute la forge
est publique, absolument tout est public
je pense que c'est très propre
pour un projet aussi jeune
même pour un projet pas aussi jeune
je pense pas que je vais pas se souvenir de faire un truc aussi propre
en fait
c'est en go
pour ceux qui je crois qu'on l'a pas dit
en fait depuis le début
on a des issues qui sont taguées
first issue
pour ceux qui voudraient commencer à regarder
ce qu'il y a à faire
donc voilà
donc non c'est assez propre
il y a des tests un peu partout
je crois qu'on a 70% de couverture
de tests à ce stade
et si le chiffre est pas plus haut
c'est aussi qu'on a beaucoup
de fichiers
qui ne sont pas en fait du code et qui font baisser
le coverage donc bon
on n'est pas là juste pour faire du vanity là-dessus
donc
non c'est le...
si vous voulez contribuer venez voir tout ce qu'il y a
dans le github
alors on fait des démos aussi par exemple
à chaque release sur twitch
sur youtube, sur discord
venez aussi
poser des questions en fait en live on est de toute l'équipe
à présenter ça
tous les...
donc sur mon général ça peut être toutes les 2 semaines qu'on sort une release
là on a un gros refacto
qui veut nous occuper à mon avis un mois
donc ça va être peut-être un peu plus calme
sur le mois de mars
mais voilà c'est ça le...
c'est génial
là une question après que...
là qui m'est venue justement quand j'entends parler de ça
le...
les embauches comment t'as réussi
à avoir une équipe qui s'y connaît l'homme
d'en qui... qui est motivé
par ça qui... voilà c'était
compliqué, pas compliqué, très simple
alors c'est toujours
plus simple quand t'as un peu
d'argent pour pouvoir payer correctement
des gens donc on avait fait une levée donc
on a pu payer les gens donc moi
je suis pas fan des... on est passés
par station F et il y a beaucoup de...
de startups qui ne vivent qu'avec des... des stagiaires de 42
euh... j'ai rien contre les stagiaires
de 42, la preuve on en a embauché 2
euh... mais faire une startup qu'avec
des mecs inexpérimentés c'est bon pour personne
ni pour toi ni pour... ni pour... ni pour eux
euh...
donc on... on a pu
choisir les gens avec qui on travaillait
de part le...
pas déjà du réseau... perso
tout simplement c'est quand même c'est plus simple
surtout quand tu reviens... tu reviens
à Paris, il y a des gens qui y a... tiens t'es là
si on... si on bossait ensemble, bon là le projet
le projet bot c'est quand même un univers un peu sympa
y a pas 50 boîtes
qui font du DevOps, tooling, machin etc
en France donc c'est... c'est plutôt rigolo
pour ceux qui... ceux qui... ceux qui veulent venir
on a... quand tu...
quand tu clairement
dis que tu cherches du... du seigneur
que tu t'es capable de payer en fait du seigneur
bah t'as quand même des mecs qui viennent
et qui... qui se sentent un minimum respectés
euh... c'est pas en fait c'est hors de... de start-up
qui... qui... qui te propose
un salaire de sortie d'études
disant par contre je veux que t'aies fait 50 go
et que tu sois une brute en DevOps
euh...
donc on a pas eu trop de soucis
sur la... sur la Cali, bizarrement en fait ça a été
ça a peut-être été un peu plus compliqué
de trouver des... des stagiaires
euh... parce que bah là on avait une masse
de gens qui... y a vraiment une masse de...
de... de soumissions mais pour... pour créer le...
pour créer l'équipe ça c'est... ça a été...
euh...
euh... à partir du moment où
bah... t'es en full remote
euh... Covid ou pas Covid
euh... que tu respectes un minimum
les gens et euh...
je parle de salaire et euh...
et où en fait la mission elle est... elle est concrète
quoi et puis bah qui ne voudrait pas
être payé en remote à bosser sur un projet open source
euh... en go dans du DevOps c'est quand même cool
quoi, c'est... c'est un...
un peu je suis hyper content de pouvoir
proposer ça aux autres
ah mais super voilà mais c'était ça en fait
ce que... ce que j'attendais euh... pour... pour essayer
de motiver tout le monde, de se dire c'est possible
euh... voilà il y a une société
et peut-être même euh... pour créer
des vocations en fait comme on dit c'est...
le meilleur et l'un de dans c'est de dire voilà
on peut trouver des gens, ça existe euh...
et que... et qu'il faut créer
un écosystème en fait euh... à leur étoile
et on peut le faire à Paris maintenant quoi
ouais c'est ça c'est... c'est... c'est... c'est une vraie... enfin c'est un vrai truc
qu'on a... qu'on a pas mal rétorqué souvent
en me disant ah mais non mais je peux pas me lancer
dans un projet en go, y a personne qui s'est en faire
je trouverai jamais personne pour en faire
c'est quelque chose que j'ai entendu alors plutôt
en province c'est pas un gros mot
c'est juste pas à Paris
euh... et euh... quelque chose que j'ai entendu mais voilà
de se dire que c'est possible qu'il y a des...
on peut se créer des outils comme ça et que
même à Paris et non de créer un... un écosystème
qui ne soit pas juste basé à base de
3 scripts shell et un truc en Java pas... pas maîtrisé
quoi et là tu parles de province
le... le... le...
l'essentiel de l'équipe euh... était soit
déjà en province et trop content de pouvoir
justement faire du go, accéder à des trucs
trop cool etc et ceux qui n'étaient pas en province
on a même du parisien born and raised
en fait qui euh... avec le... vu que c'est un remote
c'est dit super tu sais quoi je me
casse à la campagne et euh...
et donc et ça... voilà
le remote moi ça change rien que le mec
soit au milieu de l'ardèche ou...
ou à Orléans ou à
Paris quoi donc c'est... donc voilà
là pour le coup la compétence elle est... elle est pas
c'est comme le même dit
sur internet personne ne sait que je suis un chien
on en a... on en a... on en a là quoi
c'est là sur du pur remote c'est...
et euh... ce qui est intéressant aussi
d'ailleurs le pur remote c'est que...
le hasard a fait que mes expériences précédentes
étaient également euh... pur remote en étant
au canada et euh...
la gestion de communauté
et en fait pas si éloigné
c'est très async tu peux pas attendre
en fait de quelqu'un qui veut venir t'aider
que bah il soit là en live en fait
etc il y a les time zones il y a tout ce que tu veux
et euh... et en fait bah c'est... c'est...
c'est un peu de travailler en confiance complète
en full async tu parlais d'hoc tout à l'heure
est-ce que la doc utilisateur etc
si tu fais pas ça si tu t'attends est-ce que tout le monde soit
à station F sur un banc
pour pouvoir coder en fait ensemble
ça risque de pas fonctionner
par contre le full remote c'est... c'est limite
mais ça sera probablement un autre podcast
euh... sur la partie humaine
etc quoi
donc ça y a du boulot
je dis personnellement je déteste le full remote
genre vraiment ça me... ça me... je déteste ça mais absolument
mais parce que pour plein de questions en fait
euh... qui sont en fait plutôt dans les phases
de création du projet
euh... qui sont extrêmement durs en fait de faire des pivots quand tu te vois pas
quand tu as tout ça enfin y a... y a plein de notions
quand tu es... quand tu arrives à trouver ton bon rythme
de croisière, que tu sais ce que tu dois faire
que tu es dans une logique de rush
euh... et voilà t'as un backlog
qui est long comme un bras et tu sais ce que tu dois faire
et t'as les bonnes personnes pour le faire ça marche très bien
pour toutes les autres parties d'un projet
euh... en fait c'est...
et... et je... génére un système
et de comprendre un système par juste les moments où ça va bien
c'est rarement un bon truc en fait
euh... quand disant voilà non mais t'es à la forme c'est bien
quand ça va bien bah tu vois y a des outils comme drift control
y a des choses comme ça et donc voilà c'est juste ça
la notion du full remote j'ai
un peu plus de problèmes mais en même temps
euh... c'est mon métier je suis là
je suis consultant pour des gens qui ont des problèmes
et si ils avaient pas de problèmes ça sera
ça serait imprudent en fait donc c'est normal
que je préfère les voir en réel
en vrai pour faire avancer les choses plus vite
plutôt que d'être en... d'être en remote
mais voilà mais j'entends et je trouve ça génial
que ça existe qu'il y ait des gens
qui soient heureux, contents voilà c'est principal
en fait en vrai euh...
et c'est ça euh... c'est ça qui est vraiment cool
bon bah merci euh... merci Stéphane
euh... on va pas aller plus loin je pense que là
tout le monde a eu ça euh... donc
n'hésitez pas donc à aller sur votre github
sur le github de drift control pour avoir
les issues euh... le discord
le discord donc de drift control et le discord
aussi de devops pour pouvoir en parler après
donc sur même élargir
encore sur tout le devops
et l'usage des... des outils comme ça
euh... parce que voilà
on a pas parlé de Kubernetes etc mais ça... ça
aurait été un autre sujet à intégrer
dans ce jeu... dans ce type d'outillage
donc euh... merci à tous d'avoir
euh... d'avoir écouté
merci à toi Stéphane
merci à toi Pierre et puis à une prochaine
j'espère que même tu participeras
pour d'autres... pour d'autres numéros
pour d'autres numéros sur d'autres sujets
où tu reviendras même si y a... si y a des grosses évolves
ça serait génial de dire voilà
on a parlé de ça avant, bah regardez maintenant
les nouveaux usages qu'on y a vu et ce qu'ils impactent
et... et comment ça peut... comment ça peut vous
intéresser, ça sera génial
avec grand plaisir
merci beaucoup, merci à tous et puis...
et puis à une prochaine
Episode suivant:
Les infos glanées
DevObs
Dev'Obs Le magazine et observatoire du DevOps
Tags
Card title
[{'term': 'Technology', 'label': None, 'scheme': 'http://www.itunes.com/'}, {'term': 'News', 'label': None, 'scheme': 'http://www.itunes.com/'}, {'term': 'Tech News', 'label': None, 'scheme': 'http://www.itunes.com/'}, {'term': 'devops', 'label': None, 'scheme': 'http://www.itunes.com/'}]
Go somewhere
Dev'Obs #19 / #facebookdown