
Serverless, AWS, and .NET - with James Eastham
Durée: 62m15s
Date de sortie: 14/03/2024
In this episode I was joined by James Eastham to initially to chat about AWS and Serverless with .NET… but we ended up covering a whole lot more! We chatted about OpenTelemetry, Kubernetes, Rust, and our Dometrain courses too!James Eastham is a Senior Cloud Architect at Amazon Web Services and content creator. He has over 10 years of experience in software, at all layers of the application stack. He has worked in front-line support, database administration, backend development and now works w...
Avant de l'entraîner dans l'épisode, j'ai eu des news d'excité.
J'ai juste évoqué mon deuxième cours sur Dohm train.
Le premier cours était sur Docker, qui a été évoqué l'année dernière.
Et ceci est sur Kubernetes. C'est un cours de 6 heures qui est
récompensé avec des demos tout le monde. Les demos sont super
facile à suivre avec tous les scripts et les files de YAML.
Le cours commence avec la base de comment interagir avec Kubernetes,
des notes, des podcasts, des déploiements, des services et de l'autre.
Ensuite, en cours, nous nous allons au sujet plus avancé,
comme Helm, des services, des opérateurs et d'autres.
Et comme l'écoute du podcast, vous avez 20% de l'offre si vous utilisez le code
de discount, poddan, qui est tout un mot, tout un cas.
Et vous pouvez le trouver sur DohmTrain.com,
avec des tonnes d'autres courses de qualité.
Maintenant, on va voir le show.
Merci d'avoir regardé.
Merci d'avoir regardé.
C'est cool d'être ici, même si on a compris que je ne suis pas dans le
discours de discount, qui met mon liste de listeners et des
status pour Helm.
Je suis désolé pour ça.
Je sais, j'ai été très profond.
C'est donc que vous devez être.
Je suis très profond.
Je vais vous trouver pour vous inviter à la rume.
Je pense que c'est moi qui n'a pas l'air de utiliser le discours.
C'est comme, où est James ?
C'est comme, il n'est pas dans le...
Non, n'importe quoi.
N'importe quoi.
Donc, avant de nous parler de AWS et de plusieurs,
vous pouvez vous interagir les listeners et vous dire un peu de
ce que vous faites ?
Absolument.
Oui, donc je suis James Eastam.
Mon nom officiel à AWS est un architecte de cloud senior.
Ce qui veut dire que je suis dans la service professionnelle
de l'AWS.
Donc je travaille beaucoup comme d'autres consultants.
Je engage avec les clients,
en ayant les choses à l'AWS.
Le type de client que nous voulons avec l'AWS est évidemment
le plus grand,
les clients de la scale.
C'est vraiment intéressant.
Il y a beaucoup de choses très très très très très très très très très très très
intéressantes.
Avant AWS, mon nom est DotNet Development.
C'est donc moi qui suis un écarté de cet podcast,
bien sûr.
Je suis un peu un développe d'accident.net,
dans lequel j'ai quitté la collège,
la collège qui était juste avant l'université,
ici dans l'Union, pour quelqu'un qui n'était pas dans l'Union.
Et je n'ai pas vraiment de quoi faire avec moi-même.
Donc j'ai enduré la support en frontline pour une
IT-compagnie.
Le système était construit sur DotNet et le service SQL.
Et c'était comme, je pouvais soutenir le customer
mieux si je l'ai appris comment faire ce code.
Et je pense que c'est un peu plus de la route typique
dans la tech,
comme sur le campus,
l'instagrétisme d'un computier,
qui est à l'international,
en termes d'être un développeur.
Et oui, donc dans l'UNIBS,
comme sur le service,
avec mon background DotNet,
je fais beaucoup de travail
sur le service et le dotnet.
Donc c'est en travaillant avec des choses comme Lambda,
en travaillant sur le...
en travaillant sur le run-time dotnet,
mais en aidant de publiciser le run-time dotnet,
en aidant de les gens utiliser
le dotnet et le service et le service
dans la meilleure possible façon.
Donc c'est l'autre...
Comme je l'ai dit,
je suis un consultant par jour,
par nuit,
je suis un advocate de developer de service dotnet.
Développeur advocate,
pour le bon nom de la façon dont j'ai mis le nom.
Tu es dormi dans ça ?
Oui, je le fais,
je trouve que je suis vraiment brutal
avec mon time management,
donc je trouve que j'ai essayé de faire des choses,
faire des choses pour toutes ces choses,
de toute façon.
Oh, tu fais tout ça,
ce n'est pas time boxing,
ce que l'on appelle,
time blocking,
c'est ça ?
Oui, il y a un whole processus
derrière,
donc le bout de semaine,
je vais bloquer mon prochain week,
le bout de jour,
je vais changer de temps si je dois.
Ça inclure un exercice
de tournage,
je fais des ultramarithmes,
donc...
Oh, c'est beau.
C'est beau.
C'est comme ça,
c'est aussi dans le bout,
il y a un peu de catholique.
Donc mon calendrier a l'air de l'absolute carnet,
je vais aller en haut et je vais dire
ho ho ho,
j'ai un peu de l'air.
Oui,
je suis très somme,
parce que je mets tout dans mon calendrier Google,
mais je utilise un tour called Krone,
qui utilise le calendrier Google
à la fin de l'arrivée,
et c'est tellement fort,
il y a beaucoup de shortcuts,
et tout,
et tu peux remettre
un multi-select
et faire toutes les choses,
et ça c'est génial pour le temps bloqué.
Ok.
Donc je fais très simple,
je mets le gym là,
je mets le temps avec les enfants,
et tout est bloqué.
Qu'est-ce que ça s'appelle?
Krone.
Oui.
Krone, calendrier.
Bien,
ok,
il y a un.
Cool.
Ça peut être mon dev-tip,
j'ai fait ça avant.
Oui,
c'est bien.
Donc,
je pense que,
où commencer,
je pense que c'est important de dire
que mon background est Azure,
et j'ai pas l'expérience de AWS.
Je pense qu'il y a beaucoup de mappings,
mais comme Azure Functions
versus AWS Lambda.
Oui,
oui, absolument,
il y a des choses,
je pense que c'est la même
pour tous les providers de cloud.
Je pense que beaucoup de eux
sont en train de faire les mêmes blocs
de la façon un peu différente,
avec des features un peu différente,
mais oui,
vous pouvez faire des choses similaires.
Oui,
comme les functions,
Google,
Google,
et c'est pas Google Cloud Run.
Est-ce que c'est Google Cloud Functions?
Je ne me souviens pas,
Google a une forme similare,
un type d'offre de function aussi.
Je ne suis pas sûr d'être honnête,
je suis pas sûr de être honnête,
je savais pas de AWS Lambda,
je ne sais pas,
je ne sais pas de la diversité de Google,
par contre,
les services de Google,
c'est ce que les services différents sont.
Oui,
je ne sais pas beaucoup de Google,
je ne sais pas beaucoup de Google,
je l'ai fait un peu de travail
comme vous dans le passé,
donc conceptuellement,
je n'ai pas utilisé les services de l'app
comme les functions de l'app
c'est l'autre,
mais oui,
AWS est la place où j'ai spenté
la plupart de ma vie.
Bien, bien,
oui,
je pense que je vais en parler
sur les parallèles,
parce que je ne sais pas
que les services AWS sont les mêmes.
Et je vais essayer de faire la même chose,
je vais essayer de faire la même chose
en parlant si je sais
que les services parallèles
sont les mêmes,
je vais essayer de maître ça,
de toute façon.
C'est bien.
Donc,
je pense que la plupart des listeners
probablement
savent que les termes
se sont utilisés
mais juste en cas de case,
c'est comme la définition du currently,
je pense que la phrase
quelqu'un d'autre de la service
a déjà été pinché
par le nom de Cloud,
je pense.
Oui,
je pense que
c'est en train de se dire
plus et plus élevé,
je pense que le nom de service,
c'est comme si tout se soit
en train de se dire
que le nom de service
que le nom de service
est comme un spectrum,
si vous voulez,
où,
à l'un des endroits
du spectrum,
vous avez un service
comme possible,
ce qui est où vous avez
peu à peu de operation
ou beaucoup d'élevé.
Donc, c'est quelque chose de l'amendement,
où vous vous vous arrêtez,
vous vous vous mettez,
vous vous vous mettez,
et AWS vous vous donne tout.
L'autre end de la spectrum
est, vous savez,
un service sous votre desk.
C'est inservable,
parce que vous avez
toutes les responsabilités
de la operation,
et puis vous vous vous vous vous vous vous vous vous vous
vous vousvisionne et le novice
si ça n'est pas inservable,
si c'est pas skipped ou
si ça n'est pas été
aspéré et
je pense translations
baskets
bleats
Lost
2
щ
et puis, avancer de cela si vous avez besoin.
Donc, on va dire que vous avez un
machine learning workload, un workload où vous avez besoin d'un GPU.
Bien, avec Lambda, vous pouvez
ajouter un GPU, vous contrôlez le CPU
et la mémoire et c'est ça.
Donc, à ce point, vous devriez
avancer à
peut-être des Kubernetes et vous vous
vous faites un raw, des EC2 instances,
des VMs et des machines virtuales
sur Azure pour vous donner le GPU,
mais pour certaines autres places
dans votre système, vous utilisez Lambda
parce que vous n'avez pas besoin d'un GPU.
Vous avez besoin d'un GPU, vous vous faites
plus de services, vous avez moins d'opportunités de responsabilité.
Comment ça fonctionne ? Je sais que vous avez
mentionné un GPU et des choses, mais
si vous avez besoin d'une application
d'entreprise et que vous avez besoin de votre fonction
pour être part de votre networks privés,
presumably, vous avez besoin, il ne peut pas être
de services.
Oui, donc, c'est un de les
réputés qui est intéressant.
Je l'ai parlé de quelques groupes
sur la user group, donc je l'ai fait un petit
peu d'essayer de comprendre comment les functions
Azure ont travaillé pour apporter à Lambda.
Et je pense que la networking est une des
grandes différences fondamentales pour comment
Lambda et Azure functions diffusent.
Donc, avec Lambda, quand vous connectez
à une networks, quand vous déploie
votre fonction, vous vous specifyz
un subnet que vous voulez attaquer votre fonction
à. Et sous la coute, Lambda nous
crée une interface de networks entre
la networks de Lambda où la fonction est
en fait exécutée et votre
propre networks. Donc Lambda
fonctionne exactement de la même manière.
Vous avez toujours la même scale, vous avez
la même responsabilité d'opération exacte, c'est
que l'agresse de votre fonction
va routier par votre networks, en tant que
routier à la suite de la networks de Lambda
à la suite de l'internet public.
Donc, il n'y a pas de
additionnel cost de faire ça, il n'y a pas
d' additionnel overhead, vous vous disiez
que je veux cette fonction
attaquer à cette networks et ça le fait.
La première fois que vous déploiez la fonction,
ça fait longtemps car ça crée la interface
et les attachments, mais il n'y a pas
plus d'option de overhead.
Quand vous dites que la première fois que ça crée la fonction,
ça inclure si vous avez un call start
aussi. Non, non, non, non.
Historiquement, peut-être
4 ou 5 ans auparavant,
si vous avez une fonction attaquée à un
network, vous avez été impacté sur le call start,
maintenant c'est presque negligible.
Je n'ai jamais vu de la différence,
si vous êtes attaqué à un VPC ou pas,
votre call start va être
à peu près la même. Non, c'est vraiment
bon, car il a été un peu plus longtemps, même en Asie,
depuis que j'ai fait les functions d'Asie,
car je fais beaucoup de Kubernetes maintenant.
Et quand je l'ai regardé,
c'était exactement ça.
Ils ont un plan de service app,
et vous pouvez choisir les functions d'Asia
ou si c'est la consommation,
ou si c'est une plan de service app
qui vous aurez des vms spécifiques
derrière vous. Et vous ne pouvez pas
faire le plan de consommation
et l'attaché à un Vnet.
Oui, ok, intéressant.
Je ne veux pas dire que c'est pas
ce que c'est maintenant, mais c'est un
problème pour moi, car beaucoup de mes clients
veulent un private.
Donc, vous avez terminé de ne pas
utiliser les functions d'Asia, mais pas
d'assertir et de
avoir des vms spécifiques
derrière vous sur le plan de service app.
Et puis, si vous faites ça,
je ne sais pas si vous...
Je vous remercie, vous pouvez aussi
utiliser un service app,
et oui, je vous remercie.
Et c'est, encore une fois,
l'intervention de l'amplif,
l'behaviour de l'amplif,
en termes de la scale, les rouges,
et les rouges, c'est exactement
le même.
Si vous avez l'attaché à un VPC,
ou pas, ou la configuration de la membre,
vous pouvez également utiliser des
features de l'amplif, comme la convention
de la compréhension, qui vous permet
d'assurer un environnement
disponible à chaque fois.
Je pense que si nous allons
prendre un second step pour un second,
en termes de la façon dont l'amplif
fonctionne, parce que je pense qu'il y a
des différences avec la façon dont l'amplif
fonctionne, et c'est le service qui va
décider d'execuer votre code.
Et il va regarder et dire, ok,
j'ai un environnement disponible
pour cette version de code de dance.
Et si l'answer à cette question est non,
ce que ça va faire, c'est qu'il va créer
un micro-VM, ça va se spinning
comme un container isolé.
Ça va booster le temps de la run,
ça va déloyer votre code de fonction,
un filet de container,
et ensuite, ça va faire le phase
de la construction, qui va initialiser
votre class de point de vue.
Et ensuite, il va pouvoir réagir la fonction,
et ensuite, le réquest d'actualité
sera passé à la fonction, et c'est ce que
c'est le code. La raison que je vous explique
tout ça, c'est que ces environnements
peuvent seulement faire un request
à chaque fois. Donc si vous avez 3 requests
pour le lamber à la même seconde,
vous pourrez avoir 3 environnements
ou 3 codes.
Ces environnements vont se hangar
pour un peu d'un moment, pour que
ils soient warm. Donc, il y a un autre request
qui vient de la service de travail,
d'avoir un environnement existant pour le code
qui n'est pas déjà processé pour le request.
Oui, je le fais, c'est un start warm.
Vous pouvez avoir 1000 environnements
par default, pour que vous puissiez
scale-en à 1000, et ça
va scale-en en même temps.
Ça se fait vraiment intéressant quand vous vous attaques
les choses à la networks, car,
vous attaques à un networks,
comme un database de relation,
un service de application,
vous avez 1000 environnements,
vous avez 1000 connections à votre database,
et votre database va
« Ah, je ne peux pas faire avec tout ce monde ».
Et c'est ce qui donne la possibilité
de scale-up, scale-down,
attaquer à la VPC, pas à la VPC,
car chaque environnement est spané
sur sa zone. Ça fait que le travail
s'en vient de la suite.
Comment ça fonctionne,
parce que, à la fois de la service,
il y a un point d'influence,
et vous pouvez
avoir 1000 requests en même temps.
Comment ça fonctionne, si vous avez
quelque chose d'autre, avec
beaucoup de trafic ?
C'est un limiter de la soft,
c'est juste un défi,
et c'est de la soft, donc vous pouvez
mettre un ticket avec le support, et vous pouvez
mettre ça, et je sais des customers
qui sont bien, bien,
sur ça.
Si vous pensez à ça,
vous pouvez avoir 1000 environnements
à la fois, et chaque environnement peut
faire une fois en même temps,
et si, pour garder la math simple,
si vos requests
sont pour un second
pour le processus, vous pouvez
supporter 1000 requests par second,
si je pense que j'ai la math, c'est correct.
Si vous pouvez réduire votre temps
pour le processus de request,
pour 500 milliseconds, vous avez
double votre TPS.
Donc, vous savez, avec dotnet,
c'est comme ça, comme vous et moi,
c'est une language très rapide,
c'est pas un peu unique de voir la réponse
d'une double TPS,
donc, vous pouvez seulement avoir 1000 environnements,
en fait, si votre application
est rapide, c'est performant,
ça va bien,
parce que si votre request
s'étend à 10 milliseconds, vous pouvez
processer 1000 requests par 10 milliseconds.
Mais ça ne fait pas de l'avantage,
d'être comme Async, donc vous pouvez avoir multiple.
Ça se sent comme un petit défaut,
mais même si c'est un soft limit,
c'est ça qui crée,
si vous avez 1000,
mais si vous avez un increase de 10 000,
vous avez 10 000 containers
qui vous soutiennent
10 000 requests.
Dans le hôte, si vous avez
10 000 requests, il y a des 10 000
d'exécution environnements
qui vous ont réveillé, mais
si vous avez un déployé dans le court,
vous n'avez pas besoin de croire, c'est un problème.
C'est notre problème. On va bien s'assurer
qu'il y ait assez de ressources
à la suite pour s'assurer que ce scale est à 10 000,
ce n'est pas pour vous, vous vous inquiétez.
C'est un problème de la bonne qualité
quand vous avez le scale.
Vous avez eu une situation
où vous avez 10 000 requests en seconde.
Je pense que
l'aspect de la costation
de la service,
dans le passé,
il y a eu beaucoup de la surface,
si vous avez besoin
de la base de la charge,
et c'est beaucoup plus costant
que de la grande vm
qui est toujours en train de se déployer.
Oui, donc
l'amda est chargée par millisecondes
que le court est en fait exécutant.
Et si vous utilisez
une des rondeurs de management,
cela ne vous inclut pas
si vous avez
un start de 700 millisecondes,
et que votre réquest
a été tenu à la procédé,
vous seriez chargé pour 10 milliseconds.
Et quand vos codes sont idoles,
même si il y a un environnement d'exécution
qui s'est arrêté, en attendant
que vous n'avez pas reçu
pour cet environnement, vous êtes
seulement chargé quand votre code est exécutant.
Donc, c'est comme vous l'avez
dit, que vous avez un travail
qui est très dur. Vous pouvez
s'en aller et vous allez avoir
des conditions d'exécution qui sont créées.
Et ils vont rester en train de se déployer
pour un petit while, donc si
ce genre de burst, si ce genre de burst
se déploye et se déploye
et se déploye en temps,
vous vous gardez les environnements,
vous gardez les warm-starts, mais vous vous gardez
seulement les pains pour le millisecond
que votre code s'exécute.
Oui, ça me rend le sens.
Je pense que beaucoup de
mes trucs ont déjà été
éprouvés en ligne avant,
par comparer des choses comme les Kubernetes
et les serverless, etc.
Et je pense que le premier comment que vous avez fait
était pour beaucoup de choses, vous avez
le meilleur de les deux mondes et ça est presque un mix de deux.
Yann a totalement apprécié, c'est
la raison de la réunion entre les réseaux privés
et la réunion entre les réseaux privés.
C'est partie de la raison de la raison
que nous n'avons pas utilisé les fonctions Azure
pour ce genre de requimant, et nous
nous mettons tout en Kubernetes.
Mais oui, ça me rend le sens
que c'est sympa de voir
que c'est bon de entendre
ce que vous avez dit à AWS, que le code
de la réunion privé
fonctionne.
Oui, ça peut vous donner un peu d'interesse,
je l'ai fait dans le passé où j'ai pris
un bug avec Lambda, je me dis que
pourquoi ce code ne fonctionne pas, il tient
et il tient. Et puis, il y a
quatre lèvres d'abstraction
sur ma netcode, je faisais un request de HTTP
quelque part, et je n'avais pas
installé la networks pour avoir des égresses publics.
Donc, la deuxième fois que je faisais ce type de
functionality sur la network, il n'y avait pas de routes sur Internet,
et le code m'a dit que pourquoi il tient, c'est vraiment
inouïe, et je me dis que, bien sûr, je faisais
ce code de HTTP pour arbitrer l'API.
Et il y a un couple de petits caveats
où quand vous déployez
votre fonction, vous utilisez
un IP adresse dans la range de
l'appareil de la subnet que vous attachez
donc vous pouvez, et c'est
par fonction, pas par l'exécution d'environnement,
vous avez 10 functions Lambda, vous avez
10 IP adresses qui sont utilisées, si vous
essayez de déployer le 11 et qu'il n'y a pas plus
d'IP dans cette range, ça ne suffit
pas de déployer parce qu'il n'y a pas de connecteur IP.
Il y a quelques petits caveats, mais
oui, c'est le plus important.
Si vous faites sure que vous avez un range
assez grand, quand vous vous mettez en place,
et ce sera pas différent,
je ne suis pas complètement en train
d'être en train d'être interne,
où la networking fonctionne en Kubernetes, mais
si vous avez un X nombre de services
qui sont réellement maps pour les functions
de la subnet, ça serait la même
de l'IP range, donc c'est pas
un problème un peu unusual pour la Lambda, c'est
quelque chose qu'il faut penser.
Non, c'est pas le même, donc on a
vraiment dû l'allocer dans la subnet,
c'est un range grand, parce que chaque pod a un IP adresse.
C'est exactement le même genre de chose.
Je pense que pas, avec
les functions d'adresse, comme en pensant
sur tout ce que la marketing a regardé,
c'est très bien, vous pouvez juste
mettre votre code dans la cloud, et c'est super
facile et tout. Mais puis, en réalité,
pour votre code, vous voulez
la source de contrôle, qui signifie
que, je pense que d'un .NET, ça pourrait être différent
avec d'autres choses, mais ça signifie que
vous avez besoin d'un projet,
vous pouvez probablement vouloir
utiliser des injections, parce que c'est
la façon de faire des choses, donc vous avez un startup
pour program.cs. Donc, la prochaine chose
c'est que vous avez un projet
de toute façon, donc c'est pas
juste une fonction. C'est-à-dire que c'est
le même genre de chose dans AWS, ou c'est
vraiment juste une fonction qui est dans un file
que vous pouvez mettre en source de contrôle ?
Non, donc, dans Lambda, vous pourriez
toujours utiliser un projet de file, vous avez
une solution, il y a un library qui est développé
qui s'appelle le Lambda annotations framework,
qui, je pense, on peut mettre les liens
sur les notes de la show, et
ça donne le même modèle de programme
que vous avez tous été used à, que nous
vous avez un programme de programme
avec un controller ASP, vous savez,
où vous pouvez annoter la route, vous avez
annoté que cette méthode est une fonction Lambda,
vous pouvez avoir votre startup.cs file,
vous pouvez utiliser l'injection dépendante,
ça donne le même modèle de programme,
et puis, quand vous venez de déployer
tout vous specifiez, il y a
une certaine string que vous vous donnez
pour Lambda, et le format de la string
est le nom d'assemblage,
le nombre de spaces et la classe, et puis
le nom de méthode que vous voulez invoquer,
et puis, quand Lambda invoque votre fonction,
ça va poursuivre la string et vous allez
dire que vous avez un nom d'application d'un functional dans le code,
il y a un nombre d'applications d'un functional dans le code,
et puis je vais
instantiériser cette classe, et puis je veux
invoquer une méthode sur cette classe
de fonction handler, le code dans le code,
ou tout ça. Donc, vous pouvez
encore utiliser tout ce genre de choses, vous pouvez
même filmer un ASP.net sur Lambda.
Donc, vous avez un library, si vous
utilisez le minimum API, vous pouvez avoir
une ligne de code pour votre programme
sur les services, et vous pouvez
juste mettre le app ASP dans Lambda. Et puis,
ceci peut arriver à ce que vous avez dit
avant de servir les containers.
Cela commence à s'occuper de nouveaux outils,
parce que vous pouvez ensuite faire le même
application sur Lambda, et
dans un container, le library
qui a été construit est contexte, donc il sait
que c'est en Lambda, et il exécute un peu
différemment si c'est dans un container,
ou localement dans votre machine,
comme le typiquement, vous pouvez faire tout ça.
Donc, vous avez des choses
pour garder
l'expérience de développeurs
comme familier possible, que ce soit
ce que nous sommes tous tous utilisés pour les développeurs.
C'est intéressant. Je pense que,
je vais encore au parallèle des fonctions Azure,
où vous avez la fonction Azure
en un temps et vous pouvez gagner cela en loc,
mais pour cela, il semble que vous êtes
juste en train de gagner comme un normal ASP.net.
Donc, j'ai fait beaucoup de
tournage sur cela, j'étais assez militant
de dire que si vous avez un API
avec Lambda, vous devriez avoir une function
map de la route
sur votre API. Vous avez un API
avec 5 endpoints, vous avez 5 fonctions
séparées. Ce qui signifie
que vous allez voir un peu plus
de coût, si cela ne fait pas le sens,
parce que chaque un de ces différents endpoints,
si vous avez quelqu'un qui a un BANG, BANG, BANG, BANG,
ou un hit ou 5 endpoints, vous allez avoir 5 coût.
Quand vous commencez à avoir
le pattern de la packaging ASP.net
et de rouler cela sur Lambda, votre initial coût
va être plus lent,
parce que vous avez dû commencer
à faire un test, vous avez le temps
de faire tout ça. Mais, si vous pensez
que ceci est le même scénario, vous avez un BANG, BANG, BANG, BANG,
vous avez un hit ou 5 endpoints,
vous allez avoir un coût, vous allez avoir
le coût en premier, et la prochaine 4
vous allez être en route pour la même
fonction, la même environnement qui est déjà warm.
Intuitement, ça ne semble pas
que ça devrait être mieux, parce que votre initial coût
est... Si vous vouliez aller tester, vous
invoqueriez la fonction manually,
et vous allez être en train de dire que c'est très lent,
c'est très mal. Mais quand vous vous mettez
un actual coût, parce que vous avez
tous vos requêtes en route pour la même fonction,
vous verrez un nombre
de coût en premier. C'est la première chose
que je dis à des gens quand ils travaillent
avec Lambda et coût en premier, c'est ne pas
juste déployer votre coût, vous vous faire
faire un hit et vous dire que c'est un coût,
c'est un coût, vous faire un hit, c'est un coût,
vous allez en faire un coût,
mais mon application
va faire environ 100 requests en seconde.
Allez-y, fais ça pour un moment,
et puis allez voir les stats, et puis vous allez
dire que, ok, mon 99,9%
est encore bon, et puis vous avez
ce petit petit, vous allez avoir un peu de coût,
et ça pourrait être ok pour votre coût, et ça ne peut pas.
Et il y a des coût,
il y a un système que j'ai travaillé sur, avant de commencer
à jouer AWS, où c'était un coût
très spiky, on n'a pas de
prédiction pour le trafic, mais quand on a
eu le trafic, on a besoin d'une double digit,
une seconde response. C'est un truc
très drôle pour Lambda. Donc, ce que
nous faisons là, c'est de partir un peu sur un
container, on fait comme un front-end sur un container,
un ASP net sur un container, et le ASP net
a fait des validations et a handé les choses
sur un coût, et puis vous avez Lambda
en l'entraînant sur le coût, donc vous avez
Lambda, vous avez encore la scale, vous avez
un très thin API sur le top. Donc,
il y a des workloads où vous ne
pouvez pas utiliser Lambda, vous pouvez utiliser
les containers.
Oui, ça me rend le sens. Je pense aussi,
j'ai un peu de pensée sur un site qui
n'a pas de trafic en cours,
donc ce n'est pas un site très busy,
alors vous avez probablement toujours
d'assumer que vous allez avoir le coût
pour le premier temps, si un customer
l'a fait. C'est intéressant de voir
des architectures qui sont plus
aventures pour travailler sur ça.
Oui, absolument.
En pensant sur les fonctions Azure, je sais que vous avez
le concept de triggers, on a déjà parlé
des points de l'API, mais vous pouvez
ajouter les triggers qui sont juste
les attributes qui sont installés.
Si vous voulez entendre un service,
un message broker,
ou des choses différentes qui se sont
installés dans l'AWS.
Oui, absolument.
Les services de l'AWS,
si vous étiez en train de construire
des choses en un service,
il y a une version de service
d'almost tout ce que vous voulez,
et une version de service
si vous avez été dogmatiques.
Il y a des embassies,
il y a des topics, des cues, des streams.
Vous pouvez utiliser Kafka,
vous pouvez source Lambda avec Kafka,
il y a un range de choses,
oui, vous configurez la source,
et Lambda va faire le reste.
Il y a des packages sur NuGet,
Amazon.Lambda.SQS
Events,
et ça vous donnera un type
d'application de l'AWS.
Tout ce qui vient de Lambda est un payload de JSON.
Si vous invoquez Lambda
d'un API, d'un API Gateway,
l'AWS receives un
de votre request de HTTP.
Vous pouvez ajouter un package de NuGet,
et vous avez un type d'application
d'application d'AWS, et le runtime de Lambda
de l'AWS va déclarer
et vous réalisez cela sur votre côté.
Donc votre signature métallique
va être bien étendue.
Si vous utilisez la framework de Lambda,
vous pouvez prendre un peu plus,
vous pouvez avoir une classe custom
comme la signature métallique.
Les annotations de Lambda
vont prendre le API de la request de la base,
réaliser le corps, et passer le type
à votre méthode.
Il y a un bon bouton, il y a 40,
ne me raconte pas les sources d'événement
pour Lambda.
Oh, c'est bien.
C'est fascinant, on a des parallèles
différents, comme les plateformes
qui sont très similes.
Je pense que je vais mettre
tout dans le contexte de Azure,
car c'est ce que je sais, mais
une autre function Azure avec les fonctions
d'adjurables, qui mangent le state,
est-ce que Lambda a un concept
d'un délirement de state ?
Non, donc Lambda est complètement statel,
ces environnements de execution sont
temporaires, donc ils vont,
même si vous avez un consistent lord,
eventually, le service Lambda
va commencer à réprimer ces environnements,
il ne leur laisse pas vivre pour un certain temps,
et c'est un temps indéterminant,
ils vont juste disparaître à un moment.
Donc c'est complètement statel.
Si vous avez un state,
vous allez probablement utiliser quelque chose
comme des fonctions de state,
qui est un service workflow, c'est le plus
facile de penser sur les fonctions de state.
C'est une machine de state avec un set de steps,
et vous avez besoin de
4 fonctions de Lambda,
une après l'autre, vous allez utiliser
des fonctions de steps pour orchestrer
et managir le state de ça.
Donc non, Lambda est complètement statel.
Vous ne pouvez même garantir,
si vous avez envoyé 2 demandes
dans Lambda, il n'y a pas de manière
d'assurer qu'ils vont même faire le même
en délirement de machine, donc
oui, complètement de status.
Mais vous pouvez presque faire ça vous-même,
comme vous avez mentionné des messages,
créer un saga vous-même,
par la puissance de la pièce,
oui, exactement.
Si vous avez un API et un point,
vous pouvez mettre un message sur une queue,
puis, sur la back de la queue, vous avez
un workflow, et ça vous fait
faire le saga.
Une autre question,
qui est une question
qui est assez fondée, c'est la observabilité.
On a des buzzwords,
comme la télémetrie,
si vous voulez juste voir
des métriques, des logins,
ou d'autres trucs,
comment ça marche ?
Donc, on va voir les 3 pillars,
si vous voulez,
les logs, si vous avez des standards,
il vous arrive automatiquement
sur Amazon CloudWatch,
qui est la solution
de la observabilité, mais vous avez
des logs, donc vous vous arrive automatiquement
à obtenir des standards,
sur CloudWatch.
Est-ce que ça se standardise ?
Vous pouvez utiliser l'Ilogger,
et si vous utilisez le Serilog,
pour que le Serilog vous arrive
à consulter, comme vous vous inquiétez,
ça va ensuite sortir à CloudWatch, mais oui, vous pouvez utiliser l'Ilogger
si vous utilisez l'injection d'indépendance, absolument.
C'est logging, donc les métriques,
vous avez un whole bunch de métriques à la boxe,
donc Lambda va automatiquement vous donner
des données sur les choses comme
l'exécution,
comment beaucoup d'exécution concurrent,
vous avez un temps à l'époque,
donc vous avez un whole bunch de métriques à la boxe,
évidemment vous pouvez mettre vos own
métriques dans votre code de application.
Il y a un feature de
CloudWatch, qui est le logging
que je parlais de, qui est le format d'embedément
métric, qui, si vous vous write
un log dans un format très spécifique,
CloudWatch va automatiquement
lire ça et créer des métriques à la back
de ça, donc vous pouvez faire des messages de log
pour créer des métriques,
basically. Et puis,
la défaut de la AWS est
une service qui s'appelle Xray,
qui est notre service distributif de traitement,
et vous pouvez juste le tourner
dans votre function Lambda. Vous pouvez dire
que Lambda active la traitement, et vous
automatiquement vous verrez la data de traitement,
et puis, évidemment, que tout ce que vous avez dans votre code
application est en train de vous utiliser pour vous-même,
parce que Lambda ne peut automatiquement pas
tracer votre application, comme les métros individuales et tout.
Donc, la packaging et tout ça,
il y a un set de libraries pour Lambda
qui sont appelées Lambda Power Tools.
Ils ont commencé par un project Python,
et ils ont maintenant été
rôles à presque toutes les runtimes,
Python, Node, Java,
.NET. Je ne pense pas qu'il y a un Go Power Tools,
mais je ne peux pas le faire.
Et cette packaging est tout ça,
donc si vous utilisez le logger
de Power Tools, vous automatiquement
vous avez l'automne de l'enregistrement. Et ça
ajoute votre nom de fonction, votre id de traitement,
ça ajoute tout ça à votre log. Si vous utilisez le métric
de l'implementation en Power Tools, il utilise
ce format d'embêtement métric, je le disais, mais
vous ne vous inquiétez pas de ce format,
vous avez dit que le métric.addMetric
ou ce processus est un. Et
que vous avez un code, ça crée des messages,
et le même pour le tracing. Vous pouvez
utiliser ces annotations, vous pouvez ajouter
un attribute à votre méthode et dire, trace
ce méthode, et Power Tools va automatiquement
vous donner le data de trace sur ce métier.
Il y a des libraries, et bien sûr, si vous voulez
être dans l'opentilymétrie, vous pouvez le faire.
Vous pouvez utiliser l'opentilymétrie
dans la function Lambda, comme vous pouvez.
Utilisez l'opentilymétrie dans l'application de .NET.
Si vous utilisez l'opentilymétrie dans Lambda,
une des choses que vous devez être aware de
est que, dès que votre function Lambda
s'arrête de procéder à un request,
il finit le processus et il s'arrête de
friser l'environnement de l'exécution.
Ce qui veut dire, c'est que si vous vous
en avez un batch de exporteurs,
c'est l'opentilymétrie. Si l'environnement
est frozen avant que l'exporteur roule,
vous n'aurez jamais vu le data de trace
quand vous avez le tracing en bas. Donc,
typiquement, vous avez à la fois de
flusher votre traces, à la fin de
chaque request, donc juste avant votre retour,
vous flusher vos traces, et vous vous
les contrôler en bas.
Ça fait le sens.
Vous avez préempté ma question
sur l'opentilymétrie.
Si vous pouvez utiliser l'opentilymétrie,
vous pouvez le mettre à l'envers,
des dashboards, comme Grafana,
ou tout le monde.
Vous pouvez le envoyer à l'envers,
et vous pouvez le envoyer à l'autre.
On a eu l'épisode 41,
Martin Thwaites,
qui parle de l'opentilymétrie.
C'était un bon épisode, je vais vous
linker dans les notes de la show.
Je vais vous le linker
sur Twitter,
et sur Twitter,
je vais vous le linker.
Je vais vous le linker.
Je vais vous le linker.
Je vais vous le linker.
Je vais vous le linker.
Je vais vous le linker.
Je vais vous le linker.
Je vais vous le linker.
Je vais vous le le linker.
Je vais vous le le linker.
Je vais vous le le linker.
Je vais vous le le linker.
Je vais vous le le linker.
Je vais vous le le linker.
Je vais vous le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le
le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le le
le le le le le le le le le le le
Le type système est super flexible,
donc vous pouvez avoir des énoms et les énoms peuvent avoir des méthodes,
ce qui semble un peu bizarre,
mais c'est encore, vraiment...
Ça semble pourréable.
Vous pouvez penser à ça,
mais je vais vous donner un scénario spécifique.
Donc, vous...
Je vais dire, vous avez...
Je ne sais pas si je pense à quelque chose dans ma tête maintenant.
Vous avez un erreur.
Donc, où est-ce que dans .NET, vous avez un ordre de n'aimant d'exception,
un ordre d'existe d'exception,
ou autre chose.
En Rust, vous pouvez avoir un enum,
qui est tous vos exceptions d'ordre,
et chaque partie d'un enum serait d'ordre n'est créé,
ordre existe, etc.
OK ?
Vous avez ensuite un méthode,
et le signe de ce méthode explique le rétour
d'un ordre d'existe d'existe d'existe d'enum.
Quand vous vous arrêtez le code pour contrôler cette fonction,
vous devez faire sure que...
Si vous vous arrêtez un if statement ou un match statement,
ou un match de pattern,
en Rust, c'est pas un grand chose,
vous devez ensuite faire sure que vous vous arrêtez chaque type d'enum,
ou si votre programme ne comporte pas.
Ce qui est intéressant,
c'est que si vous imaginez le .NET,
et vous vous arrêtez d'exister,
et si vous vous ajoutez un autre type d'existe d'existe d'existe d'enum,
vous avez un exception d'enum.
Si vous vous souvenez d'aller et d'adresser un bloc de casque,
vous ne vous arrêtez pas de contrôler un code,
vous vous mettez le code,
et vous vous vous arrêtez de ne pas contrôler un code,
et vous vous arrêtez d'exister.
Rust, votre programme ne comporte pas,
parce que vous n'avez pas réglé le code d'enum, si vous voulez.
C'est juste une langue superbe,
comme je l'ai dit, la curve de la classe est stée,
mais on peut le trouver,
et il y a un bloc qui est là-bas,
que je ne veux pas avoir,
qui s'appelle Zrota Production Rust,
ce qui m'a fait cliquer pour moi.
Vous vous marcherez,
construisant une application de la construction de votre structure local,
pour ajouter l'observabilité,
ajouter un processus résilier,
pour procurer le programmexte,
ou encore alors le processus d' beetleogn 멤�vipe Ng Investment,
pour renvolter son вид et pour combler sesgeois Creation,
et avoir une Hu tight,
et que classes quantitativement hebta spvelt le fait d'y toucher,
et ça peut devenir rec Worthy,
p Important que les gens ne dég Euros Ship ont pu~!
C'était馬on un attorney Fec何 ?
Mais c'est pas lui qui a dit « Wackler » ?
Je pense qu'il a dit ça sur le podcast.
Peut-être que c'est un Nord.
Je ne l'ai jamais entendu personne dire ça, mais c'est Martin.
Il y a un autre.
Je vous recommande de le voir si vous êtes à l'aise.
Le curve de la classe est difficile.
Je me suis rendu compte quand j'ai appris ceci.
Je ne peux pas faire tout ce qui est nouveau.
J'ai commencé à faire un peu de contenu Java,
parce que les langues sont très similaires.
Ils ont des challenges similaires sur Lambda.
Elles sont très similaires à la façon dont vous les build.
Et plutôt que de commencer par « Hello World »
comme la plus basique « Hello World »
je commence toujours par le contexte de Lambda.
Je vais commencer par la function de Java,
comme la function de Rust.
Vous avez des contextes que vous comprenez.
Ça se sent plus avancé que le concept de console.
Mais vous ne allez pas trop loin.
Vous vous rappelez que la compréhension est très forte.
Je vous recommande de la compréhension.
Il y a beaucoup de choses qui vous ont dit que je me rappele
que la function de fSharp est très forte.
Vous savez, avec l'immobilité,
si vous avez un autre enum,
vous avez la protection.
Je ne suis pas très à l'aise
dans les langues fonctionnelles.
Mais depuis ce que je comprends,
il s'est dit que Rust est en milieu
entre la java et la fSharp,
et que Rust est en milieu.
Il n'est pas vraiment objectif,
mais il n'est pas vraiment fonctionnel.
Il est en milieu.
Il y a peut-être des gens Rust
qui entendent ça.
Mais c'est mon livre,
à l'heure de Rust.
C'est comme ça que je le disais.
Si vous vous rappelez,
vous vous reprez le feedback.
Je pense que
que si vous vous rappelez,
vous vous apprêterez de la façon dont vous allez.
100% !
J'ai fait un bon bout de content Rust
sur mon chaîne YouTube.
Je commence chaque vidéo en disant
que si vous regardez ça et que vous êtes un developer Rust,
et que je fais quelque chose horrible,
je vais savoir.
Vous voulez le faire.
En parlant de vidéos et de questions de contenu,
les listeners savent
que j'ai fait un cours d'Octobre
et nous avons parlé de ça
quelques épisodes.
Vous avez bêté moi
avec 2 outages.
Je le fais.
Je pense que j'ai fait le premier
en janvier,
en Auguste.
En architecture de software.
Un guide d'un début
pour l'architecture.
La première fois que je l'ai réalisé,
c'était sur des services micros,
comme un deep dive.
Les cours intraductifs
sont pas des exemples
mais c'est un concept
d'understand
l'architecture et pourquoi l'architecture est important.
L'understand des services micros
et pourquoi l'architecture est important.
Quand vous voulez utiliser les services micros,
comment observer les services micros,
mais les cours n'ont pas vraiment été opinionés
en un sens de si vous vous êtes building services micros
avec .NET,
et que vous utilisez ce labeurier,
ce labeurier, ce labeurier et ce labeurier.
L'année prochaine, il y aura peut-être plus de cours
où je vais avoir un peu plus d'opinionnés
sur ce genre de choses.
La première fois que l'architecture était vraiment intéressant
parce que je pense que l'architecture
a eu un peu de négative connotations
autour de l'architecture,
particulièrement de l'architecture interprète
traditionnelle à chaque tower
d'architecture interprète.
Et si l'architecture
était plus agile, plus dynamique,
je pense que l'architecture
a peut-être été moins important.
Il est percevant que c'est moins important
parce que ça s'arrête
parce que l'architecture interprète
a toujours dit que vous ne pouvez pas faire ça,
vous avez dû faire ça, vous avez dû faire ça.
C'est vraiment important
d'understand...
Je ne sais pas si vous avez oublié de Gregorio Hoppe,
il a écrit l'interprète de l'intégration
il a aussi écrit un livre
qui parle de l'architecture de l'architecture
qui parle de l'architecture de s'y assurer
les leaders de l'architecture
et puis y aller dans le salle de l'engineer
et puis y aller dans le salle de l'engineer
et puis y aller dans le salle de l'architecture
où là ils se sont en train de développer
le quotation à cette surprise
et il a�né de même une fois
le question de rang trap
C'est vraiment important.
zast flatter
il devrait être quelque chose qui se fait partie de l'équipe de développement.
Si vous travaillez dans une large organisation de micro-services,
vous ne devriez pas avoir d'entreprise d'architecture.
L'architecture qui s'étend entre le système entier,
disant que vous devez faire ça, vous devez faire ça.
Le moyen que je vois l'architecture peut-être travailler bien,
c'est que chaque équipe d'individu est responsable de sa propre architecture.
Et puis vous avez une sorte d'architecture centraliste
qui fonctionne beaucoup comme un équipe d'étonnement en team de l'apologies,
si vous êtes familiar avec l'équipe d'apologies.
Donc ils sont là pour évoquer les équipes d'individu
sur comment faire l'architecture.
Et peut-être qu'ils font des revues d'architecture
parce que la fonction d'architecture centraliste
a un grand visage de l'architecture entière.
Peut-être qu'ils ont fait la guerre,
comme le fameux API-mandat de Jeff Bezos,
où tous les communications de la campagne ont dû être par les APIs.
Peut-être que c'est la guerre que vous vous mettez en place dans l'architecture,
mais en fait, sous-en-dessous,
c'est complètement à l'équipe d'une campagne pour faire exactement ce qu'ils veulent.
Ils veulent utiliser Rust, ils veulent utiliser .NET,
ils veulent utiliser Lambda, ils veulent utiliser les containers.
C'est à l'aide de ces équipes d'individu,
et puis la fonction d'architecture
permet aux gens de faire les décisions de la même manière.
C'est comme ça que je vois ça fonctionner bien.
Il y a encore un grand nombre d'entreprises d'architecture
qui sont juste comme, vous ne pouvez pas faire ça, vous pouvez.
C'est difficile.
Je trouve ça un balan de tric,
avec l'équipe d'Atlantique,
parce que si une compagnie a plusieurs
équipes différentes,
et que les développeurs peuvent se faire entre eux,
et un équipe de team va offrir,
et dit que le lead est utilisé par Rust,
ils vont offrir Rust,
et puis, un an plus tard, ils vont se laisser,
et puis tout le monde a été...
Ils sont allés avec Rust et tout.
Et aussi, c'est vraiment difficile
de avoir, comme vous avez dit,
des pipelines DevOps,
et de choses qui,
plutôt que chaque équipe a de réinventer le bâtiment
avec l'ICD,
ou les différents bits et des bobbins
qui sont à l'aide de nouveaux projets,
si vous avez, comme,
par exemple, les templates.
Ils se sont mis en place.
Mais, vous pouvez en prendre un Q-File,
et les développeurs vont être heureux,
parce qu'ils n'ont pas de liberté
d'utiliser l'imagination.
Et c'est juste une bonne ligne,
n'est-ce pas,
où ça balance ?
Absolument, oui.
Et je pense que,
les architectures sont fondamentales
pour les besoins de la business,
c'est ce que je parle de dans la course,
c'est le premier module,
c'est tout pour comprendre le contexte de la business,
pour comprendre ce côté des choses.
Et il y a peut-être une situation
où,
comme la fonction de l'architecture centralisée,
ou ce soit,
vous vous suggèrez fortement
que tous les équipes utilisent dotnet
pour raison X, Y et Z,
mais,
en tant que les équipes de développement
comprennent la raison
pourquoi vous dites ça,
pourquoi vous dites
que vous devez utiliser dotnet
parce que de X, Y et Z,
vous savez,
une des les courses de business
est d'être capable de
avoir 1000 nouveaux ingénieurs
dans les prochains 12 mois.
Ok,
alors, Piquin Rust
ne peut pas vous aider à rencontrer
cette course,
parce qu'ils n'ont pas
beaucoup de ingénieurs rustiques
comme les ingénieurs d'architecturent.
Si il y a un conseil de business,
pour un certain part
de l'équipe,
je suis absolument en train de
faire ça quand je vais en cours,
c'est peut-être
absolument non-sens,
si le conseil de business
est d'incréditer
la satisfaction du client
et de faire le site
plus responsable,
plus,
vous savez,
ça fait plus vite,
ça fait plus vite.
Puis, ça peut
faire un coup de la main
pour cette équipe de services
pour expérimenter avec Rust.
Peut-être,
je ne sais pas.
Mais, je ne sais pas,
je pense que,
si c'était un temps long,
depuis que j'ai été
un temps en fait,
3 ans,
c'est un temps long,
en tant que le monde de la tech,
non?
Mais,
je me sens comme si vous savez
pourquoi vous êtes
en train de
utiliser un certain programme
et de la langue,
ou de construire un certain
espace,
c'est bien.
Et je pense que si vous avez
l'obligation
d'un équipe individuel
pour
faire un PLC,
et ça peut être
où vous portez
l'architecture centralisée
en tant que fonctionnement.
Donc, vous et moi,
vous, Dan,
peuvent décider,
pour notre service spécifique,
Rust est la bonne solution
pour la raison X, Y et Z.
Nous avons fait un PLC,
nous disons que,
c'est la raison pour laquelle nous utilisons Rust,
nous allons retourner
à un certain point de vue
de la plus haute puissance.
C'est ce que Rust va accomplir,
la raison X est
plus rapide,
nous allons pouvoir
avoir un grand poursuit,
nous allons pouvoir utiliser
un grand poursuit,
comme 50, 60% moins
de la mémoire,
de la CPU,
sur nos machines,
et ils vont dire,
OK, Tick,
pour vous,
vous pouvez utiliser Rust,
et c'est bien.
Donc, je pense que
la communication,
et c'est là que
cette idée d'architecture
élevée devient vraiment importante,
parce que vous avez
quelqu'un qui est
involvement
dans le côté de l'entreprise,
mais aussi
techniquement,
ils sont en train de se faire
dans le salle de l'engin,
ils travaillent sur les issues de production,
parce que,
en ce moment,
l'architecture devrait être
involvementée dans les outages,
parce que vous savez
où les limites du système
sont,
et vous savez comment
vous devez
faire le système
différemment.
Oui, c'est comme
mettre les développeurs
en support,
pour qu'ils se voient,
et quand ils se développent,
ils pensent, OK,
je vais avoir
à l'entraîner
à la matin
et à l'investir.
Quelle façon de
observabilité
peux-je mettre dans ce travail?
100%
Parce que,
ce qui va aider
le futur de moi,
quand je dois l'investir.
Oui, 100% d'accord.
Donc, en revanche,
sur le cours de la course de la course de la course de la course,
de l'interesse,
comment tu trouves que
je sais qu'on a parlé un peu avant,
mais...
Le premier,
il m'a pris beaucoup plus longtemps
que je pensais,
et en fait,
je pense que
le cours qui m'a pris beaucoup...
le scripting,
le recording,
c'était tout le monde
comme,
bien,
le box de temps
va me prendre
beaucoup plus longtemps
pour le recoir,
la vidéo,
beaucoup plus longtemps.
Le editing
m'a pris
beaucoup plus longtemps
que je pensais.
C'est vraiment plus longtemps.
Je veux dire,
j'ai fait un contenu YouTube
ou tout ça,
c'était bien.
Mais oui,
le editing,
c'est ce que j'ai fait,
je pense,
et on l'a dit avant,
maintenant que j'ai fait le deuxième,
je pense que tu as dit le même
que l'on que tu fais maintenant,
que le travail est tellement rapide
que je suis allé dans une bonne cadence,
maintenant,
parce que le premier,
j'ai scripté le tout,
j'ai recruté le tout,
j'ai édité le tout,
et je pense que c'est pour ma conversation avec toi,
que...
Je ne sais pas si je suis d'accord,
mais tu fais un module à la fois,
donc,
tu as scripté un module,
tu recrutes un module,
tu édites un module,
scripté un module,
recruté un module,
édité un module,
est-ce que c'est vrai ?
Oui,
donc je suis sorti de la map avec moi,
et je le fais tout,
le tout,
puis je le mets dans le notion
c'est terrible,
donc j'ai eu la liste
de tous les modules
et les sections dans les modules
qui sont déçues,
mais c'est
comme beaucoup de détails
que je vais aller dans les choses,
mais je l'ai fait
le tout plan,
mais sans le détail,
c'est juste que
chaque section sera...
Et puis,
je le fais de fois en fois,
donc je le scripte,
donc je le scripte dans le notion,
et je mets un point de bullet
sur la liste de
pré-records de set-up,
donc par exemple,
si je fais un code,
ou si je dois mettre un site,
par exemple,
un checklist pour ouvrir
ce site,
quand je commence à enregistrer,
et avoir un rideur
ouvert avec un certain projet
ou un file ouvert,
juste pour ça,
j'ai un checklist
juste avant de l'enregistrer,
et c'est ce que je dois enregistrer.
Et puis,
il y a des bits,
il y a des bits,
je vais juste,
si je vais enregistrer
le code en faisant,
je n'ai pas besoin de script
parce que je le fais,
donc je vais juste
enregistrer ce que je fais.
Donc,
je pense que l'une des choses
qui ont fait une grande différence
est que,
en conversation avec Nick initially,
il y avait quelques chats
sur le processus d'édition,
et il disait,
ne t'inquiète pas de couper
comme ça,
et c'est l'une des choses
que je suis inquiétée
sur si j'ai mon web sur le site,
alors ça signifie que je ne peux pas
faire des erreurs,
donc je vais faire quelque chose.
Et il disait,
il serait beaucoup plus beau
avoir plus de couper
mais être plus au courant
et ne pas serrer
et être plus confortable
pendant que tu travailles
avec l'expert.
Donc,
je suis un peu
plus élevé
de la flow de la recording.
Je sais où je vais,
si je vais arrêter de penser
sur l'expert.
Donc, je vais essayer de ne pas
bouger
pendant que je pense sur l'expert,
comme,
me protéger.
Ah, OK.
Et puis,
je vais aller
et aussi,
si je vais partager mon écran,
je sais pas de bouger le mou.
Je sais aussi,
je ne bougerai pas le mou,
je ne bougerai pas le mou
ou quelque chose
quand je ne parle pas.
Donc, quand je médite,
c'est vraiment clair
de la waveform,
ce que je vais acheter,
donc je peux rapidement
acheter le mou
et faire vraiment
un synch
et
ça se fait bien.
Et ça se fait bien.
Et ça marche vraiment bien.
Ça fait que tu as un processus
beaucoup mieux que moi.
Ouais,
j'ai les scripts.
Ouais,
cette fois,
j'ai vraiment fait le module
à la fois
et ça m'a vraiment aidé.
Parce que la première fois,
j'ai vraiment fait le fatigue
par juste la recording
ou juste la édition
ou juste la scripting.
Donc, je me suis trompé
en ce genre.
J'ai vraiment aimé
la idée pré-requisite.
Je vais prendre ça pour mon
YouTube.
Il y avait,
je pense que j'ai récordé
la première fois
pour le cours de services microservices.
Et puis,
je suis revenu à regarder.
Et j'ai un tablette de dessous
pour faire la vidéo en whiteboarding.
Et je me suis dit
que je vais voir
quelques des vidéos
et la whiteboard
n'était pas en train de travailler.
Donc, j'ai récordé
toutes ces vidéos
et je me disais
que tu pouvais juste voir
ma desktop.
Tu n'aurais pas vu
la whiteboard.
Et je me suis dit
« Ah,
viens-moi. »
Donc,
une liste de pré-requisites
c'est de
faire
si la whiteboard
est en train de travailler,
faire si la mic
est en train de se faire.
Faire si
le site est ouvert
et le code est ouvert.
J'ai vraiment aimé
ça.
C'est une bonne idée.
C'est certain que je vais
faire ça.
Même pour YouTube,
c'est le contenu YouTube
qui a une liste de pré-requisites
avant de faire un vidéo.
J'ai fait ça
tant de fois.
La plus grande
chose que j'ai fait
c'est de la vidéo
très longue.
Et la file raw
était appelée
« james.mp3 »
ou quoi que ce soit.
Quand je l'ai exporté
de la résolve
j'ai exporté la file
avec le même nom
que la file raw
dans la même folder.
Et pour un moment
ça m'a dit
« Tu veux faire ça ? »
Et je l'ai dit
« Ouais, ou quoi ? »
Et tout de suite
la résolve
était comme
« Quoi ? »
La file est dégâchée
et je me suis dit
« Oh, quoi que j'ai fait ? »
C'était un peu
plus élevé
parce que c'était plus élevé
et tu n'avais pas pu
retirer le bin.
C'était...
Ouais, c'était pire.
C'était pire.
Je pense que tu as
sur ceci
que je l'ai dit
dans le Mesh Mesh Mesh.
Ouais, c'est vraiment
délicieux.
Mais tu le leves
et tu ne le fais pas
encore
parce que tu as
appris le cours
pour toujours
vérifier le Mac.
Et maintenant
j'ai un folder raw
et un folder output
dans mon folder éditing
sur mon laptop.
Donc, ouais.
C'est un peu de fun,
parce que je ne sais pas
si tu as trouvé le même
mais j'ai trouvé
que ça m'a vraiment aidé
à
référer
ma
mémoire
sur
quelque chose.
Surtout particulièrement
le service micro
comme tu sais
je vois un bunch de vidéos
je réévois
comme Sam Newman's book
comme
la réévois de l'autre concept
et en fait
en appuyant quelque chose.
Il y a un quart
de quelqu'un
je veux dire
c'est Einstein
mais je ne pense pas
mais la meilleure
façon pour que tu sais
quelque chose c'est de le apprendre
et je pense que
le apprendre à ces types de topics
m'a vraiment aidé à solidifier
ta propre
compétition
dans ta propre
pensée sur
comment les choses
doivent être faites
et la whole thing
devrait être construite.
Donc, j'ai vraiment
aimé cet aspect
de référer
ma propre mémoire
sur comment faire des choses.
Ouais, j'ai trouvé le même
c'est un peu
pas juste
référer ma mémoire
j'ai trouvé que
quand tu fais un whole course
sur quelque chose
tu as toujours
eu des petites gâtes
de connaissance
où tu penses
que tu as voulu
apprendre
comme ce petit petit
à un moment
mais
tu n'as jamais eu
une raison pour le faire
mais quand tu fais
une course
même si tu sais
tu peux savoir
96% de ça
il y a ces petites gâtes
où
ça vous force
à vous réveiller
et jouer
autour
d'un autre
truc
avec ces choses.
Donc, c'est comme si tu fais
tu sais, quand tu fais
comme une certification
et quelque chose
que ton travail
n'a pas besoin
de te regarder
tu as dû
regarder
un range plus
broad
de choses.
Ouais, ouais, ouais.
C'est le même
avec la course.
Ouais, j'ai eu ça
je pense que
c'est le même
mais j'ai certainement
un peu de bain
dans ta course
parce que je fais
un whole bunch
de courses
à la maison
c'est l'interessant
de mon travail
parce que je suis
une consultant
je travaille
sur le truc
que le customer
veut faire
que je travaille
donc
je fais
un whole bunch
de services
et ça
est absolument
mon
intérêt
où je pense
que
la grande majorité
de la company
devrait au moins
commencer
avec un service
possible
à commencer
comme je pense
à commencer
mais je fais
un whole bunch
de courses
de courses
et c'est
ça qui m'a aidé
à broadenir
mon
connaissance
dans les zones
que
c'est la bonne chose
sur la consultant
je ne sais pas
si tu trouves la même
avec
le genre
que tu fais
c'est un peu plus
tu as des choses
que tu ne peux pas
normalement
regarder
parce que tu as force
parce que le customer
que tu travailles
c'est
qu'on veut
utiliser
quibiretes
tu as ça
bien, OK
quibiretes
c'est
ça
oui
je fais
c'est comme
j'ai perdu
mon contracte
c'est un peu
plus long
en plus
donc c'est
comme
euh
OK
donc je suis
comme
inquiétant
à prendre un contracte
qui est
de technologie
je ne suis pas
intéressé
à ce point
où je
préfère
aller
en contracte
comme un specialist
de
X
mais
c'est
comme
tu parles
avant
de
un curve de
mais
c'est
un peu
de curve
mais
c'est
un peu
plus
bon
et
c'est
comme
je ne veux pas
comparer
avec
le
de vue
de
une
curve de
charge
d'explicer
c'est
comme
an
iranti
1
Mongolű
AGA
Rebecca
Je pense que je suis le plus d'accord avec les Cubanettistes,
je suis le plus d'accord avec les Cubanettistes,
je pense que c'est vraiment valable de apprendre
assez de l'autre côté de l'argument, si ça fait le sens.
Donc, je pense que c'est certain que je dois faire.
C'est comme ça que je vais probablement vous aborder
quand vous reliez ça, parce que je pense que
j'ai un niveau d'understand qui vient de moi
juste de savoir.
Je pense que ce qu'on fait avec les Cubanettistes,
c'est le parfait exemple.
Je pense que c'est là où je suis avec les Cubanettistes,
je suis juste d'accord avec les Cubanettistes,
juste d'assez assez dangereux.
Probablement trop dangereux,
parce que je ne comprend pas vraiment
les fundamentals réelles.
C'est pourquoi j'ai commencé
avec les courses ajoutées sur le train d'adaptation
avec les fundamentals.
Je ne vais pas dire
comment construire un saga de multi-microservice
dans Dotnet,
parce que c'est pour ça qu'on comprend
ce que le saga est et pourquoi il faut le faire.
Et ce niveau de base de l'understand.
Donc, je pense que je dois apprendre
plus de Cubanettistes, parce que tout le monde,
et je pense absolument que,
pour clarifier mon sujet sur le sujet,
je pense absolument que
il y a des cas de utilisation pour les Cubanettistes
dans le monde.
Je ne pense pas que tout le monde
soit servie ou que tout soit cubanettiste.
Je pense que c'est le right tool
pour le travail que vous avez.
Si vous avez une application internal
de l'HR,
qui est accessée 3 fois par demi
et le coût de 900 millisecondes
quand il est accessé,
c'est OK,
parce que c'est internal,
c'est HR, c'est bien.
Je vous dis que
l'arrivée de la construction
de la Cubanettiste,
l'aspect opérationnel de la construction
de la construction de la Cubanettiste
est plus que
la construction de Lambda,
ou la construction de l'ApR,
ou l'ApR,
qui est un peu parallèle
à la web apps.
Pourquoi ne pas faire ça?
C'est pas...
Peut-être que l'industrie
est toute faite de
que tout le monde soit sur le côté.
Tu es plutôt un Java,
que les Cubanettistes
soient servie ou que les X ou Y.
C'est le right tool
pour le travail,
c'est quoi que vous avez.
C'est l'explicit typiquement.
Il dépend.
Toujours.
Je vais au point de dire
qu'il a dit
quelque chose de la stripillage.
C'est un peu plus compliqué.
Et ça me rend compte
que dans mon cours,
beaucoup de content de la Cubanettiste
ont été trompés
dans l'architecture de la Cubanettiste
avant qu'on explique
quelque chose d'autre.
Et c'est en parlant
des planes de contrôle,
des cubes, des procs,
tout ce genre de choses.
Et la CD.
Et je pense que
c'est la première ordre,
spécialement pour les développeurs.
Donc, je fais ça
plus tard sur le cours
et explique
que sur le point de développement
il y a des choses comme
des services de pod
et des graisses.
Comment utiliser ça?
Ou de la Ctl,
des commandes de l'online,
de la K9S,
des lignes,
de la façon dont vous interagissez.
Mais je vais mettre
les choses
que vous avez
en détail d'implementation
que vous n'aurez pas
à utiliser directement
et à focuser
initialement sur les choses
que vous allez utiliser.
Et plus tard sur le cours,
je vais faire de l'alcool
et ce genre de choses.
Mais ensuite,
je vais avoir une section
en parlant de l'architecture.
Mais je pense que
beaucoup de
la content de la Cubanettiste
se démarre
avec cette architecture.
Et ça me semble
trop compliqué
parce que
vous n'avez pas le contexte
quand vous
vous entendez des choses,
vous n'avez pas de la
utiliser directement
sans le contexte
de ce que vous allez utiliser.
Oui, c'est vraiment intéressant.
C'est de vous mettre
en place un peu de russes.
Un peu de autres
russes que j'ai évoquées
avant que je l'ai évoqué,
la production de Zrutter.
Ce que je parlais
a commencé
avec des gens
qui n'ont pas commencé,
mais qui ont été
des gens qui ont été
des features de langue
de russes.
Et à un certain point,
ça a été un
je ne suis pas
un des compétences classiques
de la computer.
Parce que des choses
dans les russes,
je me dis,
qu'est-ce que ça veut dire?
Quoi?
Qu'est-ce que j'ai fait
avec ce Zrutter production?
C'est que
vous êtes
construit un application actuelle
à l'époque.
Vous avez dit que
vous commencez
avec les choses
que vous avez besoin de
s'occuper.
C'est un fréquence
pour utiliser
l'application de bootstrapper.
C'est
comment structurez votre projet.
C'est comment interagir
avec les données.
C'est les libraries
que vous voulez utiliser.
Je pense que ça
semble être un bon
moyen de faire
votre course de Kubernetes.
Parce que, comme vous le dites,
le travail que j'ai fait
avec les Kubernetes
est presque entièrement
en train de faire
avec les services ingrédients,
des déploiements,
des Helms.
Je sais que la Proxy est une chose.
Je sais que ça existe
dans un quart de bloc.
C'est ce que le monde
fait,
le quart de bloc.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui, oui.
Oui.
Oui.
Oui.
Je ne sais pas si vous avez entendu de ça, mais je n'ai pas.
Je vais vous raconter la ligne de l'article ici.
Un MPM username Patrick J.S. a launché une campagne de troll avec un package qui s'appelle « Everything »
qui dépend de tous les packages de MPM public.
Donc, c'est quelqu'un qui installe, qui est complètement rempli de la voiture et qui a crassé le computer totalement.
Et aussi, parce que le MPM a eu une politique, je pense qu'ils ont fait une changement de politique en 2016.
Il y a quelqu'un qui a fait un incident de paix, je ne sais pas les détails de ça.
Oui, je pense que je le remercie.
Donc, parce que de cette changement, ça a signé que pas de l'article pouvait écrire leurs ownes packages.
Je ne sais pas si c'est encore là, je n'ai pas parlé, mais c'est encore très drôle.
Je vais inclut le lien dans les notes de la show.
C'est... C'est intéressant.
Ça me semble que ça serait trop facile de l'installer par accident, comme MPM, I, Everything, uh oh.
Bye bye laptop.
C'est génial.
C'est pas génial pour les gens qui ont réinstallé, mais c'est génial.
Non, les listeners ne tentent pas de le faire à la maison.
Oui, absolument.
Donc, on est, je pense, assez en train de faire un tour, mais est-ce que nous n'avons pas découvert que vous voulez?
Je ne pense pas que ça.
Non, je pense que le grand chose que je voudrais, c'est que pour quelqu'un qui a essayé de faire un tour,
et que vous avez mis des liens dans la chanson, mais...
Routing ASPnet en Lambda est un bon moyen de commencer.
Vous pouvez lire des trucs sur Internet en parlant de l'Ithme Lambda et l'Ithme Lambda, c'est une bonne idée.
Non, pas de l'Ithme.
Donc, commence là, parce que c'est un moyen vraiment facile d'être commencé,
parce que vous utilisez ASPnet, que vous êtes familier avec, vous pouvez le placer dans Lambda,
vous pouvez utiliser une ligne de chanson et votre file de start-up, et ça va juste rater.
Et puis, la deuxième partie, c'est que si vous êtes commencé avec Lambda et que vous essayez de l'amener,
vous avez une garantie de commencer à avoir un coup de start.
Donc, ne base votre analyse sur si Lambda est la bonne pour votre workload,
en face d'un déployement de votre corps et d'un invoque.
D'un moment, vous avez un million de vaux à la fois,
chaque mois, c'est le premier an de Lambda, un million de vaux à la fois, toujours.
Donc, vous savez, vous avez un moment avec un nom,
et puis vous regardez les métergies, et vous vous dites,
ok, 99,99% de vos invoques sont absolument fine.
Vous seriez part de votre pipeline CI-CD,
et si vous avez déployé, vous avez le droit de faire un réquest,
juste pour le réchauffer.
Vous pouvez le faire, il y a un tout petit truc,
que je pense que les gens sont encore en train de le faire,
où vous pouvez mettre un service qui se termine par l'avent-bridge,
qui est le bus de l'avent, et vous pouvez mettre des jobs en schedule,
donc vous pouvez mettre un crom,
et les gens vont mettre un job de crom pour invoquer la function de Lambda
chaque 5 minutes pour le garder.
Vous pouvez le faire, et vous pouvez le faire,
vous pouvez le faire, et vous pouvez le faire,
pour éviter le coup de l'art, mais en fait,
si vous recevez 3 réquestes pour la function,
exactement à la même fois, vous allez encore avoir 2 coups de l'art.
Donc, en fait, ça ne vous donne pas un grand nombre de choses à faire.
Et, d'abord, c'est important de être data-driven
sur votre choix de Lambda, et ça peut absolument être
que Lambda n'est pas le droit de faire ce travail.
Ok, puis vous regardez le contenu, c'est absolument bien.
Mais, c'est important de mettre un point en train de faire le Lord,
je pense que c'est ce que je dis.
C'est un des cas curieux de Lambda,
en tant que la compétition de la compétition,
c'est que plus le Lord vous donne,
le mieux il le prenez, si ça fait le sens.
Si vous donnez un Lord consistant,
il va le faire mieux,
que vraiment un Lord incremental,
un Lord spiky, qui est tout à l'heure au lieu de le faire et impréhensible.
Donc, vous pouvez être data-driven,
et vous regardez le Lord avec votre réelle application.
C'est le final de la chose, je dirais,
avec pas seulement dotnet sur Lambda, pour ce qui concerne,
mais aussi, la langue sur Lambda.
Bien, c'est bien. Je sais que vous avez dit que vous avez une rencontre
en Hardpass, qui est 5 minutes,
donc je vais vous donner le temps de aller y avoir un café,
mais où est-ce le meilleur endroit pour les listeners
d'acheter, si vous voulez, vous voulez en toucher ?
Twitter ou LinkedIn est où je suis typiquement plus active.
Ouais, je tend à faire un peu plus sur LinkedIn,
maintenant, mais ouais, je suis toujours assez active
sur les deux socials, et puis sur YouTube.
Et je suis en anglais, mon tag sur YouTube est différent.
Donc sur Twitter, je suis à Plant PowerGames,
et YouTube, je suis à ServerlessGames.
Donc, oui,
n'importe où les places,
je suis toujours open pour questions,
et si vous êtes en train de travailler avec Lambda,
vous pouvez vous en toucher,
et je suis toujours open pour une discussion,
si vous avez une rencontre en deep diving
dans votre cas de use, vous pouvez vous en toucher,
je vous aime.
Je vais inclure tous ces links sociaux
dans les notes de la show, et je vais également inclure
vos courses de ne pas vous en train,
à la show notes. Ah, parfait.
Ah, merci. Cool, bien, un grand merci pour vous,
pour le show, c'était un peu de la chute,
mais AWS, c'est un autre chose que je dois ajouter
pour mon liste de choses,
pour faire, je veux juste plus de temps,
mais AWS et Rust,
ce liste est plus long,
merci pour votre part.
Merci pour moi, c'était génial, et c'est le challenge
de travailler en tech, c'est le nez plus
pour faire des choses à apprendre, mais non, merci pour moi,
c'était un peu de fun.
Merci.
Episode suivant:
Les infos glanées
TheUnhandledExceptionPodcast
Tags
Live Panel Discussion at DDD South West 2024