 All right, so good morning everyone. Thank you for joining us again this month My name is Rob Sidor for those who haven't joined before architect at Red Hat and the office of the CTL normally I have a colleague Alright, so Now you got to hear it twice So maybe John can help us out with that later Again, thank you for joining us today my normal Comrade in arms or colleague that joins us is Jeremy Davis. He's also an architect at Red Hat and Today he's doing one of those parental things. I think I believe he's going to visit colleges So that should be exciting for him We'll quarry him on that next month and in the meantime Phillip Hayes has been kind enough to join us this month to talk about Corkus Azure scupper and backstage and tell us what all those words mean because I'm sure a lot of you, you know, don't know yet or are interested So Phillip why don't you tell us a little bit about yourself and then you can feel free to jump right in Thanks. Well, yeah. Yes. So my name is Phillip Hayes. So I'm part of the the runtime's team within Red Hat so I focus on Java development app Modernization EAP and those kind of things. So so recently I was I've been looking at You know, a couple of the new sort of technologies coming out, you know, one of the ones that came out from Azure towards the sort of middle to end of last year They they had an incubator project called called radius Which they kind of open source. So took a look at that and built a sort of a, you know, proof of concept using some of Red Hat's cloud-native technology specifically Quarkus for Java development and also scupper and backstage as well which are Your upstream products for for some of the products that Red Hat have recently released and Provide support for so so let's just yeah, let me kick off. We'll go through and Just give a kind of a brief introduction to what each of these different technologies is so so as I mentioned as your radius It's an open source project that supports deploying across applications across public and private clouds You know, I would you know, of course you'd have a look at that app.io There's some good documentation there and you know getting started guides around radius But I mean that the idea is that it kind of allows Developers and operations teams to have very clear sort of Separation of concerns so developers can focus on developing, you know, obviously the application logic Focus on their code and then when it comes to deployment operations teams can make sure that Developers have the ability to deploy to you know, whichever environments they need to without having to sort of get into the weeds of You know how to you know, connect into Azure or how to sort of set up as awesome as your for example or on AWS Or if they're looking to develop locally, maybe, you know local Kubernetes cluster that they have available so So we'll see in the in the presentation how I can create a simple sort of radius app that Will allow me to deploy to a development environment Which is in my case an OpenShift cluster and then if I push that out to production It will start to create resources on Azure and so on but again without really anything You know that I need to do from from the development perspective. So So it's pretty cool. It's very early days though. It's like on version 0.30 as of today, so it's very much sort of alpha type technology You know, it wouldn't be necessarily production ready at this point but worth worth a look Backstage and you know, there's been a lot of buzz around backstage over the last couple years since it came out from Spotify It's product that Vedat Have a productized version of backstage now in developer hub And you know with that there is support for plugins to that technologies such as you know The topology of you for Kubernetes and OpenShift and Quay, Argo CD plugins those kind of things But backstage, you know, it's it's a lot and it provides like quite a broad sort of offering The idea being that it's it's a an IDP for developers to be able to You know self-serve, you know start new projects You know get insights to existing projects look at how you know where they're running You know look at the you know any images that have been created as a result of them where the documentation is Look at various different environments. You know look at the logs, you know sort of a kind of a one-stop shop to be able to Spin up or look at projects from a development perspective Without again having to sort of go to all the hoops of getting access to various different systems and all that kind of stuff So so we're going to use backstage today to to create this this radius project which which Ultimately then will allow us to use these other technologies so So scupper for anyone who doesn't know about scupper. It's layer seven service interconnect So it allows secure communication communication across Kubernetes clusters or back to you know virtual machines or bare metal with no VPN or firewall rules so What we're going to use it for today is quite a simplistic sort of example of how to use scupper It's it's it's a lot more. You know a lot more capabilities than we're going to go through today What we're going to use it for today is to enable communication from a virtual machine to a Container running an open shift without having to open up any firewalls or anything on that virtual machine And it's going to be all done using mutual TLS and everything, you know all that kind of set up for us by the scupper CLA again, it's it's a Frame with that that had have a politicized version of so that our service interconnect is also the supported version of scupper Which is in market now And then I'm going to use caucus and I would hope it you know people on this call have heard a lot about caucus over the last few years You know, it's it's ideal for cloud native kubernetes Native Java development providing very fast fast boot time very small footprint And we're going to use caucus Just as a as a you know, very simple application that's going to use a post-class database And then and a various cash You know for us as an in memory cash And again, we're going to spin that up using our backstage Template that we have that we have created not going to go into a huge my detail on caucus We'll just sort of see How it's used in this example so Again, what we're going to do is we're going to spin up a project using backstage You know cloud native development project that is going to have a radius Template which is going to allow us to deploy our application to different environments based on whether we're going to dev or etc Within that there'll be it will be a caucus application I'll be the core of the of the project that spun up And we're going to use scupper then to attain connectivity back to any sort of potentially any legacy in-house systems So let's look at the sort of this is the kind of You know architecture that we're sort of starting off with right so Let's you know, so hypothetically we've got a an open-gift cluster Which you know, maybe could be in an in-house data center And this is that the cluster that our developers would use to You know to try out applications and do development testing and so on there So so the developer would have the ability to spin up resources on this on this development cluster You know, maybe spin up databases caches that kind of thing We also have a pod cluster as well Which could be running on on the cloud provider in this case It's Azure it could be AWS or any other cloud provider as well And we have two virtual machines both with a database running in them I'm using a database in this example, but it could be any you know any sort of legacy services I could be a soap service it could be anything that that would that would That we could access Really over over HTTP To connect back into that that system And it's quite a sort of a common scenario that as you start to migrate applications to the cloud You may have some services which which you know have other dependence within the organization that can yet be moved to the cloud so using something like scope or that service and to connect is an ideal way to Leave that that service in place but be able to sort of open connectivity From your from your cloud services back into that So that's what we're going to do to start off with we're gonna we're gonna use scooper to create a connection between our name space on our dev cluster back into our Database running on our virtual machine. I've already got this one connected connected up Just to save time in the demo, but we'll go through the setup of this one Once that's in place, we're then going to go to our backstage For then and we're going to spin up a new project which will have radius and and caucus use a radius template to deploy a Caucus application that uses a redis cache and connects via scooper back to this database And the kind of the cool thing then about you know about the radius framework then is Again as a developer all I need to do is specify. We need a redis cache for this application radius will look after Where that various caches is deployed whether it's deployed locally for depth purposes or whether it's deployed Unazure, you know, maybe for you know Qa or production sort of purposes and it looks after connect You know the connectivity between these you know via secrets In in Kubernetes of open chef So there's a lot of the heavy lifting around the sort of deployment of these dependencies and wiring them all up first So so let's have a look at the demo. Hopefully everything goes well. I mean, there's a few moving parts here. So Fingers crossed everything goes to plan so so let's have a look at what we're going to go through We're going to go we're going to use scooper to connect a database on our private data center In dev and part environments, right? So so I have my Just I've got some instructions here. So let me go through and see so I'm going to create a new project on my Open shift cluster, right? So Hopefully everyone could see my screen the font is big enough Sorry, let me try that again with the actual proper command All right, so there's my new project created and now I'm going to I'm going to use the scope of the scope of command line interface to to do the work for us. Yeah, there is a lot also Scalpel operators and so on they can be used to deploy on open shift There's a number of different ways that we can use scooper to do this. I'm going to do everything through the CLI So that's first of all Deploy scooper on in our in our namespace, right? So So let's just Deploy that and I'm also you can see I've got the enable console flag Enabled and I've got I'm telling it that I'm using open shift as the authentication. So if we go back to our UI here and go to Dev radius we now you can see we have a few routes created. We've got some pods running. There's our scooper Scooper pods running there and we've got a route here. I should be able to access I go to there Are they used open shift? There's login. So there's my There's my scooper console and you can see there's my namespace setup So we don't have any services. We don't have any virtual machines or anything hooked up to that It's it's just literally deployed within my namespace So what we're going to do is we're now going to create a scooper service a database service listening on port 5 4 3 2 which is the default port for For postgres we just hide this here all right, so that's that service created and I'm now going to create a Bundle which is going to provide all the sort of you know mutual TLS certificates and everything that's needed and all the sort of You know get the route information that's going to be needed to be able to connect back to this scooper instance on my on my open shift cluster, right? So let me just run this command and We'll leave that to do is work Can you just make the font just a little bit bigger? Yeah, sure. Yeah, how's that better? Yeah, great. These old eyes are we're having a hard time here Yeah, no problem. All right, so I've created that bundle. I'm now going to copy that to my devvm, right? So you can see here. That's my you know my environment available there for my devvm and just to Make it simpler. So let's just copy that over Oh All I haven't I've got um, I got rid of my environment available. Let me just Copy that now That's the first thing that's gone wrong. Let's just see okay So let me just copy that over then um So that's copy that onto the devvm for me and now I can ssh into there and I can now start to do what I need to do on my devvm. So I've already created my gateway previously. So now so I copied over this This package here this this this tar file. I'm going to basically Yeah expand that and I'm now going to run my Run my scupper service now on my dev system, right? So let's just run that So that's running. Um, and let's let's go back to the to the scupper console again And if I just go here back to the topology um Let's just give that a second There we go. So we can see here now. We have a link created between our name space in OpenShift and a database service running on the virtual machine So and again, I've done that by just running something on the virtual machine Not having to open up any firewalls or you know any ports or anything on the virtual machine It's making an outbound connection back into our Our route that's that's exposed on OpenShift. It's usually mutual tls And the only thing it's enabling connectivity for is that postgres Uh database listening on port 5 4 3 2 so there's no You know, whether you can kind of get into this network and and you know browser network It's literally just that one connection back into that database So that's so that's connected up. So what now I've done that I could now use backstage to create our quarkus project that uses radius So in my backstage ui here, this is just the the sort of vanilla backstage interface I can create a New service and I've got one Set up here quarkus with the radius template that uses a postgres database and vetis So let me just select that and we'll give it a name. Let's just call it corner Um, we'll call it the image name of corner as well and I have my own org in quay, so I'm going to use that And again, I've got my own and then we'll just call that corner as well Okay, so that's so basically what I'm doing here is I'm I'm giving details of a github repo that I'm going to use It's going to be in my own account and it's going to be used it's going to be called corner And I've done the same with the image as well That's going to be quay.io and that's also going to be called corner. So Let's just see what happens when I go through that Okay, so that's publishing that So if I go into if I look at the repository, we should see This is my this has just been created for us now in my in my github account And you can see here. This is the quarkus demo and so on that we that we want to be able to deploy to our Are various different environments Again, that's all been done for me by backstage, you know, I didn't I didn't need to know anything about You know the connectivity to github and quay. It did all that stuff for us All that sort of wired up under the hood All I need to do now is to develop is just check this out. So let's let's check out this code Type there we go. Let's go into here. All right, so Just give her that now take my font size a bit as well. Okay So if we're looking to meet me here, actually I could scroll down to the to the end here because I've just got some Default stuff so just bear with me one second And Okay, so here we go. Um, so here we have instructions now to build this image and push it to quay that I owe so So, you know, again from a java development perspective perspective, it's very simple I just do a normal maven package. Um, that should take a couple seconds to to Compile that that artifact first but the um Okay, once that's done we can then do a build and push that to to quay so And you can see here again because of you know, because I named the the image corner Um, all of that's been been defined for us. Um, it's part of that backstage Build that was all set for so I now have the commands here that I can use to build And push this image to quay. So let me just do a build That's pretty quick and now I can push that to To quay so let's do that Okay, so that's pushed there. So let's have a look Uh, um quay interface here and there's my repository there. There's the build that was just pushed up there By us. All right, so that's all done Again, very simple. I didn't have to do any configuration. They're backstage. They said all that kind of stuff up for us so Now that that's been built I can now start to look at using radius to deploy this application for us, right? So, um And you'll see here that within my code I have a radius folder and I have a bicep file And if we look at this bicep file, this is this is the the radius of our instructions It's telling us the image that we're going to deploy Again, that's all configured for us pulling it from the uh, the quay Yeah, the the proper repository in in the image Lightly there and also we're telling it to use a redis database as well But you'll see here when not specifying where that redis database is going to be We're just saying when we deploy this, um, this project We're going to deploy this image and also a redis database And it's going to it's going to look after doing all those connections and everything for us, right? um, you'll also see here just, um, if we look at the resources Um, we've also got we're telling it that we're going to use a database called post post resql um We're called the database wildfire That is That's the connection that has been enabled for us via scope I don't need to change any of this because it's always going to be using a service called post resql from the from the kubernetes uh point of view so Hopefully that makes sense. So let's go and see then what we need to do to um to deploy this So let's go into radius And we're going to now tell it to deploy this To our development environment, right? So you can see here. This is the environment we're deploying to Right, so give that a second. So so first of all, so what it should do first of all is spin up a redis cash for us cash for us in our Uh dev environment, so let's go back to open shift See what's going on there Okay, there's our redis cash that's been spin up and actually there's our our quarkus application running as well, right? And if we look at the logs and our quarkus application Should see. I we've got a couple of database Uh keys already exist there, but it is able to connect to our database. That's actually Can you make that a little bigger? Yeah, of course. Yeah, um back here Um, I should that one just terminator. Let me just get that should spin up again There we go. So do you know so Yeah, so you can see here it is connected to the database Because it's coming up with errors here that these these tables already exist. So that's that's fair enough Um, and again, we can see that it created this This redis cash for us as well. So so again pretty Pretty straightforward from a developer's perspective. Don't have to worry about setting any of those kind of things up actually if I go to Our secrets here We should see There's all the connectivity information to our redis instance from our application, right? So the final thing we should be able to do there then is, um, we should be to expose Actually that's and they're there and that but I've got to fix that Our application is called corner So there you go. So that's that exposed again if we go back to our, um You are here. There's our quarkus application that we're able to access now and I can start to, um Store data store data there. Hold on until there you go the demo gods. Um I got that it stored it for us. So We have a quarkus application which is running. It's able to connect to the cash running locally in our, uh, kubernetes And uh cluster and it's able to connect to a database that's running on a virtual machine Um via the scope of interface. So we're kind of at this point here now is all in place, right? Um And we're able to do that very easily using this using this redis. So this this this radius tool So just just to review real quick philip, um the backstage Thing is uh really about You know, we have a new developer in the company. Um, you know, we want to onboard them quickly um There's data out there showing that it could be anywhere from two weeks to two months for a new developer to Onboard properly. Yeah, they can quickly come up to speed and see everything that's going on and be connected to the environments Yeah, um and the source of truth is really, you know, what you're looking at in the code versus You know, uh A wiki page that is probably out of date and not very well maintained by the development team, right? So yeah, exactly Yeah, and then radius is assisting us in The background by uh doing some of the connectivity there Right. Yeah, effectively. Yeah. I mean, you know, we're really scratched the service of backstage You and I can you can just see for example, one of the things that I have in this instance is I have the You know the the quay uh plugin so we can see You know again for all from within this interface without having to log into quay I can see there's my image that's being pushed up and there's there's a security counts security scan in progress there But you know, if I wanted to I could also have The kubernetes plugin here and I could actually see this application running on you know in my open shift namespace Um, I could have an iGo CD plugin so I could start to see You know sort of cscd sort of process as well So yeah to back to your point, you know as a as a new developer joining an organization First of all, you can get up to up up to speed really quickly like you're talking in you know a matter of You know hours rather than weeks or months But you can do that in a way that's been very much controlled by the organization to ensure that Anything that you do push out even to the lower environments is going through the correct security checks You know image scans you've got all the right guard rails and everything in place to make sure that that you're doing what you're allowed to do in a controlled fashion, so Yeah, so as I said what we're doing here is a quite a simple example of that And scutter is this beautiful thing that allows us to connect through the application layer layer seven on the The network stack So that we can avoid having to Deal with all the other networking Issues, you know opening ports on the firewall and doing all that Good jazz that we previously had to do so we're we're kind of removing a lot of friction here so we're we're removing friction for The developer to have to deal with things You know internally Because they can come on board pretty quickly We're removing the friction of having to go and You know talk to various networking people and everything, but we have mtls We have the ability to do multiple. Um, you know, hcp one one You know grpc and in different ways to connect Things together so that that database or different Kubernetes clusters, etc without having to go through a bunch of gyrations and it just does it across The existing route right or ingress Yeah, absolutely. Yeah, and again as I said, well, you know the example i'm giving here is a very simple version, you know um The the scope is is a lot more flexible, you know You can have sort of multiple instances within in an organization You could potentially have one in a dmz Which is a sort of the one that does the connections to you know outbound routes And then that connects back into sort of systems within the organization There's lots of different ways to deploy it. Um, it's it's you know, it's it's very very powerful and flexible Um, yeah, so let me just um just while that's deploying there Well, I should have been deployed what I'm going to do is is back in my application I now want to deploy this to part So again, I'm going to use the same command that I use to deploy to dev Um, we just close that port forward there But this time you tell you you can see I'm telling it to to deploy to the production environment Now in reality a developer Probably isn't going to deploy to a production environment from their command line But you could see, you know, I could I could be deploying to a test environment I could be deploying to you know, uh, a qa environment or something And again from from my perspective as a developer, I don't know anything about where Um, my cache is going to be created. Um, you know, uh Sculptor is still in play here because it is creating that the the connection back to My virtual machine, but in this case my production virtual machine But you'll see here now that it's creating a reddish cache. Um, and if I now go into, um Azure and just refresh my my resources page here Let me just see where's the fresh button Um, yeah, so there's a cache that's being created in azure for me now So so if we look back at our Our prod instance here You can see that It's deploying the the application first, but it hasn't um, it's not deployed An instance of the cache in our in in this namespace So the cache it's using is on azure and actually I don't think the secret is there yet Is it going to just see The secret what we've got here Yeah, there you go So there's there's our connection of connectivity back to our medicine interface on azure That's been popular and everything for me within the namespace where my quarkus application is running so Again, as you know, and the nice thing there is as a developer, um, you know, it's deploying this here But you know, I don't I don't have to have any um You know configuration and someone set up, you know, only to be able to do that That's all done by the offering operations team and also to manage for them there. So But now this is this uh deployment Generally takes about sort of 10 minutes or so for this cache to be Set up on azure and ready to use so we'll probably run out of time before we can actually Um before we can actually go over and have a look at that but we'll leave that running in the background there anyway, so um Yeah, so that's kind of That's kind of what we've achieved. So we've sort of gone through everything. Um, we've we've set up our um, you know, our scope of interface back to our virtual machines in both pod and dev environments and we've got connections to our different namespaces whether they're running on uh part clusters and open shift or dev and then we've deployed Redis instances as well But the the deployment of that has been managed by radius based on how the operations team would have configured those those particular environments and again the the uh connectivity between those various instances and the application has all been managed By radius using secrets within the namespace So, yeah, so that's that's what we wanted to go through. Um Any yeah, is there any questions in the chat or anything, Bob? Uh, no, I don't I don't see any right now, but um, is there So we we just a rehash we kind of reviewed, you know, um, what scupper does Backstage, which is you know, you're using the upstream version of everything radius um You know, uh, one question is you know radius uses the bicep files Which is a very azure specific format. Um, right? Um, is does it Support um terraform or anything like that? I think I think it does. Uh, let me just see if I look at the If I look at the radius uh docs, right? Um It's a good question. There is another format as well that it can use. Um I know it does like an arm json format or something like that Or you can switch that in and out. Yeah Um, there's the yeah, there's a bicep version there Uh, it does use I can't remember the top of my head now the other version So I'd have to I'd have to look into that but it is, you know, it is an azure. It is a microsoft You know offering right, but they are sort of trying to do it um To be open to that is is to create portable applications And so they're providing Um, you know support for the aws currently Um, so you could everything i've just done here. We could also do an aws as well um So I think the idea is that you again is to try and make it as a sort of platform agnostic as they can But but ultimately it is using microsoft technology. So that's you know, hence the bicep files In that in that regard so now one of the things you did was um the other the The production databases in a vm on Prem, right? Yeah the cloud Yeah So I mean the both the dev and the part one are yeah, so I have two different vms. Um, just spun up here. So, um That's the idea and again, it's it's you know, we're using we're using a postgres database here But again, don't you know This isn't just for database connectivity It's really for anything that you want to be able to connect to You know across htdp. Um, so Um, it could be you know, a soap service. It could be some sort of legacy Application that can't be moved to the cloud, but you still need connectivity You know, you know back from something that you deployed in the cloud. So So it's ideal really to sort of start to Work on migration in a phased approach, which is really the only way to to to migrate Um, you know applications from from in our status and it's just to the cloud, you know, so Now after you set everything up are all the artifacts now in uh git The code yeah, so the code is in git. Um, so backstage did that first it pushed that code first to git um So that's all there and obviously if I make any changes to the code, you know, all those updates will go up When I created the image that that was pushed up to to quay For us so you can see that's that's pushed up there as well into this quay repository Any sort of image repository would work as well. Um, you know, that that's um, that's configured on backstage So yeah, I mean, it's you know, whatever, you know, the idea again behind backstage is you know, to to use plugins and create connections to whatever Whatever sort of systems you use internally, you know, whether it's documentation or image, um, you know image repositories code repositories all that connectivity should be done Allowing a developer just to to basically, you know, add their own sort of keys to the system And start um, you know start working and pushing and deploying code Now, how would you recommend manage so you did a lot of command line stuff that you I mean It's great that you you copied and pasted that in but um, how do I keep track of all that? Is that going to I mean Yeah, I mean, so There's a few things really right so I started off. I went through the scupper Connections right and I used the scupper cli to do that now that can all be automated And you know, you can use the operator to deploy scupper on open shift You could use ansible for example to you know, make any updates you need to do on the vm so You know everything that that you would do through the command line in that regard You you would you would certainly look to automate and use, you know, infrastructure as code in order to do that I then um spun up an application in backstage and that gave me my my code in a get the positive which are then I I cloned locally and I used some commands then to to push all that that code out to kubernetes and to azure But again, you know, all of that would be done through pipelines as well so the The expectation would be that I pulled out my code locally. I you know, I push a change that will then Trigger a pipeline which will create my image push it to quay or whatever image repository I use And it would use radius as well as part of that cid crcd process To spin up any resources that are needed like the various cash, for example Join up the dots and and deploy my my image from from from the image repository so Yeah, as as with everything that we kind of you know, we talk about You know, it's all done in a kind of a cloud native way So everything should be you can describe it using yaml. You can you can build it into pipelines Um, you know and and uh, you know store as infrastructure with code if needed, you know okay, so I mean just boiling that down I could just create a bunch of ginger templates and take all your bash scripts and put them in there Yeah, you could I mean like, you know, you probably wouldn't use you know So the bash scripts are used again, you know for the scupper stuff you would use the operator, right? so that would you you would then deploy that maybe with agro cd to You know keep your namespaces up to date with whatever Whatever resources need to be deployed so Again, you would store that in git so you would create the the yaml around deploying scupper Store it in git and then use some of the agro cd then to to ensure that's all in place on the on the namespaces The the work that needs to be done in the vm um You would you again, I would I would personally I would use ansible or something like that to to make those changes to deploy the You know the scupper interface on the on the vm And then from the core perspective again, that's that's git and it's git, you know connecting into pipelines that create the image and You know all the various stuff, you know that there's there's the ci cd sort of Techniques to do everything I did there through the through the command line as well So so you would do all that through through pipelines, you know cool, all right Yeah, so um I don't see any questions online Right this moment if there are questions that pop up for anybody later on Our contact information will be provided in the um Probably uh in the youtube video or online. Um, I believe we provide that every month So, um philip any parting commentary that you'd like to say, you know, if you had to do this You know yourself actually it for you know for real and not just a demo, you know, what what would your thoughts be around that? Yeah, I mean I think that um You know again, there's there's a few sites to and it's about sort of having the separation of concerns between the developer and the operation So You know the operations teams would be very heavily involved in the The configuration and the setup of of backstage, right? That's that's that that's the critical thing And you know that that's not that's not a trivial piece of work, right? It's going to take some time to get backstage You know configured with the you know that the plugins and everything So that when a developer then is on boarded They are there, you know that they're You know the um the load on them being able to sort of get started is reduced. They can basically spin up a new Uh a new project and they can start focusing on the business logic and you know starting to to um To push code and contribute as quickly as possible so the The work for the operations team really is on that backstage configuration And you know, if they're going to use a tool like radius or something like that again, it's about You know spending the time to get the the different environments configured So when developers then want to deploy to dev They can do that if they want to deploy to a higher environment They can do that but but the operation team has controls of what resources have been deployed So to answer your question, I think you know if I was to do this in the real world I think it's it's it's it's work that that that has to happen You know in conjunction with the operations team And also done in such a way that That there's kind of an infrastructures code sort of uh approach as well. So um again So when we come to configure things like scuffle and so on that's all done through Through yaml through git through things like agor cd to ensure that um You know everything is sort of um Is is tracked and you know the source control from that perspective. So Yeah, so that's that would be my my approach to it So, I mean, I keep hearing this term, you know cognitive load all the time. Um, it's kind of a catchphrase nowadays for a lot of things. Um for me, you know As a developer you're you're in your ide or you're a neo vim or whatever tool you're using to write code in um, I'm probably using Some sequel i'm probably using yaml for god's sakes. I hate yaml, but um, you know, um at you know json There's the language you're writing it in, you know half a dozen other tools that you're using at the command line Um, there's just so much stuff that has to float around in your head that you have to keep track of nowadays Um, you know some things are making it easier, you know github co-pilot that makes life a little easier, you know when you can Um create have a plug in that, you know just continues your line, but then you have to verify that it's actually good code, you know, blah blah blah Yeah, and on top of that you're writing documentation because the test folks want to see what you know What you did and they want a summary of you know everything so I I probably have a tool for that You know all that overhead now is on a developer and I think what you just described to us was um Having the infrastructure folks assist and a kind of um You know platform engineering aspect of things to reduce The overhead of having to know all the other stuff that's going on behind the scenes So I can come up to speed quicker and just Dig into what I'm supposed to be getting paid for which is the right code, right? Um, yeah Absolutely, and it's even more, you know, it's even more apparent when you when you start to look at, you know The cloud provider, you know, so aws is your you know the the amount of cognitive load for developers to Understand how to build, you know, serverless applications in aws, you know using kinesis streams or you know Dynamo db all of these kind of things that's The reality is that's the sort of stuff they need to know right because it's important for that We know for them to do their job But you know the actual sort of provisioning of that and you know ensuring they're secure and lockdown and You know that the guardrails and so on in place that stuff that They need to be aware of but really the operations team Through the use of things like backstage and that kind of stuff should be able to You know take that load. So, you know developers Can then as you say focus on you know doing the job at hand, you know, you know Implement the logic getting the code Pushed out to production using all of those sort of cloud techniques and everything that they that they know about But it's you know, there's more to being a cloud developer than just understanding how to develop in the cloud, you know, it's and a lot of the a lot of the sort of You know the management of that, you know, can be taken Can be taken away from them. They don't they shouldn't need to worry about it by using these kind of platforms I think is the is the key so Yeah, I mean I mean my dream state used to be Um, you know, we're at the end of the sprint. We're doing the retrospective And while the retrospective is going on, uh, we're actually setting up for the next sprint We're creating the branches for everyone on the team You know off the feature branch and everything's going on and all that environment has automated and all being set up So that we can start developing right away on the next sprint. Yeah, and And To various degrees we've gotten there and to various degrees we we keep failing to get there And there's still a whole bunch of overhead, you know in between the sprints in order to to make that happen and then You know, there's always the arguments about um, well, my production looks different than my dev environment And that looks different than my test environment. And so while containerization has helped us Make sure that the code Is packaged in such a way that it's the same across dev and test and prod all the other stuff behind it Isn't always the same or isn't fully automated yet and in different environments and different organizations are more mature on that than other organizations so, um, I think what you're describing is kind of a a really, um You know, that's the that that would be kind of the goal state And your backstage scupper radius all these tools together kind of remove all that Cruft if you will that I have to think about as a developer and I could just jump in and start developing again On the next sprint, right? Um, so it makes a lot of sense to me I'm glad that you came and uh, demoed all this for us. I've you know For those online, I've actually seen Philip demo this before which is why we wanted him to come and talk about this because he makes it look so easy but, uh You know, there's a lot of work and setup like he said in order to get this I'm set up to make it look easy But it reduces that cognitive load for the developers which is Again scupper there is a lot of setup, but it's self that the developer doesn't need to necessarily do right? You know that you saw really, you know, you kind of maybe if I do this demo again You know, you could you have a couple of different hats where really as the developer Pretty much all I had to do was go into backstage Create when you are and then everything was there and they beat me for what I need to do in order to deploy that to To a dev environment, you know, so so that's that's the real, you know, that's the real crux of it. Um You know set up and sort of you know getting all those sort of things figured out and wired up It's something that you know could potentially take time But it's time that that doesn't need to be, um, you know, duplicated when you are on new resources It's all done, you know, um And that you know again developers can then meet benefits of that and start to start to be productive, you know No, that's great. Well, thank you philip for joining us this month. I really appreciate it I I enjoy watching you do the demo because um, I probably would have screwed it up 10 ways to sunday, um but um, you know the idea behind all this is you know Making the developer more productive and our team's more productive which I think everybody wants that so, um Anybody that needs to reach out to us with any questions, you know Our contact information will be made available and I appreciate everyone for joining this month So again, thank you philip Thanks, well