DEV Community

Kumail Rizvi
Kumail Rizvi

Posted on

Radius, a new open-source application platform for cloud-native apps by Microsoft

""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 .

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

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

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
Enter fullscreen mode Exit fullscreen mode

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

  • 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-systemnamespace.

Create a Kubernetes cluster

Radius runs inside Kubernetes. Create one from the supported k8s clusters

If you don’t have a preferred way to create Kubernetes clusters, you could try using k3d, which runs a minimal Kubernetes distribution in Docker.

Ensure your cluster is set as your current context:

kubectl config current-context
Enter fullscreen mode Exit fullscreen mode

Initialize a new Radius Environment with rad init:

rad init
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Verify the initialization by running:

kubectl get deployments -n radius-system
Enter fullscreen mode Exit fullscreen mode
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
Enter fullscreen mode Exit fullscreen mode

You can also use rad env list to view your environment:

rad env list
Enter fullscreen mode Exit fullscreen mode

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

Top comments (0)