
Azure Bicep with Alex Frankel
Durée: 54m54s
Date de sortie: 12/08/2021
In this episode, I was joined by Alex Frankel to chat about Azure Bicep! Bicep is a new DSL that transpiles down to native ARM templates. Except that it greatly improved upon the very hard to read and write ARM templates, making Infrastructure as Code in Azure a far nicer user experience. We delved into the Bicep language, the tooling, a bit of the history - and even geeked out a bit on how awesome .NET has become!For a full list of show links, see the website here
Avec passes d' experimentation, une mind élection est ad -->
deux adapted, elle est prie.
Elle est hier et il y a plusieurs encantaurs
Je vais travailler avec violent
aujourd'hui. C'est quelque chose que j'ai utilisé pour quelques projets et je l'aime.
Alors, bienvenue à la show, Alex.
Hey Dan, merci d'avoir moi.
Oh, c'est bien.
Donc, avant de me faire un bicep, je vais faire quelques mentions de social media.
Le premier va être à Alistair Smith, qui a tweeté.
Après entendre Chris Sainti sur le podcast de Drakken sur le podcast de l'exception de Handel,
en parlant de Blazer, je vais maintenant évaluer cela pour le nouveau projet que je commence.
Le premier temps de l'écart, vérifiez-le.
Donc, merci à Alistair pour la tweet, le premier temps de l'écart, mais non, non la dernière.
Et puis, le deuxième va être à Clifford Agius, qui a tweeté.
Juste de l'écart de Mark Rendall sur Drakken sur le podcast de l'exception de Handel.
Comme toujours avec Mark, c'est fun et il y a tous les types de tangents.
J'aime l'idée de la base de la tête aussi. Je vais lui donner un coup.
Merci Cliff.
Oui, le épisode a certainement eu l'air de l'ancien tangent,
j'ai vraiment aimé la recording et j'ai hâte de l'avoir aimé la écart.
Pour ceux qui ne savent pas Cliff, il est très bien connu dans la communauté d'un des commandes d'un point de vue UK.net.
Et il est aussi un pilot.
L'écart est en train de se couper, mais le pilot est un peu...
Je ne veux pas qu'on se souvient d'un autre.
Donc merci à tous les tweets.
Et donc, Alex, nous allons aller dans le bicep.
C'est le début de ce bicep.
Oui, le bicep à la hausse et votre audience va avoir un bon sens,
comprendre l'appréciation pour ce genre de choses.
C'est un transpire.
Tout ce qui fait est de prendre votre code bicep et de le faire en code armes.
Et si vous n'avez pas l'idée de quoi un code armes est,
un code armes est l'infrastructure native de la langue code pour Azure.
Donc si vous avez des ressources en Azure, vous avez un C de l'option,
l'une des meilleures options que vous avez est le code armes,
qui a été traditionnellement difficile à l'authentir,
mais vous avez beaucoup de pouvoir en termes de l'exposé
pour ce qui est possible en Azure.
Et donc avec le bicep,
la mission était de faire l'expérience d'authentir mieux.
Et la meilleure façon de faire ça, c'est de avoir un nouveau syntaxe,
mais de transpire à un code armes,
pour que vous obteniez tous les bénéfices de code armes
sans les défis d'authentir.
Donc je dois admettre, dans le passé, quand j'ai regardé les codes armes,
j'ai eu de l'air de chocs.
Dans ma tête, quand j'ai regardé ça,
j'ai vu ce qui était vraiment bloqué,
qui était vraiment difficile à rééter.
Et puis c'était ça qui me sortait de l'alternative,
des choses comme la terraforme, par exemple.
Donc j'étais en train de utiliser la terraforme pour un peu d'un peu d'un moment.
Et puis le bicep est arrivé.
Et vous vous dites que c'est transpire à des codes armes,
mais c'est juste tellement plus grand.
Donc je pense que l'exemple de mon expérience,
en regardant le JSON en code armes,
si vous faites des paramètres,
c'est un syntaxe horrible,
où dans le bicep, c'est comme un code,
en qui vous référez par dot,
et puis le nom de paramètre.
C'est un peu de malin,
que avec le bicep, nous avons inventé un nouveau langage.
Et vraiment, ce que nous avons fait,
c'est que nous avons pris le langage de la campagne armée
et le mettre dans le type de file, essentiellement.
Parce que la campagne armée est dans un file JSON,
il doit être embêté dans ces langages,
c'est pourquoi, dans le JSON,
c'est double quotes et puis un bloc de bloc,
qui signifie que c'est une expérience armée.
Et puis, dès que vous faites le bloc de bloc,
vous êtes dans la campagne armée,
vous n'êtes plus dans la campagne JSON,
c'est-à-dire des syntaxes qui travaillent
dans JSON, et c'est où tous les limitations fondamentales
étaient élevées.
Donc, maintenant, par le extracter dans sa propre syntaxe,
nous nous sommes vraiment en train de le faire,
comme un langage de programmation.
Nous avons toujours eu le langage de programmation,
mais nous n'avons jamais eu un syntaxe réel
et un expérience de langue en langage.
C'est pourquoi nous avons maintenant
cette opportunité de faire ça plus facile
et de faire le syntaxe correct,
ou plus approprié.
Je dois probablement prendre un tour de la back end,
pour être sûr de l'armée.
Je pense que mon première expérience
était quand je vais au portal d'Ajaport
et je vais dans une ressource,
et dire export armée.
Parce que vous avez beaucoup de bac,
plus que vous avez besoin probablement
dans le template armé qui va dans le contrôle de la source,
c'est probablement un autre chose qui m'a scadré,
d'où, si j'avais appris le droit,
j'aurais appris,
ce qui, à mon avis, a été un peu trop fort.
Mais il n'y a pas de propéties qui sont nécessaires.
C'est vrai. C'est toujours notre faute.
Parce que nous avons mis vous sur ce path
de pensée que je peux juste
exporter quelque chose,
ce qui est un bon feature,
mais c'est un moyen très dur
pour exposer à l'armée pour la première fois.
Je suis certain que,
quand je l'ai déjà appris sur l'armée
et j'ai décidé de l'utiliser,
j'ai fait la même chose.
J'ai vécu pour l'export.
Et j'ai dit, oh mon Dieu,
c'est ce que c'est.
Je n'avais pas eu le luxe de rassembler.
Mais si j'avais, je m'en ferais probablement.
Mais oui, exactement.
Quand vous passez par cette première layer,
je suis décliné de quelques ressources.
Les ressources ont des bâtissages.
Je dois donner des propéties.
Ce n'est pas si compliqué.
C'est juste tout ce extra goût
de propéties qui ont des valeurs défautes
ou des propéties qui ne sont pas les propéties
et qui ne sont jamais expérées
dans le premier endroit.
Et tout ce genre de garbage,
à moins avec Bicep,
nous sommes capables de reviser
ce que votre path de appartement est
et comment nous appréhendons le langage
et tout ce genre de choses
que nous n'avons pas vraiment
de la même manière avec les points armés.
Je vais dire que la chose que j'aime
de la même manière que d'autres alternatives
comme la terraforme
c'est juste le luxe de aussi
avoir le concept d'un fil de state.
Oui, oui.
La chose que je n'ai vraiment pas aimé
c'est de avoir trois ressources de vérité
c'est le meilleur de dire.
Exactement.
Donc avoir des files de configuration
que vous avez mis en place.
Le vrai environnement,
qui est en Asie,
mais aussi ce genre de choses
dans le milieu.
Donc trois ressources de vérité
de quelqu'un qui a mis le contrôle de la source
avant, quand vous avez trois ressources de vérité,
c'est là que vous avez des conflux de merges.
Oui.
Exactement.
C'est un bon bénéfice.
Je veux dire,
je me déconse que l'Asie
est comme une machine de machine
de dollars et de millions de dollars.
Je peux enlever le state
de l'Asie
à un point et
y avoir un environnement réel.
Et comme résultat,
nous n'avons pas besoin
d'avoir un state
dans le cadre d'une certaine
de la façon dont les alternatives sont.
Je pense que dans le sens de la
alternative,
parce que,
par exemple,
Terraform,
Azure est juste un provider.
Terraform files peuvent
déployer à Azure, AWS,
mais aussi des choses comme
Cloudflare.
Oui.
Donc je suppose que si vous avez
des choses à faire
que vous parlez de toutes ces choses,
peut-être que c'est une bonne
choice
et vous pouvez comprendre
pourquoi ils ont besoin
de ce file de state.
Mais je pense que si vous
parlez juste de Azure.
Oui.
Je vous donne un petit peek
sur ce qui est venu
dans le futur de Biceps
à un extent.
Nous pensons que nous pouvons
faire des choses
dans lesquelles on ne peut pas
faire un file de state.
Oh.
Quoi qu'on veut avec Biceps,
c'est de vous permettre
de compliquer ces scénarios
sur Azure.
C'est vraiment
notre goal.
Et dans les scénarios,
vous devez créer
des principles AD
et assigner des permissions.
Peut-être que vous devez
créer un groupe.
Et puis vous devez
déployer votre infrastructure,
peut-être avec ces identités.
Et puis vous devez
faire quelque chose
dans ce qu'on sometimes
appelle le plan de data
où vous devez déployer
les choses qui sont
dans votre site,
ou vous devez
ajouter des données
sur un account de storage
et ainsi.
Et donc,
nous voulons impliquer
quelque chose
pour vous accomplir
tout à l'heure
en Biceps,
mais encore,
vous devez bien sûr
qu'on n'a pas besoin
de file de state
et que nous sommes
une abstraction transparente
et tout ça.
C'est vraiment bien.
Un autre chose que j'aime
c'est la extension de code VS.
C'est une des choses
que,
en plus,
on joue avec Biceps,
c'est ça qui est
assez bien acheté.
Et je n'ai pas
vraiment le droit
d'avoir des supports
de snippets
mais même des choses
comme
l'intelligence
et la navigation
de la F12
entre les choses.
Mais oui,
je ne savais pas
que...
Il y avait quelques choses
qui se sont fait
un peu de research
qu'il y avait
et que je n'avais pas
existé comme le visualiser.
Je ne savais pas
que c'était un truc.
Et les snippets,
j'ai joué
avec Rez,
Hayfun,
et j'ai choisi
une table de ressources
et c'est là.
Oui.
Et maintenant,
nous avons un moyen
d'enlever des contributions
de ces snippets,
ce qui est vraiment bien.
Nous n'avons pas vraiment
eu ça avant.
Mais je vais me faire
faire un tour
poétiquement
sur la extension de la code VS
parce que je pense qu'il y a
quelque chose
d'intéressant
à parler.
Si c'est bien.
Oui, absolument.
Donc,
quand nous avons commencé
à regarder la landscapes
d'armes-templates,
Biceps n'était pas un truc
et nous voulions
faire des armes-templates
plus vides.
Donc,
une des choses
qui est un misnomur,
comme une main-chare
discrepanciée
avec armes-templates,
c'est que
même si ils sont
agris et difficiles
à utiliser et etc,
ils sont extrêmement
widely utilisés.
Donc,
par far,
c'est le plus populaire
de l'application
déclarative
pour déployer à l'Azure.
Donc, les tools
déclaratives
sont des templates
et des terraformes
et des farmacres
et tout.
Les armes-templates,
par far,
sont les plus
widely utilisées.
Et donc,
nous avons dit,
ok,
comment nous pouvons
faire des armes-templates
par la extension de code,
appelée armes-tools,
qui nous ont
parti
sur une année.
Nous avons ajouté
un syntaxe
qui nous a élevé,
nous avons ajouté
un peu d'intelligence.
Mais,
la réaction était
sur la walle,
que nous ne pouvions
que faire
beaucoup,
parce que le syntaxe
fondamental
était juste
difficile.
Avec Bicep,
et nous avons
des très bons conseils
depuis le début,
que si vous allez
faire un langage,
il y a des choses
qu'il faut vraiment
faire,
faire attention et
faire le bon travail.
Et l'une des choses
qui nous a fait
faire sure que
votre code compilier
et votre
tooling,
votre extension de code VSCO,
ou votre service de langage
sont
une base de code,
donc c'est
vrai de Bicep,
c'est juste une base de code.
Et que,
quand vous faites
un langage
pour la language,
il faut
pouvoir
faire gracefully.
Et il faut
pouvoir
faire une grande expérience
en tant que
ce que votre file est en
et que
quelle grande
language
fonctionne de cette façon,
C-Sharp, type script,
etc.,
vous devez pouvoir
faire
juste une ligne
et savoir que c'est
le mauvais et
faire le prochain
et faire le correctement.
Et ça,
finalement,
c'est le plus
difficile de créer une
language,
c'est de faire
gracefully
comme ça.
Mais,
tout ça
est pour dire
qu'on a payé
beaucoup d'attention
pour le tooling
et c'est vraiment
le plus concentrate
qu'on a
de la première fois,
c'est de faire
que votre expérience
arrive
comme un langage
c'est
juste comme un langage
C'est juste
comme C-Sharp
et type script
parce que nous
avons
un gars
qui a pu
nous
consulter
et nous donner
des bonnes
guides
sur comment
faire ces choses.
Vous avez
bien fait un bon travail
parce que
j'ai bien fait
un programme
et quand je l'utilise
en code VS
même si
c'est
l'infrastructure
donc c'est
un peu déclare
et vous avez
des blocs
il y a
encore un langage
en sens
que vous pouvez
déclare des variables
quand vous faites
dot,
vous avez un bon
intelligence,
vous avez
le linting
pour les squiggles
vous avez le F12
pour aller à la définition
il y a un peu
de programme
et c'est
juste une expérience
je pense que l'une des choses
que nous avons réalisé
plus et plus
comme nous avons
construit un bicep
c'est la décision
de construire
un langage programme
c'est quelque chose
qui nous a séparé
de la
autre
langage déclare
qui est
là-bas
c'est que
le tournage
était un
secondaire
dans les langages
déclare
c'est un simple
langage
c'est facile
vous pouvez le faire
en plus
mais
évidemment
ces choses
sont plus compliquées
et dès que vous avez
des expressions
et des variables
et des références
et tout ça
vous êtes
un langage programme
vous pouvez le dire
tout ce que vous voulez
mais c'est un langage programme
et donc
il faut vraiment être
construit
la décision
de construire un bicep
et les teams
pas de ma
habilité
mais
l'héritage
de la vision
est pourquoi
le tournage
a été
très bon
c'est-à-dire
que ça va devenir
plus comme un langage programme
parce que je pense
qu'il y a une autre alternative
dont on n'a pas mentionné
Pulumi
qui fait l'infrastructure
et vous êtes
en train de faire l'écart
vous voyez que le bicep
est ce que c'est maintenant
ou vous voyez
que ça va plus loin
dans cette route de langage programme
je pense que nous sommes
ouvert à un peu de choses différentes
je pense que
nous sommes
dans la landscape
c'est comme
nous sommes tous
tous en train de jouer
nous ne sommes pas sûrs
où tout va se placer
et donc
c'est bien de
avoir un bicep
c'est bien de
avoir un farmer
je sais que
vous avez vu Isaac
sur le podcast
son projet de farmer
est une approche
très intéressante
où il y a encore des compilations
dans un template
comme avec le bicep
et puis tout le temps
tout le temps
c'est quelque chose
comme Pulumi
où vous utilisez
quote-un-quote
la code réelle
on peut parler de la code réelle
mais vous utilisez
des langages imperatives
pour décrire votre infrastructure
et
la analyse
que je sometimes
utilise est comme
avec l'infrastructure
c'est la code
on est entre
HTML
CSS
JavaScript
dans le 90
de la programmation web
et React
on ne fait pas
un React
pour sûr
mais on est entre
ces deux choses
donc
il y a des expériments
et les gens vont essayer
de le faire
avec un twist
ou avec un twist
et finalement
il nous va
faire
quoi que ce soit
nirvana
pour la code
mais on est
en train
de jouer dans cet espace
c'est un long
moyen de répondre
oui, le bicep
peut s'évoluer
dans certaines manières
où c'est approprié
vous vous en pensez
que c'est un peu
un peu de tension
mais avant de commencer
la recording
j'ai mentionné les conferences d'Eddy
et il y a un
ddd redding
qui est venu
et ils sont juste en train
d'ouvrir un call for talks
et en fait
moi et les autres
ont été planir
faire un
code infrastructure
où je vais
parler de bicep
comme dans le même talk
je vais faire un bicep
quelqu'un d'autre
va faire
des plumes
quelqu'un d'autre va faire
des terraforms
et quelqu'un d'autre va faire
l'intro et les médiatèrent
et je pense maintenant
que c'est
un talk qu'on a
submit et qu'il va
devoir être voté
si on en fait
mais
ajouter un farmer
ça
serait vraiment intéressant
cool, c'est cool
oui, donc le
approche de farmer
est vraiment intéressante
aussi, parce que
vous utilisez
un code impératif
fonctionnel
en ce cas
pour
avoir votre
binary
qui est
un template armé
comme opposed
à
Pulumi
qui est
en train de faire
tous les appis
pour vous
donc ils sont
le temps de tour
qui va déployer
des ressources pour vous
le farmer
ne va pas
déployer des ressources
pour vous
c'est un sens
de transpire
qui est similaire
à bicep
où
il offre
la responsabilité
pour quelque chose
plus bas
dans le stack
qui est
le bon moyen
pour le
A.W.S.
il y a
quelque chose
qui est
un kit
de cloud
développement
farmer est
plus comme le CDK
que tout le monde
et que
le CDK
permet de
déployer
vos templates
en langage
en haut niveau
mais
ultimement
vous déployez
la formation
à la fin de la journée
c'est bon
c'est bien
qu'il y a
beaucoup d'expérimentation
et
beaucoup de gens
en essayant
beaucoup de choses
oui, c'est certain
je pense que
les aims
de l'Odion
d'utiliser ça
d'utiliser ça
les uns
vont
montrer
les autres solutions
pour que
l'Odion
puisse
les choisir
et voir
les exemples
de leur travail
et
comprendre
toutes les options
qu'ils ont
oui, exactement
je pense
que
celles qui
veulent comprendre
Azure
sont les plus
que vous pourrez
avoir des terraformes
ou de la pouloumi
ou de la farmer
ou de la bicep
je pense
que les choses
qui nous faisons bien
avec la bicep
sont les
les plateformes
dans un moyen
d'être plus facile
d'understand
il ne ressemble pas
comme des codes cryptiques
ok, c'est un ressource
c'est le type
de ressource que je veux
ici sont les propriétés
que je dois
et ça
se fait
dans un moyen
que je peux
croire
je pense que ça va
passer au visualiser
donc, je suis en train
de faire des extensions
pour un peu
de l'article
comme je disais
je l'ai seulement appris
qu'il y avait le visualiser
d'hier
mais je l'ai joué
avec la bicep
pendant quelques mois
mais mes bicep files
sont
qui sont débrouillées
dans différents modules
qui je suis sûr que nous pouvons
venir plus tard
donc je peux
faire un clic
et visualiser
un seul file de bicep
mais
est-ce qu'il y a de la façon
de visualiser
tous les files de bicep
ensemble?
parce que je pense
que, je vais retourner
à ce que vous vous dites
pour voir
comment votre architecture
s'est faite
et comment les bicep files
si je pouvais faire ça
et voir
comment ils se référent
dans un graph
je pense que ça serait
incroyable
je pense que ça fonctionne
je pense que aujourd'hui
si vous allez
faire votre bicep file
et visualiser
il devrait trouver
tous les modules
et expliquer
tout cela ensemble
et il va vous
faire des diagrams
autour de l'article
qui comprend
que c'est un module
je vais essayer ça
maintenant
parce que
quand j'ai essayé ça
ce matin
j'ai eu des enfants qui m'ont parlé
donc je vais
essayer ça
je vais essayer 30 secondes
peut-être
si je vais
prendre votre plus compliquée
je pense que le problème
et c'est un truc
que je vais planifier
en changeant
c'est que je suis
en train de
faire des
différents pipelines
d'Azure
pour chaque individu
je suis sûr
que ça ne serait pas bien
parce que
si je suis rééployé
l'architecture
dans un environnement
de brand-new
dans un environnement QA
d'un moment
je vais manualement
savoir
ce que je vais faire
pour que je fasse
les pipelines d'Azure
donc je pense
que je vais faire
juste une déployement
je pense que ça va aider
j'ai un autre projet
qui je ne suis pas sûr
de faire le même
je vais faire le même projet
qui est aussi utilisé
en Bicep
oh
ça
peut être un meilleur
oui, c'est ça
on va voir ceci
Open Visualiser
je vais être vraiment excité
j'espère que ça va
ou ça va se briser
et je vais être déçue
si vous avez juste ouvert
VS Code
et le service language
est encore en train
de commencer
le visualiser
parfois
se fait mal
ça a été bien
vous avez besoin
ça a été bien
oui, c'était juste
le service language
qui se met en place
donc maintenant je peux voir
oh, c'est sympa
je suis désolé
pour les listeners
qui ne peuvent pas le voir
mais peut-être
je vais inclure un shot de la scénarité
si il n'y a rien
de client sensibilisé
dans les notes de la show
mais ça est assez sympa
je peux voir
tous les modules
je pense que c'est
dans les groupes
et puis
je peux voir toutes les ressources
dans l'un de l'autre
et puis je peux voir
les écrans
qui sont dépendants
de qui sont les autres
c'est vraiment sympa
et je pense que la beauté
de quelque chose comme le visualiser
et je l'ai parlé
avant
les bénéfices
de la bicep
de la language
c'est que
ces services language
quand ils sont passés
sur votre code
ils sont allés
dans les syntaxes
et le syntaxe
c'est juste
les dressages de Windows
c'est tout le monde
il se termine
dans un modèle semantique
qui est
ce que vous entendez
dans les choses
qui sont déclarées
dans la language de programming
quand vous avez
le modèle semantique
vous pouvez visualiser
ça
vous pouvez faire des diagnostics
de ça
vous pouvez faire des choses
des millions de choses
et donc le visualiser
c'est
nous qui nous ont
déjà compris
sur votre file
et donc nous n'avons pas
de complexe
extra parsing
ou quelque chose comme ça
pour extracter cette information
qui par le fait
serait un
comme un délire
de riz
on
utilise la information
qu'on a
et donc
plus de choses comme ça
continuent de fallout
c'est pas
assez simple
et il y a un lot de travail
qui va dans un truc
comme le visualiser
mais
le point de départ
est tellement plus
en termes de qualité
que c'était
avec des templates armes
je pense que
avoir des dépendances naturelles
sur les choses
par exemple
les services armes
dépendent des plans de service
ou des bases de secret
dépendent des services de secret
et juste avoir
c'est
presque
naturellement
un graphiste
de hierarchy
de toute façon
oui, c'est comment
nous pouvons faire
des management de la dépendance
automatique
donc c'était
un template armes
que vous avez
pour les listeners
qui n'ont jamais
passé le pain
d'enlever des templates armes
vous avez dû
dire
que vous avez
le droit d'ordre
les choses
sont par la défaut
par défaut
avec des templates armes
mais si il y avait
une dépendance comme ça
vous devez savoir
et c'était
un source très commun
d'égociation
d'égociation
parce que vous pensez
que vous ne vous avez pas
déjà compris
ces relations
mais nous n'avons pas
et donc
avec BICEP
on comprend ces relations
et on a juste
éliminé
une grande classe
d'égociation
comme résultat
donc c'est un point
dans les templates armes
que vous avez
dû mettre les dépendances
et puis
régler le dépenis
ce sont les dépendances
qui sont dans BICEP
si vous vous référez
un autre ressource
puis BICEP
infuse cela pour vous
oui exactement
ces noms symboliques
de ces ressources
ces variables
si
à quel point
ces symboles sont référentes
nous savons
qu'il y a
une dépendance
plus une dépendance
et donc
quand nous émettons
le template armes
nous émettons
que ça dépend
d'informations
déjà émettées
donc les listeners
c'est un podcast audio
si vous n'avez pas
vu BICEP
je suis juste en train de regarder un file
maintenant
et un ressource général
il a l'air
il a le ressource
keyword
et puis il a un nom
qui
je vous referai
le nom symbolique
mais c'est
d'un point de développement
à l'aise
c'est comme un nom variable
il peut être
n'importe quel point
et puis il a
dans un string
c'est un type armes
qui est version
avec un date
mais ça
vient de l'armes
et puis vous avez
presque un bloc
avec tous les propriétés
mais
puis
ce nom variable
comme dans la langue de code
vous pouvez
utiliser ce nom variable
d'autre dans le file BICEP
et puis c'est
où vous avez le
intelligence dot
qui est vraiment sympa
oui exactement
ça a été le plus grand
comme
avoir ces symboles
ça fait tout le travail
parce que
ultimement
avec les templates armes
ou d'autres
codes de code
vous vous déclarent
un bunch de ressources
et vous vous vous portez
les ressources ensemble
et vous vous portez
les propriétés
d'une à l'autre
et c'est toujours
un exercice
très pain
dans les templates armes
pour savoir
les propriétés
parce que vous n'aurez pas
l'intelligence
mais aussi
validation
que le
exercice est fait
correctement
et puis les dépendances
et le
ordre d'exécution
correct
c'est tout un exercice
pour l'authors
et maintenant
ça
se fait très bien
vous pouvez
faire un état de flow
avec BICEP
très rapidement
c'est vraiment cool
donc on a mentionné
les modules
quelques fois
oui
pouvez-vous décrire
ce que les modules sont?
donc un module
est
simplement
un référence
à un autre BICEP
file
qui peut déployer
0
ou plus
ressources
alors
ceci est un autre
chose
et les templates armes
le second que vous voulez
c'est que vous voulez
c'est que vous voulez
c'est que vous voulez
c'est que vous voulez
c'est que vous voulez
c'est que vous voulez
vous voulez
multi file programming paradigm.
Oui, c'est un peu utile de regarder
où mes projets ont été utilisé pour les modules.
Mais l'un des exemples que j'ai,
c'est un API template.bicep.
Et dans cette architecture,
j'ai beaucoup de différents services de services app,
donc APIs.
Et j'ai une source de web app,
j'ai une source
qui est en train de s'adapter aux règles de file,
et tout dans cet API template,
une source qui est en train de s'adapter aux permissions de l'arbre,
une source de l'intégration vnet,
et tous ces sont dans cet API template.
Et c'est un pattern que tous les différents services app suivent.
Et puis j'ai un autre file de bicep qui s'appelle APIs.
Et puis c'est vraiment un petit bloc pour chaque API,
qui est référent en ce module.
Donc pour un développeur,
pensez-vous à un class, un class d'utilisation,
qui sait comment créer des services app.
Mais dans cet API.bicep,
j'ai juste des blocs très courtes,
des blocs de sync,
où je passe quelques paramètres,
comme le nom de la source,
quelques choses qui sont différentes de chaque API.
Et c'est juste pour ajouter un autre API,
qui a toutes ces intégration vnet
et toutes les différentes choses que je parle.
Je viens de copier et mettre ce bloc,
juste duplicer ce bloc,
et changer quelques des noms de propriété,
les paramètres, et c'est ça.
Donc juste d'être capable de capturer
ce bloc, c'est juste grand.
C'est de toute façon,
que, à un moment,
les modules sont en la même repository
que les files de bicep qui utilisent.
Est-ce qu'il y a une façon
pour que nous puissions partager ces modules ?
Pas aujourd'hui,
mais dans le...
Donc bicep est maintenant en release 0.4,
et nous travaillons sur le release 0.5.
Le principal,
0.5 ne va pas évoluer
jusqu'à un registre module
ou une histoire de sharing module.
Nous allons donc
présenter un registre public
de bons modules,
qui, si vous pensez à
déployer un VM,
si vous avez fait ça dans le port de l'Azure,
c'est très sur le terrain,
vous vous en avez seulement exposé
à un certain nombre de paramètres,
et beaucoup de cela est défaillé.
Vous pouvez penser que le registre public
a offert des choses comme un interface
donc Microsoft va maintenir
ceci et faire surement qu'ils soient de bonne qualité
et ce n'est pas. Et puis, on offert
l'oblité de faire des registres privés
si vous voulez que ce soit dans une organisation
ou si vous voulez que vous puissiez
faire votre propre registre public
vous pourrez faire ça aussi et offerter
cela à tout le monde. Je pense que
l'écosystème peut vraiment
commencer à exploser,
et je pense que nous sommes assez excitées
à la potentiel que cela va donner.
Ça va être vraiment bien.
Vous pouvez imaginer une grande communauté
autour de construire ces différents modules.
Qu'est-ce que ça pourrait être?
Est-ce que les modules qui ont été
séparés seront un file de bicep
ou est-ce que ça serait compilé
avant le hand?
Un DLL? Oui.
Exactement.
Avec le bicep, ce qui va être
dans le registre module est
un genre de special JSON.
Il y aura un template armé
avec extra metadata pour préserver
tout le type d'information.
C'est un déploiement
binary à ce point,
ou l'équivalent d'un DLL
à ce point. Ça fait du sens?
Oui. Je pense
que les choses comme Git et Dockern
sont des choses où vous avez un concept
de vous construire quelque chose, puis vous vous
vous plaiter à un registre, et puis
quelqu'un d'autre peut le plaiter.
C'est le même concept? Oui, exactement.
Nous allons ajouter un peu de commandes
pour le bicep CLI. Il y a un bicep
push qui va compilier
vos modules, le plaiter
dans le file JSON, et le plaiter
dans le registre que vous avez
configuré. Et puis il y a
des noms qui ne sont pas finis,
mais il y a un bicep restore
qui va vous plaiter dans les références
et les plaiter localement.
C'est cool, je l'ai juste dit
quand vous avez dit push and pull, et vous avez dit
que c'est peut-être ce qu'il va être.
Oui, on le verra. Tout le monde
s'est appénier quand il vient de ces sortes
de nombre, donc on verra ce qui se passe.
C'est presque comme si on avait
parlé de la nouvelle.
C'est un secret intel.
Je l'ai remarqué
que dans le bicepster 5
il y a deux modes
ou deux scopes de déployement.
Déployer un ressource
qui est ce que je fais en même temps.
Mais vous pouvez aussi déployer
une toute subscription.
Exactement.
Il y a des scopes
d'assures.
Au-delà de la template bicep
il y a le scope de ressource
comme vous l'avez dit,
le scope de subscription,
les scopes de ressource
vivent sous une scope de subscription.
Il y a aussi le scope de management
qui vous permet de grouper les subscriptions
et vous pouvez parenter
les groupes de management
dans d'autres groupes.
Il y a le scope de tenant.
Quand vous créez un nouveau groupe de management
il y a le scope de la ténète
et le bicep vous permet
de déployer tous les scopes.
Vous avez préempté une de mes questions
où je n'ai pas
eu de déployement de la ténète Azure AD
qui est en ce scope
que vous avez mentionné
les groupes de ressource ou les subscriptions.
C'est bien de savoir
que nous pouvons encore faire la ténète Azure AD
comme la registration.
Vous pouvez faire
des assignements et des définitions
de ce genre de choses.
C'est cool.
Je pense que j'ai juste regardé
le type de déployement
qui, quand je fais le déployement
je pense que c'est un update incrementaire.
Je crois que vous avez
un plus bas versus incrementaire.
Compli, plus bas vers incrementaire.
Compli, plus bas vers incrementaire.
Qu'est-ce que vous recommeniez ?
Parce que, en termes de recommandation,
il n'y a pas de la façon de délire les ressources.
Il n'y a pas.
Nous recommenons
le mode incrementaire.
Et nous ne recommenons pas le mode complet.
Il y a un peu d'histoire là-bas.
En Azure, vous pouvez seulement déployer
vos templates à un scope de ressource.
Donc, si vous regardez
des pipelines plus ou plus vieilles,
vous verrez qu'il y a un command
pour créer le groupe de ressource
et un command de déployer un déployement
à ce groupe de ressource.
C'est quand le mode complet est inventé
pour dire que,
si un ressource n'est pas représenté
dans le template,
mais c'est dans le groupe de ressource,
c'est en théorie
une indication que vous voulez délire le ressource.
Le problème est que le mode complet
n'est pas considéré
par le scope de ressource.
Donc, le second que vous vous entrez
dans des groupes de ressource,
le mode complet ne fonctionne pas.
Et donc,
ce que nous faisons,
c'est un truc qu'on travaille sur,
c'est le déployement de stacks,
qui vous permettra
de... C'est le mode complet V2.
Il vous permettra de délire les ressources
nativement avec des templates bicep
mais c'est un truc plus cohérent
dans la histoire de management,
en tant que plus ou plus grand de déployement.
On a un couple de publics,
des talks sur YouTube,
les détails de déployement de stacks,
et donc, nous sommes tous
allés à la bête pour commencer la préview.
Plus de reading pour moi.
Oui, oui, il y a beaucoup de choses.
C'est très, très cool.
Donc, un autre truc que j'ai bien aimé
dans ce truc, c'est que
c'est recommandé que les secrets
soient installés dans quelque chose comme le clé de clé.
Et en jouant, c'est comme ça,
je ne sais pas si c'est le bon mot,
mais quand vous faites des paramètres,
vous pouvez faire la séquence.
C'est la séquence?
Oui, la séquence. On appelle ces décorateurs,
mais je pense que beaucoup de gens ont des termes différents pour ces.
Oui, et ça a l'air comme ce que j'ai fait.
C'est comme si vous pouvez,
juste dans le code qui s'appelle
dans le module,
juste le secret et donner le nom secret.
Et ça fait juste de la magie pour vous.
Oui, c'était un bon addition.
C'est quelque chose que vous pouvez faire
dans les templates armés avec des déployements nestés.
Mais c'était un petit truc
pour faire tout ça. Et donc,
le function secret de secret est un addition
très bienvenu. Et ça a été
une contribution extrême.
Et c'est assez grand pour nous.
BISIP est un projet d'open source.
Je ne sais pas si on a expliqué ça explicitement,
parce que je pense que c'est des tables de table
pour ces trucs.
Mais c'est notre premier endeavour
sur notre équipe avec un projet d'open source.
Et pour voir la communauté
prendre ça en place et aider
les autres à la chute et la mettre en place
des PRs, comme ça,
le fonction secret est
totalement mindblown pour nous.
Et c'est vraiment incroyable de voir.
Je n'ai pas compris que c'était une contribution commune.
Un truc que j'aime
est que je l'ai remarqué que
Microsoft Learn a maintenant
un path en BISIP.
C'est vraiment drôle.
Donc, le team d'aujourd'hui, le team d'aujourd'hui
Microsoft Learn a juste été
la décolleur de la park.
Il y a beaucoup de content BISIP.
Il y a beaucoup plus de plan
qu'ils vont réélever.
Une question que je veux avoir, et je vais
utiliser ce podcast pour
répondre à mes propres choses.
Je n'ai pas de soucis, mais
il y a de la manière
que le prématiste va dans un module.
Il y a de la manière qu'il passe
dans un ressource actuel,
plutôt que un string, un int, etc.
Oui, donc,
on va donner contexte pour ceux
qui ne savent pas ce qu'on parle de.
Mais la réponse est oui,
en fait, mais pas aujourd'hui.
Donc aujourd'hui, quand vous déclarent un module,
vous devez déclare les paramètres
que vous passez dans un module
et que ces paramètres ne peuvent pas
être les prématistes.
Donc, un string dans un objectif,
etc.
Et à ce point, vous avez donné
votre information type de ce que vous
passez dans. Il pourrait être un ressource
et donc, vous devez replacer
cela avec un objectif et vous vous laissiez
d'informations type. Ou il pourrait être
une propriété de ressource.
Vous pouvez imaginer, comme,
un type de vm.sqs
que vous voulez passer dans et valider
et ainsi de suite.
C'est l'une des grandes laitiers
qui est très égale de vous assurer
que vous puissiez passer des ressources
dans un module, ou que vous puissiez
mettre un ressource dans un module
et préserver la type d'informations,
mais aussi, pour faire des propres
individuels et vraiment avoir la même histoire.
Bébé, on a
les fondations de
un système type très fort.
Il a beaucoup de DNA avec le système type type type.
Mais on n'a pas exposé
tout cela à la fin des utilisateurs.
Il y a beaucoup de choses que nous continuons
de exposer et de pouvoir
valider plus en plus en plus dans l'édit.
Oui, ça serait très bien.
Je ne veux pas dire que c'est un point de paix
parce que c'est un mot trop fort, mais c'est
une des choses que
plusieurs fois, je me suis trouvé
en train de faire. Comme, pour exemple,
aller vers le template API,
dans ceci, je suis en train
d'utiliser un ressource de l'insights
et je suis en train de utiliser les syntaxes existants.
Pour les listeners, quand vous faites
un ressource de l'insights, comme nous l'avons
déjà dit, vous pouvez le faire
avec l'existence et, plutôt que de
créer un nouveau, vous avez juste un référence
pour l'existence existante.
Je suis en train de passer en id
ou le nom comme un paramètre
pour que je puisse faire l'existence existante
pour que, si le file BISEP
s'occupe de l'module, on peut
passer la ressource au site app Insights
itself.
Ça me saved moi de faire ça.
Exactement. C'est tout le
cérémonie et la plate de boiler.
On veut vraiment
faire ça. Et ça
va faire le toulon d'expérience beaucoup mieux.
Parce que, après, vous pouvez faire
le access dot property dans le module
par passer la ressource.
Je pense que le autre chose que j'ai
une grande éducation sur, c'est
la valeur du système type
et de la sécurité type.
C'est vraiment
juste pour l'expérience d'étoil
et de la validation.
Et donc, maintenant,
on est toujours en train de faire des features
où on peut ajouter plus de sécurité type, plus de validation.
Et c'est un grand point.
Il va être comme le night and day
avant et après la release.
Il va vraiment changer les capacités
de BISEP
et de mettre les fingertips.
Avec la validation,
juste d'un code de lintes perspective
en VS, si j'ai un
variable qui n'est pas utilisé
je vais avoir le squiggly qui me dit
si j'ai un parameter qui n'est pas utilisé
ou si je me sens
que c'est vraiment difficile de faire quelque chose d'inconvénient
sans le dire.
Oui, nous avons recently
commencé à collecter des telemetries
tout anonymés, bien sûr, mais
d'entendre si vous utilisez BISEP
quelle est votre rate de défaut
versus si vous utilisez des templates armes
quelle est votre rate de défaut.
Il y a un peu de bias parce que
les gens qui viennent à BISEP
sont déjà plus avancés
et tout ça, mais
la rate de défaut a vraiment
créé, je pense, beaucoup plus que nous
nous espérons.
Donc maintenant, c'est en train de faire 3%
parce que nous nous sommes en train de
mettre plus en compte dans l'édit.
Mais il y a encore beaucoup d'opportunités
pour continuer à lowering cette rate.
Oui, c'est certain. Vous avez mentionné
que avant la fois que je l'ai loadsé
sur VS Code et vous avez mentionné
que la version de BISEP est la service de langage.
Ça veut dire que
la version de langage
qui a été launchée, ça veut dire
que les idées d'autres
visu studio peuvent
mettre cela en place et avoir
la même expérience de user
en utilisant BISEP files dans ces idées?
Oui, vous êtes un fan de writer, non?
Absolument.
C'est l'une des premières choses que vous avez dit
que vous devez avoir du support de writer.
Oui, vous avez
détenu.
On a battu le mais survivant.
Les propositions de language
pou Kauf-G Tip
Ils ont dev leads
Des brefcis
des points��
de démonstration
Pour le code VS, il y a un layer de type type thin
qui s'appelle le service de langue.
C'est la communication.
Mais c'est un package qui est en dessous de l'exploitation.
Et ça peut être utilisé dans d'autres éditors.
Nous avons seulement créé une support pour le code VS,
mais la fondation est là pour le mettre dans d'autres édits.
Les gens ont mis ça dans NeoVim,
ce qui n'est pas le cas.
Si ça peut être en NeoVim, ça peut se faire.
C'est pas de la même manière.
C'est très cool de voir ça.
J'espère que on va pouvoir mettre ça dans d'autres éditors
et dans d'autres classes de la première classe.
Je crois que, à un point de vue de dotnet,
un service de langue comme ça est omnisharp.
Si vous faites dotnet dans le code VS,
ça automatique le fait.
Je pense qu'il y a une extension c-sharp.
Je ne sais pas si ça a été construit
ou si j'ai juste installé ça et que je n'ai pas oublié.
Mais ça, le launch est omnisharp,
c'est un service de langue.
Et comme vous l'avez mentionné,
vous pouvez faire dotnet dans Vim
et faire un sens intelligent.
C'est juste de communiquer avec ce service de langue.
Ça vous permet de lever les édits différents.
Mais encore ça, c'est pas un ID, mais un experience de l'ID.
C'est un bon spec.
C'est pourquoi je vais faire la définition,
et on va travailler avec les éditors.
C'est tout code dans le spec et on va juste le mettre.
Et ça nous donne un bon liste de choses à faire.
Vous pouvez vérifier les choses dans le spec de langue
et vous avez bien fait ça.
C'est cool. Je me suis vraiment regardé pour le soutien de la rider.
Vous pouvez le construire.
Je ne sais pas ce que leur contribution de communauté est,
le modèle est pour le rider,
mais ça ne devrait pas être trop difficile pour le task, j'espère.
Il y a un problème avec ça.
Le temps.
Oui, c'est vrai.
Le plus preuve ressource.
Oh non,
je dois s'éteindre très rapidement
pour faire des choses comme le podcast user group.
Les enfants, les enfants aussi.
Je dois les mettre à la liste de priorités.
Oui, oui.
Je n'ai pas encore des enfants,
je fais juste le dogue.
Et ça s'envole beaucoup de temps,
donc je peux toujours imaginer ce qu'il y a avec les enfants.
J'ai été dit que un dogue
est comme un autre enfant.
Donc...
Des membres de famille,
un a des twins,
j'ai deux enfants,
et quand je visite,
c'est une forme de bourse de vie.
C'est comme, OK, je ne suis pas assez prêt pour ça.
Ça va être trop trop tôt,
je vais le garder plus tôt,
mais c'est en train de changer de vie,
et je ne pourrais pas changer de vie
parce que j'aime les deux bêtes.
C'est ce que tout le monde dit.
Mais je n'ai pas apprécié
combien de temps j'ai eu avant.
Oui.
Je ne sais pas ce que j'ai fait
avec tout ce temps, honnêtement.
Oui.
Mais en tout cas,
on devrait probablement aller au sujet.
Donc, est-ce que nous n'avons pas déjà parlé
sur la route de bicep ?
On a parlé de la registre module,
ce qui est le plus grand.
On a parlé de la référence de la base,
et d'expander les types de liste
que vous avez accès à.
C'est un grand.
Et on a touché sur
ce que nous appelons de la bicep extensibilité,
qui est l'obligation
pour le temps de bicep
pour les déploiements.
Donc, des benefits de bicep
pour parler de autres
sets d'applications,
d'autres applications d'armes.
Et donc, on va pouvoir parler
de Microsoft Graph,
on va pouvoir parler de Kubernetes,
et on peut expérer les listes
d'ici, mais on veut commencer
avec le petit liste,
et faire sure que c'est travaillé
comme prévu.
C'est très cool.
Donc, avant de passer à des tips de déploiements,
est-ce qu'il y a quelque chose
qu'on pourrait aimer ?
On peut parler de la renaissance de dotnet
et de renaissance de dotnet,
et de comment ça a aidé
le projet de bicep.
On peut parler de ça ?
On peut.
Comment on a toujours eu ?
Oui, c'est vrai.
Je veux dire,
mon visage
au monde de dotnet
était si naïve,
et c'est encore très naïve.
Mais je n'ai pas construit un site
pour ma mère
dans ASP.net,
et c'était mon exposition
à dotnet.
Et je me suis dit
« Je ne veux pas faire ça anymore. »
Je veux utiliser un de les nouveaux
nouvelles frameworks de web
et faire plus de JavaScript.
Et donc, j'ai évoqué ça.
Et puis, quand nous commençons
le projet de bicep,
nous avons pris beaucoup de temps
à évaluer
ce que l'anglais est-ce qu'on va utiliser ?
Toutes nos ingénieurs
sont très familles
avec dotnet.
La plupart de nos services
sont évoquées dans dotnet.
Mais il y a un problème
de la « wingering »
de ne pas avoir
tout le temps à installer
dotnet.
Et aller tout à l'heure.
Et puis,
un, dotnet
maintenant s'étend à XOS,
donc ce n'était pas un problème.
Mais deux,
ce magique
de single file
que vous avez maintenant
dans dotnet
a totalement fait le projet
réaliste.
Parce que ça a permis
tous nos ingénieurs
de utiliser l'anglais
qu'ils étaient plus amoureux
mais qu'ils soient
encore un binary natif
qui a permis de installer
le coI
très facile.
Et donc,
j'ai juste été
totalement déçue
par le système dotnet
et la variety d'options
que vous avez à votre disposal.
Et comme,
personne ne sait
que nous utilisons dotnet.
Ce n'est pas comme un truc
qu'on doit expliquer à les gens.
Ça tout juste fonctionne.
Donc, ça a été magique
et ça a été mon expérience
avec dotnet.
Oui, c'est scachant
comment le dotnet
s'évolue.
Et ça se dévient plus
parce que vous avez mentionné
que c'est une plateforme
donc le dotnet peut se faire
d'une manière ou d'autre
sur votre watch.
C'est un des devices IoT
Windows Linux.
Mais ce n'est pas juste
sur le système d'opérations
mais aussi sur la plateforme.
Donc, vous pouvez faire
des websites dans dotnet.
Vous pouvez faire des applications
sur dotnet.
Vous avez un Xamarin
qui est maintenant
rebranché sur le dotnet.
Maui.
Vous avez un Blazer
donc vous pouvez faire
des front-end dans le browser.
Vous avez mentionné
React earlier
mais Blazer est un
alternatif
pour React Angle
View, ce genre de choses.
En utilisant WebAssembly
et en juste
en juste en roulant dans le browser
vous pouvez faire le dotnet
dans le browser.
Blazer Desktop
vous pouvez faire des applications
sur la plateforme
en utilisant les components Blazer.
Donc, le même modèle de programme
que les websites
en forme expérimentale
il y a Blazer Mobile.
Donc, en utilisant
le même code de paradigm
vous pouvez faire
des applications mobile.
Et ce nouveau dotnet
Maui qui est
comme un Xamarin
le même que
WPF
ce genre de choses.
Mais vous pouvez aussi
emberter les components Blazer
dans cela aussi.
Donc, vous pouvez avoir
une mix de hybrid.
Donc, c'est un
plateforme cross
c'est une source en ouvert
vous avez mentionné
c'est une source en ouvert
pour une longue période.
Mais je pense que
beaucoup de gens
au-delà de la place
ne savent pas
pas que c'est une plateforme cross
et que c'est une source en ouvert
C'est une nouvelle chose
que je parlais de.
Oui, et c'est incroyable
pour moi
d'avoir
un écosystème
qui a encore
beaucoup d'opportunités
devant ça.
Et comme tous les
pièces fondamentales
sont bien mises correctement
pour juste
acheter
ce dotnet
au monde
et tous les outils
là
et les communautés
là
et les écosystèmes
là
et donc c'est juste
c'est juste incroyable
je continue de
être
allé de l'autre.
Oui, c'est un bon
temps
d'être
un développeur.
Oui, oui,
pour sûr.
Donc,
shall we do
dev tips?
Sure,
shall I just go?
Go for it.
OK.
I think I was thinking about it.
So I mean,
I'm a lowly PM.
I just make power points
and word documents all day.
And I never really develop
outside of, you know,
I spent a lot of time developing
bicep code
at this point.
But I guess my tip
for someone like me
or for maybe anybody
is like
to really
get your hands dirty
on all the
like the world,
like the amount of options
that are out there
for doing everything
and trying to be
empathetic with where
people are coming from
and what frameworks
they're using
and all that sort of stuff.
Just like
do your best to kick the tires
with all these really
weird and wacky alternatives
for doing all these things.
I worked like
a little bit on a startup
at one point
it didn't end up going anywhere.
But I was able to do like
real like boots on the ground
front end web development
and work closely
with a back end engineer
and that totally taught me
for real
what my engineers
are doing every day
and I was able to be
way more empathetic
and I think
communicate more effectively
with them
by really understanding
what's going on back there.
So to the extent that
you can get out of your comfort zone
and try something
that maybe your stakeholders care about
but you don't care about
try to do those things.
I really like the phrase you used then
about getting your hands dirty
because
I talked that I did quite a few years ago
on developer productivity.
One of the sections
I was talking about learning
and I was comparing
a developer
that's been developing
for 20, 25 years
for the same company
writing the same code base
doing the same day
for 20 years.
And if you compare that developer
with a developer
that's only been developing
for two years
but plays around
with different technologies
has hobby projects
does lots of reading
books, blog posts
play all site courses
listen to podcasts
and just plays with different technologies
learn different paradigms
that two year developer
it's way more experience
than that 20 year developer.
And it's just so important
to just play around
and learn
and not just do
what your day job demands
which for a lot of people
is the same day in day out.
Right.
And I think
I do want to be sensitive
to like not everyone has
the luxury of time
to be able to
do a weekend project
or here and there
and I think I'm very lucky
at Microsoft
they offer us time
just to learn
so a regular day of the week
when we can try something new.
So we carve out time for it
which is really, really something
but you're exactly right.
I mean, if you can get
you know, try
to get out of your comfort zone
and make the time for it.
It just
it opens up the world to you.
You just see a lot of different
ways of doing things
that you hadn't even considered.
Yeah, definitely.
And you're right to call me upon that
because it's true
that a lot of people don't have the time
and if there's anyone
that's a business
owned that's listening
also take that point
that what Alex made about
giving your staff
time to actually learn
because your
your employees will be happier
because they're learning new stuff.
So they're less likely to move on
and find somewhere else
and they'll be better developers.
So you will have a better quality
of code being produced.
Yeah, exactly.
Yep, 100%.
So my dev tip is
another Visual Studio Code extension
and this one's called Code Tour.
Now, I
I've heard about this a few times,
but I got prompted to relook at it
after hearing about it
on the Merge Conflict podcast,
which I will link to
that episode in the show notes
because obviously credit where credit's due.
I had a player on with this this morning, actually.
And so it's a VS Code extension,
which you can click a button
saying start recording
and you can click on a particular line of code
and you get an overlay
where you can type in a comment
and then you're basically adding a step to the tour
and this takes markdown
so you can put codes nippets
if you want in there or a general discussion.
And then once you add that step to the tour,
you can then click on another bit of your code
and do the same again
until you've gone through
effectively creating a wizard,
so a code tour
explaining new developers
that are coming to your code base,
how it works.
And then this gets stored as a JSON file
which you can put in your Git repository
and they can go
and then they can treat it like a wizard.
So it's almost documenting like a story.
Click next, next, next
and they're being talked through
how the code base works.
And I thought this was a really nice idea,
so I'm going to start using it for a few of my projects.
Nice.
Did you go through the end to end
and set up a tutorial?
A lot of my playing around was adding new step to tour,
randomly hitting keys on the keyboard,
ad step,
find another random bit of code
just because of playing around with it.
But I was kind of like trying to picture
what it would be like if I was doing it.
But I've not yet actually done
like a real live tutorial,
but I'll definitely will be doing.
Nice.
And so I'll include a link to this in the show.
But I thought it was just a really nice idea
and a really nice way of
introducing new developers to a code base
and giving them a tour.
Yeah, it's so cool.
Someone shared it with us
and we do, we have this exact problem
and we actually just recently added
four new maintainers to the BISEP project
and they have this exact problem, right?
They want to know about the project,
they want to contribute more.
And so we're now thinking about adding a code tour.
So it is a very cool tool for sure.
And that's a good point
because you mentioned earlier
that BISEP was open source.
So this sounds ideal for open source projects
where you want people to get involved and help,
but you don't have the time to teach
on-goingly, answer lots of questions.
It's just a really good way of documenting as a story.
Yeah, yeah, exactly.
Cool.
So where's the best place for listeners
to learn more about BISEP, reach out to you?
So you can, there's like a BISEP hub
on Microsoft Docs right now.
So if you search BISEP MS docs,
you'll reach our documentation hub.
You can go to the repo
where you can file issues
and really get kind of deeper
into the BISEP community.
So github.com slash azure slash bicep.
We have a Twitter account for BISEP.
It's at BISEP LANG.
And if you want to reach me,
specifically it's a.frank on Twitter
is a good way to reach me as well.
I can say that from past experience,
you've been super fast at replying
to Twitter DMs and things.
Yeah, I love that
because then it's hard to get people
who are like really in the thick of it.
And so when you or anyone else comes to me
with like, here's exactly what I'm doing,
here's the code, please help.
It's really, I always learn a lot from that process
as I did with what you shared with us.
And we actually got an improvement done,
which is like a miracle in Azure.
So it worked, which is very nice.
I really enjoyed that.
So for the listeners benefit,
there was an issue I was getting
and it wasn't actually a BISEP issue.
It was more an app services issue.
It was like you probably have the same thing
with ARM templates.
So I brought this up with Alex
and then after a bit of backwards and forwarding,
we ended up having a call with the Microsoft team
that are actually working on the app service.
You can say better who was in the meeting.
But for me, it was kind of a bit surreal
and almost a bit of imposter syndrome
because I'm in a call explaining the issue
and sharing my screen and sharing code
and explaining what I thought the problem was
with the engineers that are actually working
on Azure app service.
So that was quite surreal for me.
Nice.
Yeah, and you know, one is,
we're not all one team.
So when you have an Azure problem,
it's usually across five or six different teams
for any given problem.
So it's helpful to get all of us in the room together.
And two, there are so many different touch points
to the experiences that we're providing,
to the APIs that we're putting out into the world.
So there are endless like enumerations
and combinations of ways that you can interact
with app service or Key Vault or you name it.
And so when you come to us,
it's definitely not imposter syndrome.
It's really, I went through this path
and maybe the app service team
didn't see this exact path before.
And so it really does help us ground ourselves
and understand, okay, we thought it was gonna be used this way,
but it's actually being used that way.
How can we adjust accordingly and make it work?
Absolutely, yeah, really awesome.
So is there anything else before we wrap up
that you want to mention?
No, no, this was an awesome experience.
I think we've covered an awful lot.
So a really big thank you, Alex, for joining us.
It's been amazing having you on.
Thank you again for having me with a lot of fun.
Ah, you're most welcome.
And thank you everyone for listening.
A quick reminder that this podcast is sponsored by Evestac,
which is my own company providing software development
and consultation services.
For more information, visit evestac.com.
And if you enjoy the podcast,
please do help me spread the word on social media.
I normally use the hashtag unhandled exception.
And I can be found on Twitter at Dracan, D-R-A-C-A-N.
And my DMs are open.
And my blog, DanClock.com,
has links to all my social stuff too.
And as usual, we will include links to all the things
we've mentioned today in the show notes,
which can be found on unhandledexceptionpodcast.com.
Episode suivant:
Les infos glanées
TheUnhandledExceptionPodcast
Tags
Jetbrains Rider, Code With Me, and more!