Radius, a new open-source application platform for cloud-native apps by Microsoft
Tags: microsoft, infrastructureascode, cloudnative, containers
Published: 2023-12-17 09:48:54

_""Teaching meant for the hands enters most easily through the eyes.""
Morgan Llywelyn_

***INTRODUCTION***

For developers, the complexity of managing infrastructure and lack of visibility into the resources that make up their applications are major roadblocks for productivity. For operators, the lack of standardization and automation in the deployment process can lead to loss of control over the infrastructure, and degradation of confidence in the applications that are deployed. At the end of the day, development teams are left with a disjointed experience between platforms and cloud providers. Developers and operators alike find themselves struggling to make sense of how their application comes together across disparate sets of tools that provide little more than a list of their deployed artifacts.

The Microsoft Azure Incubations team is excited to announce a new open application platform called Radius that places the application at the center of every stage of development—redefining how applications are built, managed, and understood.Radius is open-source and multi-cloud from the start, allowing for applications that can be written once and, using the same toolset and workflows, deployed to any cloud or on-premises infrastructure. To get started or learn more about Radius, visit [radapp.io](radapp.io) . 

Lets dive deep into understanding what's radius is and what it is capible of , ***Radius*** in short can be described as a single tool to describe, deploy, and manage your entire application

***What Radius Focus on the most***

> **Focus of Radius**:

- Addresses platform engineering challenges in supporting application deployments across on-premises infrastructure and major cloud providers like Microsoft Azure and Amazon Web Services.

> **Compatibility and Integration:**

- Built-in support for popular app development tools like Dapr.
- Integration with infrastructure as code (IaC) languages such as Terraform and Bicep.
- Designed to meet developers and operators at their current workflow, integrating seamlessly into existing development tasks and CI/CD pipelines.

> **Developer-Friendly Approach:**

- Aims to enhance developers' understanding of their applications by managing all components efficiently.
- Takes care of platform configurations, including permissions and connection strings, to simplify developers' tasks.

> **Non-Disruptive Implementation:**

- Designed to fit into existing development tasks and CI/CD pipelines without causing disruption.
- Works alongside developers and operators, streamlining their workflows rather than requiring them to overhaul their processes.

> **Compliance and Policy Management:**

- Enables operators to ensure that all applications are deployed in compliance with organizational policies.
- Offers a centralized solution for managing applications and their resources, providing a comprehensive approach to compliance and policy adherence.


![Diagrammatic representation of Radius with other tools and services](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/otowgez7c65uwtpv3urb.png)


## Radius First Release Features

In this first release, the focus is on the features that are most foundational to the Radius platform and its goals of improving the productivity of application development workflows. These include:

- **Simplified and consistent application development experience**: Deploy to any cloud provider or on-premises using the same application definition, all with a consistent set of tooling and experience. These include capabilities to automate resource access and provisioning, as well as the ability to configure environments that meet the needs of each phase of development.


- **Recipes and environments**: Standardize and scale deployments with clear separation of concerns between developers and operators. Radius Recipes are pre-definable templates that automate the provisioning of infrastructure resources and environment configurations that can be designed to adhere to cost, security, and compliance standards.


- **Application graph**: Gain visibility into the resources and relationships that make up an application. Radius captures the relationships between resources in an application as a part of the development activities, which can in turn be queried and understood.

For More Details check the offical docs https://blog.radapp.io/posts/2023/10/18/introducing-radius-a-new-open-source-application-platform-for-cloud-native-apps/

## Setting up Radius 

**STEP 1:** **Installation of Radius CLI** 

> For installation of Radius CLI (LINUX/MAC/WINDOWS)

[https://docs.radapp.io/installation/#step-1-install-the-rad-cli](url)

Verify the rad CLI is installed correctly by running `rad version`.

Example output:

```
RELEASE     VERSION     BICEP       COMMIT
0.28.0      v0.28        0.11.13     2e60bfb46de73ec5cc70485d53e67f8eaa914ba7
```

**STEP 2:** **Install the VS Code extension**

- To install the Radius Bicep extension, search for Radius Bicep in the Extensions tab in VSCode or in the Visual Studio marketplace

![Screenshot of Radius Bicep extension in VSCode Marketplace](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r7ylkdr0ofuqz9g9rbch.png)

- Select Install

- To verify you’ve installed the extension, open any file with the .bicep file extension and start authoring Radius application to verify the auto-complete and other validation features.

**STEP 3:** **Initializing Radius**

Initializing Radius installs the Radius control-plane and creates a Radius Environment. The control-plane is a set of services that provide the core functionality of Radius, running in the `radius-system `namespace.

Create a Kubernetes cluster

Radius runs inside [Kubernetes](https://docs.radapp.io/guides/operations/kubernetes/). Create one from the [supported k8s clusters](https://docs.radapp.io/guides/operations/kubernetes/overview/#supported-kubernetes-clusters)

If you don’t have a preferred way to create Kubernetes clusters, you could try using [k3d](https://k3d.io/v5.6.0/), which runs a minimal Kubernetes distribution in Docker.

Ensure your cluster is set as your current context:

```
kubectl config current-context
```

Initialize a new [Radius Environment](https://docs.radapp.io/guides/deploy-apps/environments/overview/) with [rad init](https://docs.radapp.io/reference/cli/rad_init/):

```
rad init
```

Select `Yes` to setup the app.bicep in the current directory

```
Initializing Radius...

🕔 Install Radius v0.28
   - Kubernetes cluster: kind
   - Kubernetes namespace: radius-system
⏳ Create new environment default
   - Kubernetes namespace: default
   - Recipe pack: local-dev
⏳ Scaffold application
⏳ Update local configuration
```

Verify the initialization by running:

```
kubectl get deployments -n radius-system
```


```
You should see:

NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
applications-rp           1/1     1            1           53s
bicep-de                  1/1     1            1           53s
controller                1/1     1            1           53s
ucp                       1/1     1            1           53s
contour-contour           1/1     1            1           46s
```


You can also use [rad env list](https://docs.radapp.io/reference/cli/rad_env_list/) to view your environment:

```
rad env list
```

_We are now done setting up radius on our local machine_ 

In the next part we will check a tutorial of creating an app using radius and its features in deep 

Thank you 

***References***
[Offical Radius Documentation](https://docs.radapp.io/)