Introducing Radius: A new open-source project for teams building cloud-native apps
Key Takeaways
Introduces Radius, an open-source application platform for building cloud-native apps, and demonstrates how to deploy a Radius application
Full Transcript
welcome back to another episode of open at Microsoft today we're going to be taking a look at radius a brand new open-source project that aims to solve Cloud native application development for developers and operators stay tuned all right welcome in today we're going to be taking a look at radius a new open source application platform I'm joined by Ryan Noak the architect and creator of radius welcome in Ren thank you Erin uh could you tell us a little bit about radius and some of the problems it tries to solve sure sure so radius is a new open source uh project uh that we started here at Microsoft and what we're trying to do in radius is we're trying to make Cloud native application deployment better uh and better both for developers that write the applications and the platform engineers and it Pros that support them oh that's awesome now when you mentioned applications like briefly like what types of applications uh are we targeting with for those teams uh we think radius is good for any kind of application that users would deploy to a container or to to the cloud today and that could be your B basic web app you know with a database or it could be a complex microservices type application awesome now and then you mentioned with like teams of developers and operators with a lot of like handoff and collaboration there how does radius fit into those workflows yeah this is a this is a big Focus for us to trying to make the collaboration better between uh platform engineers and developers and some of the ways that we do that is one for developers we give them kind of a simplified abstraction to the cloud so they have to they get to talk about what they need and what makes up the application without necessarily talking about what infrastructure to provision or how to configure it um secondly for the platform engineers and operators in the house it's their job to configure the environments that the applications are going to get deployed into part of that is configuring the recipes that are used to create infrastructure so uh it folks and policy experts get to have control over how the infrastructure is configured and developers get to have a self-served experience we'll see more later in the demo the third thing is because radius is deploying the app we catalog all of the infrastructure as part of a piece of data that we call the application graph and the goal of that is to give the whole organization a shared picture of the architecture and the infrastructure that makes up the app very interesting now you mentioned a demo I'd love to dive in and take a look and let's take a look at some radius code all right let's go to the demo so first of all I'm going to go to the console and I'm going to kind of play both roles during this demo aerin's going to ask me some questions and keep me honest I hope um but what we're going to start off as a developer and then we're going to go to production a little bit later so this is kind of how we get started as a developer so the first thing that I might do is here on the console run rinit and rinit is kind of how you set up radius um I'm in the directory where the application already is so I'm going to say yes and uh I've I've actually already set up my demo which is why this went so fast it's not normally going to go quite so fast as this but everything's already set up here and let's jump to the editor and take a look at what an application uh looks like in radius and so I just want to show you real quick this is an application that I've already built in containerized it's a node based uh typescript to-do application I think it's traditional Tod do Todo and I'm a big fan of typescript so so this is what we have for the demo and I just want to point out that like this is an app that I already built and containerized I think it's good to start with an existing app when we talk about radius because radius isn't asking you to change how you write application code how you build and publish apps how you containerize we work with the way you're doing all those things today that's awesome so on a previous episode of open up Microsoft we were chatting a little bit about Dapper um does dapper fit in with radius and can be part of the app oh man Dapper is an Awesome Fit for radius so we've got great support for radius built into Dapper and the hope is that you know you could kind of think about Dapper as providing a lot of value to you when you're writing your code and thinking about how your application behaves and we hope that radius provides the same level of value to you when you're thinking about how your application gets deployed and how the cloud resources get configured so I think the two are awesome together maybe we'll come back and do another session on that another time sounds great so let me talk about what you're seeing here again we said we're starting with an application and and I've kind of already wired this up to the image that I'm going to use um this is pretty similar to the output that r that rinit is going to scaffold for you when you run rat anit but I've customized it a little bit and and we're not going to get super deep into this in this in this talk but this is a bicep infrastructure as code language it's an open source infrastructure as code language that we're developing here at Microsoft and the radius team uh we've taken bicep and we've kind of added radius to it as well as some other surprises so you kind of think about this as as bicep with some additional things added to it it's not a different language or a different tool and so some of the things that I would highlight here is is just kind of what's going on so we've got an application core container so we're deploying a container um that's that's going to be the thing that's running my to-do application we've got a a data stores redis cache in here um and then we've got a connection between those two right here uh now now I want to talk a little bit about this data stores reddis cache I think the container is probably stuff everybody's seen before um but I want to talk a a little bit about this redis cache this is going to be using what we call recipe and so I mean I want you to look and and prove to me like you can see that we didn't say very much here about this reddis cache that we're going to be using we basically just said I want one and this is the application that it's part of I'm only saying like what that five or just a five lines or so it's like five or six lines in this file um and so we didn't say any SKS what cloud service to create how to set up security anything like that we're really just saying like I want this thing what's going to happen when we deploy to the environment that I just set up is it's going to use what we call local Dev recipes and so we'll get redus running in a container inside that kubernetes cluster uh no cloud account needed uh and then we'll have some surprises later when we go to the cloud and and we'll use different recipes in those cases oh that's awesome um lastly I just want to talk about this connection here and connections are a feature that we hope really feels like magic to people you can kind of think of connections as the like glue these things together button so what this is going to do is it's going to inject some settings into this container so that the code knows how to connect to that redus so I've already written code inside the app that reads some environment variables to get that uh URL and host name and Port password and all the other things we need um the second thing that this does is it kind of cataloges this relationship as part of the app graph and so you'll be able to reason about this container talks to that red as cache and we'll we'll see an example of that when we deploy it so uh you ready to deploy this yeah let's get it deployed let's get over to our console here and the way that we can do this is with Rad run I'm going to Rad run app. bicep looks like it's yeah uh building that app bicep file and getting it deployed yep so we're deploying this and you can see that that recipe is kind of cranking now it's it's booting up that redus cache so with that local Dev recipe it sounds like you mentioned some light lightweight containerized infrastructure there yeah so as part of the open source project um we've created recipes and and recipes can be implemented in a variety of Technologies but we've created some recipes and bicep that just run these open source Technologies on kubernetes so like you mentioned Dapper earlier like if you're a Dapper developer um You probably have gone through their quick start where you set up redus and then you set up Dapper to talk to redus like radius recipes that we provide just do that for you right so that's that's really what these local Dev recipes are trying to do it's not for production it's just to get you started yep uh so you can see that that deployed we've got some streaming logs here from redis um we've got some streaming logs here from the app and we've got a port forward I'm going to open a real quick and we can take a look at this website and see what we can see so go to Local Host 3000 um on this page you can see some of those environment variables that we set so we're displaying like what are the settings that radius injected into this application and that was through that connection it's doing all of that and that's through that connection and and this is just a demo app we built it to kind of talk about radius which we're doing right now um if I flip over to the Tod list I will uh test this out and we can see that that got added um the one thing that I would want to check here is we should see some logs and so you could see test this out here in the logs from reddis so this this really worked it made it all the way to the database so I'm just going to cancel that get my terminal back cool so that's a looks like a really easy way to get up and running with local development with radius now when you were starting to think about you mentioned with like operators setting up Cloud environments what does that look like yeah so let's let's go through and and talk about kind of what that process looks like to set up a cloud environment and I think one of the most important things to kind of understand in this in this space is recipes um so let me show you some example recipes awesome so here I'm going to do an Azure example first because I think this one's a little bit simpler and I've just got these in this folder this this is actually going to come from a container registry when we use it it's just in the folder so we can kind of talk about it and so if you look at what's going on in this recipe there's really three things um you get some data from radius you use that data to create a resource in this case we're creating a Microsoft cache which is the hosted redus on Azure and then you return some data to radius so you're going to return the information that powers that connections experience um and and this is important because we know that it professionals and platform engineers and Cloud compliance Security Experts like they understand these settings really well right and and your organization might have specific settings that you want to set specific policies that you need to enforce um and this is the place for that um one of the things that's really powerful about environments and recipes is well the people who set up the environment get to control what the developers can create and what they can do and how it's configured and and those people don't even need access so the administrator sets up the environment they add the recipes and then when the developers use it they only need access to the environment they don't need access to the underlying Cloud accounts that's awesome and then those templates uh looking at a bicep example here now if I have some existing maybe terraform templates or things like that can I start to use other languages for recipes oh man that's a great question and I don't know if it was prompted by by this folder but here here's an example of a terraform recipe and again kind of same Anatomy right you get some data from radius you create the resources you want and then you output some data to to radius and in terraform it's kind of conventional to spread these things out over files so you can see the output there and the variables there in this file what we're doing is we're actually using a module from the terraform public module registry and I think this is interesting because when we've talked to people who use terraform they are always saying well we actually have a big library of terraform stuff we've already done and can we use that with radius and the answer is it's really easy to turn those things into a recipe and use them with radius you have existing modules you could just write a new module that calls that one and now it's a recipe awesome yeah I'd love to see can we uh kick off a couple deployments and see these in action I want to I want to talk a little bit about let's let's register one of these I'm not actually going to run it but I'll kind of show you the process so perfect the F the first thing you would do is you'd publish that recipe so if this were the bicep recipe that I showed you you would run something like this rad recipe p publish a red bicep publish right bicep publish so you'd run something like this command says hey I'm going to take that local file and I'm going to push this into an oci registry oh got terraforms got its own publishing stuff as well there's a bunch of places you can publish terraform but the point is you put it somewhere and then the second thing that you're going to do is you're going to run this rad recipe register command and that's a lot to read so I'll explain it but what we're doing is we're saying basically in the environment that I specify this recipe is the default for redus so when developers ask for redus it's going to execute this code to give it to them so they like with a default recipe then they don't have to worry at all about infrastructure it's just let the environment choose for me exactly it looks it looks like what we saw earlier right it's it's only a couple lines and they don't they don't really have to specify anything about the configuration just hey this app needs a redus and it's going to happen oh cool so shall we go to the cloud yeah let's give it a shot so we've got another tab here and in the this um I've got queued up a deployment to both Azure and AWS so in the background I've configured those environments uh before I walked in here today and I've registered those recipes with those environments so we'll go ahead and kick off this deploy now you're not seeing this happen in real time I think could be a very long boring video if you were um we actually predeployment this is the same exact app we deployed in local development no changes at all yeah think about what we didn't do right so we're deploying to both Azure and AWS at the same time and we just ran on a local kubernetes cluster on my machine we didn't make any changes to any of the code any of the deployment manifests it's all it's all just what is the configuration in there yeah that seems extremely powerful especially not just from like local development into maybe testing or pre-production production but also now you're like Azure and AWS yeah and we know and we know that it's pretty rare from the conversations we had with Cloud customers we know that it's pretty rare for somebody to deploy the same application across multiple clouds but I think what we're really trying to do we we do help those people I think radius does help those people quite a lot even though they're they're kind of a small group with very specific needs um but we do make it really easy for you to go from testing to production on whichever Cloud you're using and if you're a platform engineer that you have to support multiple clouds in your organization well we really hope that we're making your job easier with radius cool so looks like those are deployed um and you mentioned a little bit about the application graph now how can we uh take a look at uh the app graph let me bring that up so let's do rad app graph and we'll do AWS on this side because this is where we did AWS before and we'll do Azure on this side rad app graph and I'll just edit this to say Azure so you can see that that already came back and we'll just get the results for Azure and we're seeing this for the first time so I'm going to kind of talk through it there's a lot of output here um you can see that we're here for application demo and then inside application demo there was the demo container I'm I'm really creative with naming as you can see um there's the DB RIS cache again Super Creative name um and you can see that we've got the connection between the two so radius remembered that connection um and then what what's going on with this resources section is you're seeing like what are the things that came out of this or like what did radius create uh as a result so all of this stuff is kubernetes stuff uh if you wanted to we could get cctl out and kind of poke around at it it's not that interesting um but down here we see we've got an Azure redis cache here and we could we could even open the portal and go look at the specific one if we wanted to um over here you can see that the picture is mostly the same except we got some AWS services so we got an AWS memory DB which is one of their ways to run redus on AWS and this is pretty cool because we had two environments with two different recipes and we got two totally different hosting models for the same technology as a result that is super cool and it sounds like from recipes to app graph to Dapper it sounds like we actually have a series ahead of us of uh some more radius videos to do let's hope so awesome well thanks so much for joining us today uh we took a look at radius a new open source project that aims to solve Cloud native applications across local Dev Cloud uh where can we go to learn more right yeah so the best place to learn more about radius I'm just going to bring this up uh would be go to our website at rat app.io uh and this will tell you a lot about the project and then um because it's an open source project you can find GitHub here you can find docs here you can find more information about some of our community meetings we have a community call coming up as as well well we have Community calls every month as well as we have a Discord where we talk about radius and answer people's questions so we'd love for you to come hang out with us and hear your feedback well thanks so much for joining us today and we'll have you back next time for the next episode of open at Microsoft glad to be here thanks
Original Description
Join Aaron Crawfis and Ryan Nowak from the Azure OSS Incubations team to learn about Radius (https://radapp.io), a new open-source application platform for teams building cloud-native applications. Radius makes it easy for developers and operators to define, deploy, and understand their applications and environments. Learn how to get up and running with Radius and deploy your first Radius Application with Recipes for local development, Azure, and AWS.
Chapters:
00:00 - Introduction
00:48 - Applications supported by Radius
02:08 - Trying out Radius
05:46 - Using connections in Radius
08:17 - Setting up your cloud environment
13:50 - Utilizing application graph in Radius
15:21 - Additional resources
Resources:
Visit https://radapp.io to learn more about Radius.
Find the latest info about the open-source Radius project here: https://github.com/radius-project
Let's connect:
Aaron Crawfis | https://twitter.com/AaronCrawfis
Ryan Nowak | https://twitter.com/aVerySpicyBoi
Subscribe to Open at Microsoft: https://aka.ms/OpenAtMicrosoft
Open at Microsoft Playlist: https://aka.ms/OpenAtMicrosoftPlaylist
New episode every Tuesday
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from Microsoft Developer · Microsoft Developer · 0 of 60
← Previous
Next →
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Prepare for the DP-300 exam & the Azure Database Administrator Associate cert | Data Exposed
Microsoft Developer
What I Wish I Knew ... about landing a job in tech
Microsoft Developer
Igniting Developer Innovation with Vector Search
Microsoft Developer
Combining the power of vector search with Azure OpenAI then revolutionize image search with vectors!
Microsoft Developer
What I Wish I Knew ... about finding your place in tech
Microsoft Developer
Fluent UI React Insights: Accessible by default
Microsoft Developer
Signing Container Images with Notary Project
Microsoft Developer
What I Wish I Knew ... about finding your place in tech
Microsoft Developer
What programming languages does GitHub Copilot support?
Microsoft Developer
What I Wish I Knew ... about how much your job can change
Microsoft Developer
What I Wish I Knew ... about how much your job can change
Microsoft Developer
How do I become more confident about AI?
Microsoft Developer
How do I become more confident about AI?
Microsoft Developer
Performance Demos of SQL’s Intelligent Query Processing Feedback capabilities | Data Exposed
Microsoft Developer
What I Wish I Knew ... about coming to Microsoft
Microsoft Developer
What I Wish I Knew ... about coming to Microsoft
Microsoft Developer
Revolutionizing Image Search with Vectors
Microsoft Developer
Igniting developer innovation with Vector search and Azure OpenAI
Microsoft Developer
Getting Started with Azure AI Studio's Prompt Flow - Part 2
Microsoft Developer
What I Wish I Knew ... about finding my career path
Microsoft Developer
What I Wish I Knew ... about finding my career path
Microsoft Developer
Windows Terminal's journey to Open Source
Microsoft Developer
Can I trust the code that GitHub Copilot generates?
Microsoft Developer
What I Wish I Knew ... about interviewing
Microsoft Developer
What I Wish I Knew ... about interviewing
Microsoft Developer
What is the Microsoft TechSpark Program?
Microsoft Developer
SQL Server 2022: Accelerate query performance while reducing query compile time - w/ no code changes
Microsoft Developer
What I Wish I Knew ... about discovering computer science
Microsoft Developer
What I Wish I Knew ... about discovering computer science
Microsoft Developer
Call center transcription and analysis using Azure AI
Microsoft Developer
How to use Text Analytics for health in Azure AI Language
Microsoft Developer
Azure OpenAI-powered summarization in Azure AI Language
Microsoft Developer
Accelerate data labeling using Azure OpenAI and Azure AI Language
Microsoft Developer
Building a Private ChatGPT with Azure OpenAI
Microsoft Developer
What I Wish I Knew ... about how to interview
Microsoft Developer
What I Wish I Knew ... about how to interview
Microsoft Developer
Getting Started with Azure AI Studio's Prompt Flow - Part 3
Microsoft Developer
Intelligent Apps with Azure Kubernetes Service (AKS)
Microsoft Developer
Getting Started with Azure Blob Storage | Data Exposed: MVP Edition
Microsoft Developer
Chat + Your Data + Plugins
Microsoft Developer
What I Wish I Knew ... about different career paths
Microsoft Developer
What I Wish I Knew ... about different career paths
Microsoft Developer
Advanced Dev Tunnels Features | OD122
Microsoft Developer
Learn Live - Manage performance and availability in Azure Cosmos DB for PostgreSQL
Microsoft Developer
Plan your SQL Migration to Azure with confidence | Data Exposed
Microsoft Developer
What I Wish I Knew ... about social skills in a tech career
Microsoft Developer
What I Wish I Knew ... about social skills in a tech career
Microsoft Developer
All About Vectors, Search, and Function Calling in Azure OpenAI - Labor Day Special
Microsoft Developer
Introduction to project ORAS
Microsoft Developer
What I Wish I Knew ... about finding the right major
Microsoft Developer
What I Wish I Knew ... about finding the right major
Microsoft Developer
What I Wish I Knew ... about how to approach programming
Microsoft Developer
What I Wish I Knew ... about how to approach programming
Microsoft Developer
Learn Live - Scale from a single node to multiple nodes with Azure Cosmos DB for PostgreSQL
Microsoft Developer
What I Wish I Knew ... about diversity in tech #1
Microsoft Developer
What I Wish I Knew ... about diversity in tech #1
Microsoft Developer
Get started with SQL Server AGs across Windows, Linux and Container Replicas | Data Exposed
Microsoft Developer
Writing LLM Apps with Azure AI and PromptFlow
Microsoft Developer
What I Wish I Knew ... about how cool working in tech could be
Microsoft Developer
Open Source foundation models in Azure Machine Learning & optimization techniques behind the scenes
Microsoft Developer
Related Reads
📰
📰
📰
📰
I Deleted My Database on Purpose. It Was Back in 47 Seconds.
Medium · DevOps
AWS Weekly Roundup: What Matters to Me as a DevOps Engineer
Dev.to · Frank
The Ultimate Guide to an IT Disaster Recovery Plan That Won’t Be Ignored
Medium · DevOps
The Ops Inflection: How AI Is Converting Open Problems Into Closed Ones
Medium · DevOps
Chapters (7)
Introduction
0:48
Applications supported by Radius
2:08
Trying out Radius
5:46
Using connections in Radius
8:17
Setting up your cloud environment
13:50
Utilizing application graph in Radius
15:21
Additional resources
🎓
Tutor Explanation
DeepCamp AI