Hello everybody I'm Nick and this you're going to learn why Microsoft vision is that every Dot and developer out there will be using Dot and Aspire in the future this idea and this vision is coming by Microsoft themselves and this video is a discussion between me a distinguished engineer at Microsoft David fer which is one of the main people behind Aspire as well as many other things in net such as nuget signal R net core and many many more we're going to discuss Inception current state change of Direction and what the future for dur thep
and it's very very exciting the only thing I have to say before you enjoy the video is that until the 28th of February we're offering our two cop courses for free on doome train lifetime access click the link get them and you keep them forever enjoy the video so David welcome to this video here for the second time and hopefully not the last One how you doing pretty good happy to be here got on my Aspire that I saw can I get one dressed just for you I'm dressed you can get one I asked for
one Microsoft booth and they didn't have any aspiral you didn't give you one oh man I didn't have one you didn't get one yeah I'm surprised no M should have one just give me one exactly I'll make it happen don't worry awesome so for anyone living under rock or if someone hasn't heard about you before who are you and what You're doing and don't say you're an engineer in the do net team because everyone that's like I am the CTO I'm an engineer in the dot net team so tell us what your job title is
I am a distinguished engineer onnet um and I've been working on Aspire for the last year um year and a half how long's it been feels like feels like longer but it's but it's been I think only been like a year a year or so um so yeah I I mean what I worked on net I Worked on New get um signal R ASP net core lots of other really cool things but I've been around for like 17 years so as wild out of college interned on the aset team went fulltime and then has kind
of been on the same team like for like 17 years working on this cool stuff famously a QA intern yeah so funny my first intern was was QA my school was like really known for like being QA yeah um so I remember joining spending my first my first Summer we had like four entr in the same office it was really cool it was hot but it was cool um then next year I was a de intern and then it was just from then I've been the whole time skyrocketed yeah you you've worked basically if there's
anything interesting in net in the past 15 years you've worked on it I Tred to or or you built it you know yeah it's funny because like a lot of the um the aset team now is like pretty new I think only maybe three or Four of us are there from the original um team but it's fun like to to explain to people kind of how we got to that place it's like no no no let me first first did this I I feel like old person em yeah so back in my day when we
first did this feature like there was no vs blah blah blah yeah um I'm gonna Focus like this discussion given you have more of a limited time today just on Aspire and I I will kind Of assume most people know what Aspire like kind of is but you can also if you could just explain what a Spire is as if I'm a not a 5-year-old but like if I'm a junior developer coming into net what is Aspire yeah it's funny we've been fine tuning this pitch just like over and over because I think we had
if you were to ask me this question a year and a half ago I would have had a completely different answer to what I have know based on kind of seeing usage um I would Say something like this when you join a company or join a team you want to on board quickly you want to know how to run the project the project probably has set up for certificates post files you got to copy some files into this folder you got to see the database over here you got to run like seven steps to onboard
depending on the company size team size come of the project the read me for the instructions for setup can be like one Page or Wiki maybe on boarding is a week or whatever right and it's really hard to clarify those steps in something that's not just text like you know copy this F over here do put the SE in the search store use this name aspired lets people turn that into code so F5 just works so your read me turns into a set of steps described in your application and you know I join a company
I hit at five my onboarding went from you know a week or a couple days to I can just do It in a couple minutes that's been the bread and butter scenario for Spire I think in the last the last year or so I can on board super quickly that Paradigm can extend to other parts of the sdlc it's not just for local Dev but we started there yeah that's the whole model like I I told someone I told someone there's a guy in your company somewhere deep in the company who spent a week trying
to figure out the exact Comming arguments to pass to this Tool right there that guy that who's like man I I searched for like 10 10 days on different sites and I found that I have to pass the arguments with this escaping on this OS and that is not a script in their Source control yeah you could take that problem and multiply it by all the people in the world who have to do that that same thing Aspire lets you encapsulate that configuration and that call in a n get package so you kind of share
these configurations across Like multiple teams multiple places that's I think that's the magic yeah for for us it's very funny you say that because for us in the last company I worked for we had this goal we had to hit which is like time to A5 which is how long it takes to be able to just press F5 and everything just works without you having to run a very complicated setup thing and normally like the first time we would include a bash script that would do a git clone on Every repository put them in this
right like correctly named folder with this folder structure because the build sequence had part like relative paths and everything it was wild and I'm really sad partially that I can't experience it like in that way and and you might ask why can you use a SP for for Dome train for example my platform um and I do but the vast majority of that platform is on azra functions which only recently came to like preview yeah Um yep yep y so once those are out out I'll be on that because just simplifies everything so so much
but yep why why are you making do Aspire now yeah that's a super good question um the the beginning of aspire we had an offsite so normally I want to say every now and then we'll have ideas floating around the team and we had this idea we we were going to go off for a while we had the code name was system distributed that Was like the code name before we start doing anything and a couple of us were just throwing around ideas about what what it would mean to build like something made for cloud
or made for these new new style environments um like what would it if you were going to go back to First principles what would you build and we kind of came up with a set of problems and scenarios and it was like we need to solve all these practical problems first like Configuration when you are trying to build an app that has more than one thing your app a backend a database a cash you spend so much time trying to figure out how to make those things connect and work well and that kind of was
like okay if if this is the first thing we solve we work on the Practical problems right I think it was like practical and there was the other problems like State Management and distributed systems the hard problems Right like cap Theory and distributed State and we were like if we focus on the Practical problems what are they and how do people do it today like what is the system you use to like solve time to F5 how do you model um ports connection strength so we kind of did it did an evaluation of the the
current Tech and it was like what's missing um and we had time right so we didn't we didn't come from the cold it was like we did a couple Experiments what makes the system hard to what makes it hard today and it's the amount of variety the amount of different software you have to combine to get the system working it's not that it's impossible I think one of the things people that I realize people don't see is as an individual you learned how to use compose or Docker or all these things yourself you spent time
you went online learned how it worked and you got your app working you got This one app working right everyone in the world is doing that everyone in the world just has to replicate I want to use reddis and I want passwords and I want TLS and everyone's copying this thing from all their previous projects over and over and over everyone has to figure out in net you're supposed to use this client with this connection string specifically the configuration is not encapsulated anywhere so you have the Image the image is great like give me Redd
rdus y amazing dock pull run it just works you have to configure it you have to set passwords up and all all the stuff up you have to then your application consume that while it's not impossible or difficult can we make it turn key can we basically make it so that you are telling us I want to model this system and then if you give it that information what can we do with it that was kind of like the whole idea of the App post it was like first of all is it yaml or is
it code yeah when we chose to use code we were we were very worried it was like we use everyone's doing yaml like Ty was yaml and then Ruben who famously work on Orleans was like let's just use code yeah and I was like all right let's do it um and that was like that was the the reason it was it was we want to up level a bit and think about helping people that are building done applications solve the next layer of Problems like my app is done I got you know it's at core
going caching like we built a really solid like core platform it's just super fast and it's great and it keeps improving and then you want to deploy it or use it in different environment is like go learn 15 different tools and then do this yeah and now and now you got it working don't touch it right yeah it was like yeah that was the idea so That sort of differs than what you mentioned before about why do Microsoft is making do in Aspire because this goes more into the distributed systems you know modern applications using
multiple maybe databases or or multiple things y to me wanting to run my projects because the wanting to run my projects and bring everything together is one of the mult Run multiple CS Pro or multiple ass so it's not the vs is multiun or M M Yeah you'd have Aspire now do the debugging for you and then you go through everything so I do see a bit of a of a not identity crisis but it it sounds like it was marketed in the beginning as a cloud native distributed systems thing and the more I see
it being developed from net 8 one two and now nine y it turns into a more General thing that's right so I think the input this was definitely Distributed systems CL native apps it was made for that purpose it's why we have the end to end where you can do ACD up and it just goes into Azure right but I think as platform designers what we end up doing naturally is you built this thing and then you begin to see it be used and you're like oh and you're like product Market fit right so like
no so we we said to ourselves okay it seems like this inner loop time to F5 thing is like where everyone's seeing The value in the short term so we we pivoted and said okay let's just spend all of our time polishing that experience let's make the end end really good let's make the dashboard really good let's make you know we we added waight for because people were asking for it and it turned into okay we have we we really have this like platform you can Target to build you know and it it's difficult to
kind of describe this to people who are Just trying to make their app work cuz making your app work is super important for that one person but we're thinking about everyone who has to do that same operation and if if everyone is doing the same thing can we make it dirt simple to say give me a database a cash a Reddit a project wire it up once you've given us that information we can do a lot of stuff with it yeah so I think what is yeah we started off being Cloud focused and you know
Cloud native Only but the more people start to use it we said to ourselves huh H this is just like a general purpose Runner shell kind of system that can do arbitrary things right now it's still we still care a lot about the end to end where you can like you know go to the cloud and make the whole thing work I mean we have all these features to for for that end to end right but I think you're going to see a break down of the layers you're going to see like Us saying okay
now there's this core platform where you can model resources and then there's a system that can take that and do like deployments you know whatever else in the PIP line so this I think I think for me this is the you start with a premise of like we want to Target this and then your customers show you well that's cool but guess what your thing is really good at this thing and we're like huh okay let's figure out how to go from that premise to like let's Extract the essence and make it usable for all
this stuff yeah um yeah I've I've talked to you about uh that exact thing when it first came out cuz to me Aspire in a way sort of looks like Microsoft's answer to Java's spring is that fair to say and and all and the success that this stack has yeah absolutely I mean there were discussions that we had like really early on because because some of the questions came from what is your spring Boot yeah and our answer for the longest time was like ASB netcore and net like what do you mean yeah what else
is there they have the ey we have the ey they have like I think it wasn't just the bits and Bobs like we have all the parts yeah we had Telemetry we had y we have all these things but there's no like there's no spring boot that kind of says here is your pave path right so that was definitely inspiration like do we have a pave path do we have a system do we have A thing that we can kind of that that glues all the bits and Bops together to be like a system yeah
and it's funny the more I learn about devops the more I spend time learning what people do I learn palumi and terraform and what those systems are on what people do today the more I realize there's no system that you target you just kind of Cobble multiple systems together and I think Aspire for me in my head what it's becoming is it's becoming a system it's Like I can Target Aspire and if I model it if I model my app on my system this way I get these benefits right and it's on us to figure
out how do we make it so that if you tell us this information we can give you all this stuff the the premise of what we said in the very first meeting was if you describe your applications topology to us we can tool it like that's our mindset it's like yeah if you tell us reddis if you talk to reddis and you just give that Information we can make sure you are in a super secure VPC or vnet we can make sure you use the best kind of off in between those two things I'm sure
like you know if you're doing platform engineering or you have like a Dev and deop split maybe the person that's the expert in infra can do it but what if we can what if we can turn this into a compiler like that was the thought yeah you model the entire world and then there's a runtime for local Dev and a Compiler for like other scenarios and I that's what we're exploring though so would you say that because you kind of have these fun ality already but would you say that Aspire will get to a point
where you wouldn't need pumi because you can Define your infrastructure just with fire or maybe it us just pum under covers like yeah what what we've been playing with what I've been playing with like is how do we go from right now we Have support for deploying using ACD right so that that was the an aspirate that was the the proof it was like okay let's just get this thing working let's make sure we understand the model let's understand I know we have a lot more information about like what does doesn't work yeah um and
we have a model for like okay this this system we envision and and we kind of advertise oh you can take the Manifest and blah blah blah blah with we said that up front and we Had two examples but it's not until you try pushing it that you kind of understand where it falls off where it doesn't work where it does work and and we've done enough of that now to be like okay this is going to be super interesting it's going to be really cool what we can do with this model if we can
just like get people to use the app for local Dev and then you tell them hey F5 works works great right what if you could like go to the next phase yeah the Next phase so in my head F5 is the main scenario you start with F5 you get local Dev working and then you slowly bring people over to like well you told us you needed all this stuff like yeah guess what you get for free cicd scripts like maybe we can go the go the whole way right um still early but and we don't
want people to to assume they have to use it up front so like local Dev is very easy use this in Your local Dev Loop it'll give you this good experience with the dashboard and traces and logs will set you up for success but then like we're working on trying to figure out we have this really rich model what do we do with it yeah you talked about acdd is the azo devel a develop c yeah which uh when Aspire came out that also came out and you able to do like a in it on
the apphost level I think and project and then it checks everything and it Generates effective the bicep scripes that you need to use behind the scenes to deploy to azer however as cool as that is and as has this option to have it is nobody really deploys to production like that the the deployment process the cicd story is so complicated nowadays that a simple command like this would just not cut it so yeah I feel like it's there just to be there because you felt like you have to have a path to Azure because You
know doet is a free product it in a way it sells azra let's not hide behind finger let's just accept it that's the case um that's work I work Microsoft exactly and the story has to be there and the good thing is Microsoft actually helped very closely with AWS for them to also get involved on their side of things y I think they completely choked their side of things and we can talked about this later because I fundamentally disagree with everything they've done With the Spire but the ACD up and ACD do down it's nice
to have it's not production it's never going to be production already for a serious company so I'm teaching Aspire in workshops All Around the World in fact I actually started doing online I I'm start I started doing online workshops I had one on Monday actually two-day workshop and I'm doing one online on at the end of Friday Link in the description down below um and uh as part of my you know Teaching I always encourage people to ask questions and people get to the point where they say that's so cool and we hit what I
call the now what phase because the documentation and everything is built so nicely for the developer experience this one scenario yeah yeah it's not good for deployment and then you reach this point was okay now how do I deploy this properly and Microsoft has nothing which is a 180 from Project Tha which was way too opinionated and it Assumed way too much and then you went 180 and you said we're going to assume nothing and we're GNA give you this manifest which is practically useless like it's it's good luck yeah take this Json file pause
it and and build your own stuff yeah and yeah yeah we just happen to be lucky enough for for the person who made aspirate which at least you know you can create a do comp file with it or you can create the kubernetes um assets for it y but in my opinion Microsoft needs to get the together and improve tooling and give me this option of dog compose and as a bare minimum kubernetes uh yep by default I should be able to do net Aspire yep publish kubernetes or publish Docker compose and get everything I
need to just say Docker compose up or or cube C basically deploy will we this of ACD up yeah so you want the the equivalent of what aspr does in a first in a more first class way yeah and if I do that Then I can introduce it I'm sure in my official cicd Pipeline with the Microsoft commands I'm sure visioning would be there as well and everything and then it makes it easier to publish an image to my it more yeah yeah yeah yeah yeah so the timing of this conversation is really good because
like I have really clear thoughts on what we built now so like when you build something new and you're trying to figure out what you've built like that's Kind of where where what where we were when we Shi Ado we knew we had something we knew it was going to be useful we weren't we weren't we were not surprised about the feedback right we made this end to end work this vertical work um and when you're building it's funny I have have a lot of experience know building new things and I'll say compare ing when
we built like aset core you know and signalr where you're literally trying to figure out we built di logging Like everything that we built happened at the same time and that kind of fanel is is difficult to to manage so you have to prioritize the things that matter the most right so in the very beginning of aspire it was at five and deployment was always going to be it works for this one scenario and we happened to get out like sprit was like a Jo it was like thank you so much you proved Pro that
it wasn't just Azure thank you thank you thank you um but then as you evolve you Begin to figure out like where the things fit right so deployment is intentionally right now as of right now left like in a state where you can do ACD or you can do your own thing and we are hyper aware of the feedback actually I did I did a ton of analysis I I took all the videos on YouTube that views um about spire and I look at look at comments and I try to find Trends I use AI
to do all this stuff yeah um and the number one Trend the number one trend is Like the documentation for deployment is like subpar not not only subpar but just but bad right yeah so the team is hyper aware part of the reason that we haven't fixed it yet is like when we built components which are now called Integrations that part wasn't even well understood so we had this weird naming we had resources then we had like components so then we decid Damian was like let's call Integrations now we have a real thing and we're
doing we doing All the dots to be like here's what Integrations are um we're gonna fix the dots for deployment but it won't be good yet yeah what you want what what you really want to know is how do we get from you have to use these two tools and here's a manifest to like here's a story that we have yeah um the plan like so what I've been what I've been doing this year is like is part of my role is to like project past the current year past what we're working On right now
the team is working on like 9.1 9.2 9.3 but I'm working on 10 and 10 the next version whatever that becomes right I'm trying to figure out how we take what we've learned from aspirate ACD and how that moves forward in the future like we definitely we definitely and I have prototypes of all this all this stuff so like we definitely want to support kubernetes in a first class way Unos it just those are the easy just Mak sense things to build right um how that Gets packaged how we make it work is not fully
clear yet but it is to me I think I understand now doing a bunch of research like deployment is super complex because people just do a lot of different things so I think we'll have the same pattern where we'll give you building blocks we'll give you like a way to produce compose or kuet manifest but maybe we won't create the cost maybe someone still has to glue the entire thing together yeah but we want to but We want to build a system where you could have potentially deployment Integrations so let's say you don't want to
use bicep to go to Ay you want to use terraform right the idea would be someone wants to write a terraform integration for a spire and they plug it in and now they can write code to spit out terraform instead of yeah I I think the way to think about this is like when we Shi the first preview of a spire and we had support for a Deployment the Manifest had resources that were typed redus v0 um postgress v0 and it was very simple and then we had to sit down and say how do you
modify like settings in Azure and then we were like well this is not going to work yeah so like we we pivoted super hard and then we have a bicep resource and bicep is like you can put arbitrary bicep in there yeah and we move more and more stuff into the Outpost and out of ACD so the progression has been super hockey Thing that works in this one scenario more robust thing that works in more scenarios zoom out some more okay if we did this now we can support anything not just um you know container
RS but AKs and other other platforms so we're on this like we're on a path it's a journey but so that the reason you won't see docs tomorrow that says you should do I mean and it's making people super mad by the way we we we are super aware and we're we're going to do enough to make Sure you can understand what currently works and what you should be doing for other scenarios but the intent is definitely like as flexible we want to make deployment as flexible as we do development stuff right that's the intent
yeah um but that requires us to do a ton of design work around extensible Publishers what we've calling them so far because right now we have one if if you want to like think about interface implementation we built this Interface and we have one implementation is for is for AER actually it's not for a it's for ACD specifically yeah the output we produce only works in ACD to make it work otherwise you can have to build a whole bunch of crap around it and aspr built the same thing but for kubernetes and compos and Helm
right and now we have two interfaces two two implementations of that interface and now we're in the process of trying to figure out okay how do we genericize This pattern and my hope is that this year we'll have like an answer to to the whole thing like just so you know like we we are in close talks with with Dave like asate and like it's the goal is to pull it back into the main project so you you will definitely see I am assuming nothing changes big progress in that space this year please change the
name when it comes in it w yeah it won't it won't be a different this time yeah Call it pneumonia or something code name call it uh you mentioned visioning a bit and the visioning of aspire is interesting because you guys are like Cowboys like ah don't give a about anything AA here's a 9.1 here's a 9.2 I don't care oh yeah oh yeah we're we're we're I mean so one of the things that was set up front was that we don't want to align with the net ship schedule like we we as in we
will align with net When it ships but we want to be able to ship monthly yeah and I think it's new for people that are used to the net one your Cadence but I think when you're in like new product mode we want to iterate as fast as possible to get to a place where like all the basic complaints are gone like my whole thing was so last year I had another baby had no I have three kids yeah and congrats thanks um that's that's why I Haven't slept in like a year um but the
thing we wanted to do for nine right it was like we had to set of complaints after it I told the team like the goal is to get rid of people's day one complaints anything to complaint about on day one we have all the feedback let's just fix it yeah right so like N .x I think people who haven't use as Spire yet who will end up joining in like 9.2 9.3 are going to be like super Happy because it will just do all the basic stuff really well right because we would have worked all
the Kinks and figured all the weird Parts like testing is is is a new Focus for us so yeah one of our devs like testing was not in the plan by the way we were not doing anything with testing yeah one of our devs Ruben he just like said T's important and I was like okay and then he just built it yeah okay well we we'll ship it um and now We're seeing that being like a really really really big useful part of the entire St so we're going to Pivot the team and spend more
time making testing like work really well we're going to have a we so by the goal is for 9x to have a really solid in Loop Dev what we call in Loop Dev F5 the F5 cycle yeah inloop and test story like one that is unmatched right because like the things we want to do with testing that people have asked for I could be wrong I Haven't seen anything do this yeah there's test containers it's really cool you know you can have your outp you can boot a container you can run it what we're talking
about is like just to express what what we want to what we want to do like and this is this is on the issue so it's not nothing is private it's open source yeah you have a system right you have like a talks to B talks to C talks to D database stuff in between what we have right now you boot The entire system and you pke from the outside you send request to it right and you can't mock because we're booting a process yeah and that makes everyone like confused everyone's like how do I
Mock I'm you're you're booting it's like spinning your entire system over here and then sending requests and getting responses this is not about like mocking out the off provider because you're literally running it but enough people have asked to like Stub out Individual Services that I'm like what system does this like if you've ever used um what's the kubernetes thing where you can like there's a there's a kubernetes based thing where you can kind of poke one of the services yeah out of the cluster and make it traffic locally yeah like we can do the
same thing before your app post so the the goal is I I want to declare which which of my resources are Services I want a m Locally and then any calls into that service get R to your your code directly in test and like we know how to do it yeah but it's just like do people really want this and it turns out you would do something something like that with wem Mo if you were running like integration test W yeah AP y so Wok would do the same thing and yep I think there is
room for a distributed application Factory class that works in the same way that yeah the Same way as the web application Factory would work um I I can see people want that there are better ways in my opinion to deal with it I've been prototyping so for me just to give you to give you a bit of context I think that that if a Spire can be extremely successful on something is to be an endtoend or integration testing platform okay I think that if someone wants to make the next big thing in net they would
they should build a framework That use the distributed application Builder and all that jazz and then rewise services and allow you to overwrite containers and whatever it is and execute you know test whether that's with k6 and bommer or any other service it doesn't matter whether you want to be performance test or you want to be integration end to end I think there's a big story there because all the pieces of what you would do on a staging environment or even prepro if You want to run any type of testing is there like you can
do it the only problem currently is deployment but that will get fixed so I think there's room for it should should it be your priority at fix tooling before I fixed that what do you mean by tooling I I should have it the spark man that allows me to say Aspire Aspire add and mention a package name and add it net Aspire publish kuar and or publish manifest or publish compose and and create everything um and I've seen what mad is working on and I'm not sure I can talk about it can I I can't
talk about it can I I I don't I don't even know what it is okay I'm going to cut it if I can't talk about it we can briefly mention I saw Aspire run oh okay and and I saw Aspire grow so I don't know what grow is okay maybe that that was you we discussed we discussed so in my aspirations for aspir talk the one where I promised things That we maybe aren't going to do like I say some of this stuff right so like we want to have an Aspire CLI I would say
it nothing is confirmed yet but there's a lot of experiments that are being done around the front end like maybe we what do we have on the command line what do you use what does it do yeah um I think like I've done enough to kind of project why I think we should build but like like normal I build some Protype we show the team we iterate on that prototyp and then it gets broken into like we do this first and that first and this first we sequence the work right um it's interesting you call
that tooling because we did Aspire in it and we did the vs story and then we kind of improve the vs code story but it's still not quite there yet yeah and like there's no command line story so you can't really do this the same things When the Comm so that yeah that's happening concurrently so yeah as an example net watch got Rewritten completely yeah to make so it's going to work with a SP yeah and that that's in that's coming in in 90200 which is pretty soon yeah um but that took like a big
big effort to like rewrite the whole thing and then like make it support what we do in this what we call the IDE protocol yeah um I think what we're trying to figure out if you think about Designing a product like like this there's like fixed number of resources and you can say where Microsoft we have like you know huge team but we don't we don't that's not how big companies work big companies don't say we're going to put a thousand people on a project and plus that would that would even be useful yeah right
what ends up happening most of the time is like and the the aspir team is extremely like experienced the team is very very very very very Good Engineers right um so we can give Engineers like big things and have them go off and just like build the whole piece the whole thing right so now we're in like refinement polish and improve all the warps mode um we ship the thing Dev support for watch fix watch that's a whole engineer for like a couple of months trying to fix that whole thing um so I think you'll
see it people should be patient we are like trying to figure out with the sprawl of stuff we can do What do we do first yeah like one thing that came out recently was off we don't do anything specifically for off yet and there's all these cool ideas to build an off proxy you know kind like like easy off like do we do that do we make it end to end where you can just deploy and it gives you an ENT app and it does all the wiring for you like we can we can now
automate all this stuff so we're balancing the vertical do we do off as a vertical and make off really good do we Make SQL Server really amazing or do we build more platform features to to to to rise the tight on all bols yeah um and it's a balance right yeah um as an example we shipped we shipped persistent containers in nine you can say like you know persist past like people love it but there's all kinds of bugs like yeah where if you m if you mount volumes with a random temp file which we
do all over the place yeah it changes run to run so the container dies and gets recreated Right if you randomiz passwords and you don't use the S from the last run so so we're we're in the phase of like okay all the stuff we built let's just make it work really well yeah and then and then like add more things so I think it's possible that like if someone were to use a fire next here they would be like oh my gosh this and this is me going to project oh my gosh I can
Dev locally with F5 yeah I can run a command I can run know a Spire Verb spittle a cicd script I can use that put it on GitHub actions or adop pipe ples or gitlab I can Aspire deploy and get it all working I can grab the tool kit and get a off proxy hit A5 and test out my off yeah I can deploy a thing to thing and get in and that's what we want to build it's not and and as a platform team we I see Aspire as like a thing you target right
it's not just a tool you use it's a platform you Target and that's that's I think where It differentiates from other systems the toolkit is where you can grab the crazy idea that someone had that is like someone added support for I don't know um the emulator for something that doesn't have that doesn't have one but but it was built from scratch now you can F5 it locally and it just works and it isn't cobbled together scripts that you have to clone from GitHub and use and like the vision is really about us making a
thing like aset core Like is that level of a platform piece but not for Web projects yeah for like building applications right composing applications made of arbitrary things yeah and then someone build an endr plugin like yeah in the next version of the toolkit you can add the endr plug in and point at your app and you'll just get Pro scene for free like that we didn't build that we didn't have to design this thing we we just built this platform where you can tweak end points With like code and and and is it isn't
to say you couldn't do it today you you can go to engro get the tool locally tell all your de hey guys run Ang grock look in the launch settings grab that Port put it in here that could be your read me yeah or you can be like grab the mro resource and hit that five yeah that's the vision that's that is sick I don't want to move away from the two link discussion just yet I just want to make a last comment though um you know You said interesting talk about it as tooling for
me on an open source CL close platform more than technology everything starts on the CLI and goes upwards yeah I find it a bit insulting as a developer in an environment like this in a multi ID environment that VSS was the only ID that got the first one yeah and it wasn't the it was the first one for a while I mean right after there was a ryer um Plugin but even for vs code users it's not even about ryer to not have that at launch I think you guys should not be designing that way
I understand the reasoning you know vs is another product we sell so we have to you know but well it doesn't really make sense cuz you cannot like give me the C dev kit which is awesome but then not have it ready things yeah it's just it just isolates a big chunk of the of the Ecosystem yep that's the last comment I want to make just so everyone understands where I stand with this um I talked about it when when it came out as well but so I have many questions and we have too little
time that's unfortunate but I think the most important one I have is the second biggest complaint I get in workshops which is do I need to have everything in a monor repo for aspire to even make sense so and and you Know you added the you added the ad project um that thing doesn't work it kind of works but it kind of works it doesn't yeah it's held together with duct tape and dreams but there's also the you know you have a very nice cool SCE generator that makes the finds the path it's like it's
like Ah that's amazing but it no I say nobody the vast majority of people do not have everything necessarily in relative paths so you can Use the project and they don't have necessarily everything in the sing in a single solution you know they just don't yeah so y that's a bit of a problem and unless you have then an isolated solution that only manages your everything really yeah it's monor repo kind of thing yeah you kind of implicitly making a monor repo then so what are your thoughts on that and do you see any solutions
and ideas I have Some and um I'm very cheap I'll give them to you for free so I am last night May I had a conversation because she she mentioned that where she is she's getting a lot of questions about this too MH and just small segue aspire adoption inside Microsoft is really good and we didn't we didn't we didn't tell anyone to use it this are picking it up for for local Dev that's why people same that's why people are trusting it as opposed to You know Blazer had a bit of a who's using
it we use Blazer yeah that that always happens I saw I saw that the you and Dan talking about Blazer as well um but the that it's it's an interesting discussion but I think having seen what people are asking for right and what they want my conclusion is the multi reper problem is a source sharing problem it's the same problem you have When you want someone to consume your software your library your whatever in the same company in the same or in the same whatever so if you were going to zoom out and treat the
problems like that like what's the solution today nette right so you use nette to share Source software libraries across the org right so if you treat if you treat your microservice and maybe your service is like AR rest API a database and a cash if you treat that Like a unit and it's the same as reddis like like redes has some software that they use and they put it in the container and you consume it and you configure it if you treat your microservice or your piece of the P that way then you're producing an
integration you're producing for someone else an integration they can use in their Outpost yeah so the way the way I see it is like each project has their Own Outpost right so you are the uh backend team that is going to provide the apis for people to consume to get products and then there's one for categories and there's one for there's four teams right they're all fiving and my assumption is that those teams don't need I mean maybe some depend on other ones but like you are going to have your own isolate because if you
didn't then you wouldn't be a microservice you would be like a monolith so everyone has their Own world and then some team Downstream needs to use the backand service produced by these teams right but also this frontend service from from over there let's say exactly so the way I think about this is like if you think if if you consider this what you would do today if you were doing sore sharing right I'm not sure you you would want to clone their repositories cloning to me is like the lowest level version of this you you
want to I want to build your Software like that's fine it's not the end of the world but like it's complex I got to clone I got to figure out what what typ to clone what version to clone I put it all on disc in the right layout there's a there's a there's a package called poly poly poly repo I think it's a Aspire extension that someone built that clones the repo locally yeah say it clones then you can it that's fine that that's not a big deal but I think in my ideal World each
repo is producing n get Packages MH so like the category the the category service and the product service they produce a new get package that package is a hosting integration yeah and then front end team says I'm going to install the the category service from my from my team thing and in their app post they call AD ad category service yeah now to make the entire thing work well end to end to make it work the way things work today you would need to have a container Registry or some way to package the application in
a n get package in a n get package that's runnable today we don't have runnable apps from packages you either have to do like a tool yeah or a image so I guess depending on your level of sophistication do you have a container a shared registry in your org you don't have long that seems like a little little bit of a burden right so one of the things I've been thinking of is like How do we how do we basically make it so you can package the application in a n get package and then consume
it in another yeah then the end to end would be I'm a service team or or I'm a team using a Spire Team B wants to consume my service my my default option will be I'm going to produce a package for them but today getting from your solution to a package is like you got to figure out how to package your thing and so I can see a Tool chain where you you just pack your app post as a library yeah like give me give me an integration for my application and the 10 dependencies but
but we we encapsulate all your dependencies as like a top level method like give me give me the blast service yeah and that's how you do all this multi things like that to me that that feels better than get cloning like on the flight and making a subm module multi- repo end yeah I think the reason Why some people want the cloning option is there are cases where if you're just debugging the entire system that you might you want to be able to step into that code yeah and I think that that that's fair and
I think if you need that if you if you're at that level then just clone the reer and run it but I think it would be really cool I don't think it's needed but I think it would be really cool if Microsoft did like an official story for That because even yeah if you say each team would have their own app host then what if I want to have an apphost that runs everyone app host and I then then the question is like the question is do you just want to to make your mon repo
easier because people people complain about monos but like yeah then they ask for that and I'm like so so you do want a mono you want one built on the flight for you yeah that to me is like that's fine that's not a that's not a big Problem yeah but then you can't complain about monos like because you want one yeah that's true if you put it that way it makes sense yeah people people maybe they want a just in time repo like a just in time repo that they can manifest on the flight like
T had a feature where you could p in another Tamo from a different reposter and it would CL it for you yeah and as convenient as that is it always felt like okay well it did the Clone who's going to update the Clone like who's going to manage to get repository are we supposed to manage it or is that just a one time pull like you you have it's funny you have all the same issues as like I guess you could put a tag in there and pull and upd the tag if it's not the
right tag if you treat I mean if you treat a repo like how we treat a container image I gu see it being a thing like I get repository that does the Clone in the back end and It pulls it locally and you can pull sour from there that that's it's not the end of the world I just think I'm not sure people have thought through the implications of like managing this like long-term thing like it's someone Source it's a whole Source tree it's not just like a project it's like you're pulling in their entire
project with their bill CMD and you're and you're basically ignoring all their stuff and pulling This one project I think would sorry to interrupt it would make sense because let's say you have two microservices in your own team right but they're separate microservices um but why and but why they're separate separate separate why if you need if you need both let's let's say you have an e-commerce website and you have the product catalog API Y and the pricing API yep and the pricing API needs to be scaled differently because You see pricing way more than
you see product or whatever it might be yeah but they talk to each other um if you want to spin up both you have to run two uph house projects and that's fine but I'd like to see my Telemetry and my correlation my spans and everything together and there's no way to mge at least Telemetry on the buil-in dashboard yes you can push it in the same Prometheus and then use a grafana dashboard to visualize it or Even or even better app insights a sound effect wink yeah wink wink uh but I think there is
a lot basically to discover there and the whole how everything hangs together oh there is there is and maybe it's to I think it's too early to even discuss that because there's bigger fish to fry like the support cycle because because support cycle indicates in my opinion in many cases product Readiness mhm and when you have Support CLE like Spire which is not on the net STS LTS model but the moment major or minor version is out the old one is just immediately out of support that yeah indicates the the move fast and break things
but also indicates that using this you take a significant risk right now what do you that's a good that's a good I think a good assessment like I think really early on we knew we wanted to make bigger changes and the product Isn't doesn't have the ship it needs yet yeah it's not done yet right um we made a lot of breaking changes but I think we funny we learned so much from doing onet cor we just learned so much from doing the wild west thing that I think we have a really good model for
how we think about breaking like we did insane stuff in asp.net where we would break things super hard every preview version and people were like super annoyed and bounced out of that super early I think With a Spire we adopted the like we're going to obsolete apis aggressively we're going to Mark things preview we have enough features now to manage it in a way that's not just like someone deleted all the parameters and now my method is not working anymore we have enough Integrations built on top of the platform that we're thinking about like okay
if we deprecate this core feature what would we do with all the Integrations so I'd say like I wouldn't Worry so much and this is no bias talking I wouldn't worry so much about the the wild breaking changes from build to build the team has a lot of experience now managing like how we release features and we still make mistakes um things we don't have this thing called preview features so yeah we have a thing you can put on on methods that we aren't sure about yet and we'll we'll put it out there so it's
it's less move fast and brick things and more like Move fast and we have a lot of tools know to indicate that we're going to break things in the future yeah um as an example the dopper support is obsolete yeah in 9 9.1 because it moved to the toolkit yeah right so when you use it you won't get a it won't you won't get a binary breaking change it'll still work yeah but then there's a gradual move to say like remove this package add this package change names and you're get to go yeah right so
I would Say yes definitely move fast yes we want to ship often yes we are still changing the platform but it's with so much more care than we have so much more care and so many more tools than we had before before it was like we we had this thing called pnal it's pretty funny public internal Okay and like I recall when we were doing it in it's at core it was like we we don't want to use internal like horrible to use internal people can't extend things but then PP Turnal It was the other
side of the world it was like we release all these apis and then it was like crap this thing kind of sucks are we going to remove it and we had a release where we put we made all the ptal stuff internal yeah those kinds of things are what make people mad because it just it is sweepingly breaking right yeah um having gone through that several times our Mantra with as Spire is like yeah we can make breaking changes but we're going to Stage them yeah so like this thing is obsolete you get a few
versions to kind of observe it and then we'll just y it from the attack um yeah it makes sense I mean even I remember even node um in the beginning when it first came out it was breaking people like crazy cuz new product you're still discovering and what you think you're putting out is not what you should put out and the way people consume it is not The way you expected it to be consumed but it makes sense to be consumed that way so you improve that experience so as yeah as breaking as it might
be yeah it it makes sense you know and and and the whole thing you mentioned about support Readiness MH it's true it me being prepared for support like it's true that like this the life cycle is is designed such that we don't want to take on the burden yet yes there there will be a moment where it flips okay and we Had long discussions about like do you want to be LTS do you not want to be LTS and like are we ready to be LTS so we had a lot of discussion about like if
we do this like we can't innovate we can't innovate in the way we want to innovate we can't get to that point quickly for a long time so you're going to sacrifice adoption for people who are like I need this thing to be in the same LTS to use it and that was the we made that trade-off we just said okay that That's fine we we can deal with less users who are more highly engaged in the beginning and then by the time we're ready to do the LTS thing and people jump on board we'll
have a solid foundation it'll be much much more stable we'll have a lot of extensions a lot of plugins we would had we would have had a lot more feedback from how they engage users super early on yeah like I did this analysis um with chat GPT where I looked at all the YouTube Comments that I could find right and I was trying to figure out sentiment over time yeah so your views have the most comments far it was kind of incredible like sentiment from when Aspire shipped like what the hell is it was the
biggest sent yeah and I I charted like the what the the hell is it over time and Maddie's job when she came in as PM her first job was to help us fix that sentiment yeah like how do we start telling people what this thing is and What it's good for right and the thing that I kept saying was less adjectives and more knowns like just just to stop adding all these random objectives to the thing it's like it's like we're talking to devs right um and the sentiment changed because now people understand what it
is there were more videos there was more content there was more things and it's like oh now I know what it is now I get it now when it first came out this Kubernetes yeah I mean I I sort your comment the comments by like um most recent yeah to see if the sentiment changeed like if they if they get like do you get it now or is it still the the same old thing yeah so I feel like we are in a place where we made this tradeoff where we're saying we need to we
need to iterate quickly we need to miners we need to not be LTS yet we need to get get the platform to a place where we feel like confident but in a Way that's not as crazy as when we did Cor in the first place and yeah we made an explicit tradeoff and we we like we know we know yeah we know for sure because I mean people tell us they're like your thing is an LTS I can't use it and we'll be like yeah okay but try anyway on on that note then I want
to ask you and I do this with everyone from my Microsoft I talk to yeah and if you've seen Dan's interview You know what coming yep um where do you stand about the whole STS LTS discussion how do you feel about the 18 versus 36 versus whatever else could be better in your opinion I think we need to change something in a there's a discussion recently about about this internally about what tweak could we make to make the conversation go away right I think it's one thing to talk about LTS versus STS But there there's
like a few specific points that I think come up super often that we could address that would help make the conversation be easier right like when you give when you give people an easy thing to attack they just attack it yeah so three years like you could say five years or 10 years like three years is three years that one that one I'm pretty on like okay it's three years if it's too short like I agree with a three years thing for the record I think Three years is perfect and I think people who who
say it's too short are irrational my problem is not with the three years um I know my problem is with the other I I agree I I feel like we like initially I was like this is fine given all the feedback maybe it's time to consider that that that there should be be no big overlap M um but yeah I I don't know what will happen but I think there's been enough feedback for That specific thing that maybe we should figure out ways to make it so that people don't have this staunch um like perception
yeah that SDS is lower quality that I'm GNA have to rush to update to the LTS because of the overlap the thing I mean we get the same feedback from people that use Microsoft intern that use internally yeah so it's not it's not brand new and I think there's been more rounds of discussions because We're now shipping things as packages that depend on non LTS versions like if you use system tax Jason n onet app you're six month no support six months of no supp are you supported you know yeah so I think those practical
problems are being reassessed now okay I mean it makes but the threee thing like no the the threeyear thing for me yeah it's a shame for me that every other version of net the vast majority of net developers will not get to experience it until the Next thing comes out LTS yeah and then you take up more risk even if the risk is minor because now you have the risk factors of two visions right so and I've I've I've said this on on Twitter or whatever I think there shouldn't be an STS I think every
version should be 3 years or if that's not the case then at least the libraries of the SDS should be supported for 24 months then this Complicates support but I I talked to Steven to about this and he said I think he said like one third of developers at best case scenario are the ones that upgrade or or even less to the STS version yeah it there's always a dip yeah a big dip it's a shame right because the quality is not is not different the C version that that chips with the version is not
less quality or less R I talk with mad I asked mads About you know this exact same thing and the interview by the way with mads would have come out so people would have seen it but he said doesn't make literally zero difference to me can I ship this feature complete on this version I ship it do I have to ship it on the next I do but whether it's an even or an odd zero difference to him and and we've seen it we've seen big features in either version yeah so yeah it's just a
shame really it is and I can say the Conversation has come back up recently so it's not as though I mean we've been talking about this for a long time but I think there has been enough events that have happened recently mhm to make us discuss the whole thing again um I think one of the issues that came up on the Aspire repo is open Telemetry now depends on the 90 versions net without the TFM split so if we update the template to be the new otel versions it twice your Entire yeah depy graph to
be9 you know what's funny like so I I worked on New get right I worked on the original net and I worked on like when we when we built on that core like we rewrote net yeah like we rewrote the algorithm from scratch yeah yeah um and we've been having the discussion about lifting versions and how do you stay in support an LTS STS from that point of view for a while yeah and then there's a patch that comes out for a Dependency somewhere in the graph like do do we have to reship the entire
thing like or do we have to reship just that that one part and how do you hoist dependencies this is all intertwined it's like is this new get features that to keep to keep you on that version do we have to tell package authors to Target different versions based on the TFM like how do we avoid this weird thing yeah and the whole the whole thing is about am I am I still supported you Don't want to install a package and be unsupported that I think that is the the visceral customer scenario right it's like
I installed this random package it depended on newer version of of the Json package and of support for like net huh that's the thing I think everyone want has to feel and we have to fix yeah because that feels like kind of crazy right like how can this package I support I didn't even know about this until stepen mentioned it yeah because Your brain just doesn't go there and I had some discussions with some other people at the conference this week and they're like what wait what are you serious is like yep yeah it's out
of support it's just you have to downgrade to the latest eight version if you want like updates it's uh yeah at least it's good to know that it's on your radar in some capacity and something might happen yeah and I I think I think this time feels Like an action might happen because of who's talking about it is like involved and a bunch more people are pushing harder it's funny it's like C features right yeah it requires a champion if if you don't see a champion yeah from the team like on the feature then it's
just a fairy tale yeah you can you can Envision any feature you want you can make up anything you want any Sy you want you can see a proposal if there's no champion on the team who's going to Like be the champion for that feature like it's not going to happen and I think that pattern in general applies to like bigger features um like like if you want to change policy you need someone with some pull to be like I am going to be the one who's going to drive and push and make change if
it's going to left in the air and no one's accountable it's like yeah people are complaining okay yeah who's gonna be who's going to be in charge to Like solve this problem kind of thing yeah that's that's really really nice to hear then given we only have 10 minutes max I want to ask you the last question which is what's next for do Aspire what's the thing that really excites you that hopefully or maybe we haven't talked about even if we talked about it just you know yeah yeah um so I spent a lot of
right now so we do customer studies where we go and talk to customers about how how they do X Y and Z we're doing a lot now for cicd and devop style task and deployment and team makeups to figure out like what to Target first and stuff I think over the break and in the beginning of the year like so far you know when you've built something and you haven't quite figured out exactly what you're doing I feel like I figured out like what we what what we've built and what we're building yeah and like
how The model kind of falls out of like what you're doing a thing and you know there's something there and you're doing all this stuff and then you the nut I feel like we've cracked something I figured out like what we've cracked and now it's like everything is falling into place kind of thing yeah so in my head I'm like how do we take this understanding that we have now what we're building and turn it into actual like aain Lan for doing Features yeah so like deployment right I feel like in my head I know
exactly what we have to write like the code we have to do and where it has to go and stuff but someone has to write the code and make it like do actual engineering work um an example of this is like the model we have today for resources we shipped it but it's not it's not sound right there's a bunch of like warts in the design yeah and so no like we had a discussion and no like we CED it oh this How it works oh this is perfect this is really good um how we
made the ACD ACD work at first super half he like hardcoded things here and there have a discussion about it we we have a meeting every Wednesday called hard problems and it's three hours yeah and we just like that's where we kind of crack on individual like hard feates like yeah how do we solve deployment how do we solve aure resources how do we solve um other things and We went through like a a bunch of the hard things and the model is just like shaking out you know you know when you figured out the
platform like the core yeah you've like solved like the core problem I think that's where where we are now with this buire and I've been tweeting about cicd on like for a while now and it's because I've been doing all this research about like how people use it how it works under the covers like talking to the teams that built the cicd Systems I feel as though I'm talk I'm talking to customers to see what they do today feel like this this may be like over promising but I feel like we're going to be in
a place by end of year where all the obvious complaints are gone and people are going to be like my company does this really weird offshoot thing that you don't have support for so I can't use all your thing but I can see how it would fit like we'll have a model that they Understand and can like explain what's happening to people in their team one of the one of the biggest things I think we realized was like if developers don't understand what's happening then the tool is Magic and bad like it's like what are
you doing yeah so on the comments right on your video yeah I know how to use kubernetes I know how to use Helm like I get this stuff if you are you're making devs dumb yeah and it's like well I could draw a line from the C To the iel to the aam not everyone needs to know all all the pieces but if you know all the pieces then and and you understand how to make the C turn into the helm then it's a tool you can use it's not just magic it's like this is
you can influence the the outputs by changing the source right yeah so for me I think we're going to bleed that model that we we we designed for Dev into cicd and deployment and that that ENT end yeah and that to me will be like okay Now we have the platform to Target all the things and now we got to figure out how to build build up the entire planet and yeah the goal isn't to replace pumier terraform the goal is to like potentially work with those things a first pass way that's more integrated yeah
that' be sick yeah it it it feels like we have something that's unique like it's coming together now yeah that's awesome I'm pretty excited Yeah the more you don't go in an LTS STS like Loop the more exciting it is it's true it is it is it's it's not even a joke it's like it means oh they mean business they're willing to like cuz once it gets into that Loop there's something you just can't change it easily um so take your time is all I'm going to say you know we are we are the team
is highly highly highly senior yeah like everyone in the team is Principal Engineers pretty much um and we are trying to figure out the map of features and how much where do we spend our if we're going to spend our money biggest buying for the buck right and it's a mixture of biggest buying for the buck Buck flashy cool stuff yeah you're you're obviously going to see AI you're obviously going to see AI coming somewhere right but yeah what I'm hoping is that we've built enough of a base that those features are just like value
Ad someone can just build the off story and not change the core platforms so you can build anything else and it's funny it it even took us a while to understand how to map like when when Damian renamed components to Integrations it actually did something to Our Brands where freed us yeah where we split Integrations from the platform yeah we triage bugs differently like we have a tiag for every integration mongod DB so we can Say like this release we're going to spend time making that integration awesome and it's kind of intentional time spent in
that integration versus like in the first version we made all them work at the same time like we have to get them all off the ground and it's like building the plane while trying to fly it it's like nuts right yeah now we can take our time and say like we're gonna make persistent containers work and that's a cross cutting feature and We're going to you know we're going to say every integration we have to go through so we can kind of have an issue where we're going to say like we're going to do a
first then B first then C first once we get our head above water then we get to choose like yeah do we want to do this and that and we're we're almost there so that's what I'm looking forward to like now we can choose what we work on not now it's not just ah when I run a watch it's buggy oh vs Cod Doesn't work like yeah making to cooling work AC command line vs code and vs like that's a priority and like I I agree with you it's super unfortunate that we that we only
did vs verse it's a good thing the team writer like made writer work because that we didn't we didn't them we just were like thank you for making it work here protocol made it work it wasn't even J brains it was some some yeah some person they did that and then I think it was Brought in something yeah because the plugin architecture is like the same for any ID so it's very easy toing yeah it's crazy well so I'm I'm pretty pretty happy about like that stuff so yeah yeah awesome well thank you so much
for for being here again uh and I'm sure you'll be looking at the comments when this goes out oh yeah I sentiment analysis you did I a for I told Maddie I said Maddie like I am Just so like it's funny I my exper into AI it started off because I was like I don't want to write docs can I take all my answers that I answered on YouTube and GitHub and just like turn that into docks yeah that's where I started to go crazy I was like oh this is actually super useful yeah uh
well that's awesome I'm sure there going to be plenty guys be nice and again than you thank you so much for coming and well you as always keep Coding