Introduction to Radius: A Breakthrough in Cloud-Native Development
Radius is an open application platform that the Microsoft Azure Incubations team announced back in October 2023. That team describes Radius as
Radius is an open-source, cloud-native, application platform that enables developers and the operators that support them to define, deploy, and collaborate on cloud-native applications across public clouds and private infrastructure.
At a high level, Radius allows your development team to define an “application” and its related resource dependencies. Your infrastructure team defines how those resource dependencies are met. In Radius terminology, your development teams and infrastructure teams can agree that they’ll need a “caching” and “relational db” resource (e.g., recipe in Radius terminology). At that point, your development team can build out their application. Independently, your infrastructure team can figure out the best way to implement those “recipes” in each of your environments (development vs production). In addition, your development team can implement those “recipes” locally so they can commence development immediately. Radius defines a working agreement between your development teams and infrastructure or “platform” teams.
Cloud-Native Focus: Kubernetes and Container Integration
As mentioned above, Radius focuses on cloud-native, which translates to Kubernetes and containers. It supports multiple clouds (Azure, AWS, GCP) and multiple ways to define infrastructure recipes (Bicep, Terraform). Radius aims to meet you where you are. It encourages you to modify an existing Kubernetes deployment and make it Radius aware. To test this, we took the DAPR Traffic Control project, which is comprised of multiple services in containers. We successfully modified it to work with Radius deployed within a Kubernetes cluster.
Real-World Application: Testing Radius
So, what are our findings from evaluating Radius? Having worked with a number of clients who are using Kubernetes, Radius has addressed a current problem. Today, containers are deployed to Kubernetes. Without a concept of an application, it gets very hard to determine where an application begins and ends in Kubernetes. For example, your development team wants to use a Redis cache so that they may deploy it as part of their Kubernetes deployment. Later, they may want to move to a cloud-hosted Redis cache. Effectively, their “caching” resource migrated from a development team concern to an infrastructure or platform team concern. This has had an impact on both teams when, in fact, the concern was always outside the development team. So, Radius can bring immediate value to development teams.
Enhancing Infrastructure Management with Radius
In addition, the infrastructure or platform team may have questions about dependencies between containers in Kubernetes to understand the criticality of services better. Radius allows the development team to document dependencies between their own services. That documentation can then be utilized by the infrastructure or platform teams.
Why Radius Might Be Right for Your Organization
Radius is very promising for companies that are already invested in containers and Kubernetes. The more development teams a company has and the more standardization they are interested in from an infrastructure/platform perspective, the more value Radius can bring. Radius will change your teams’ perspective on Kubernetes. Instead of being an orchestrator running a lot of containers, you will start to see Kubernetes as a platform that works with your enterprise application development process.
Navigating the Challenges: Growing Pains and Support Structures
If the above describes your organization, should you start using Radius today? Radius was announced around 6 months ago. So, as we evaluated it, we did encounter a number of “growing” pains. For example, the application graph feature to see dependencies between services and resources did not work for us when modifying an existing application, DAPR Traffic control project. In addition, we noticed that the Bicep support is currently ahead of Terraform support. Having said that, all of the work is done in the open. In addition, we were able to take advantage of the community open office hours to resolve many of our questions. Also, we tested multiple ways to run Kubernetes locally (Docker Desktop, Kind, Rancher) with no issues. So, the focus is already clear on supporting you where you are.
Future Outlook: Radius’s Roadmap and CNCF Involvement
So, the recommendation would be to keep a close eye on Radius and its roadmap until it hits the level of stability required for your organization. The Microsoft Azure incubations team has a history of launching multiple open-source projects, which were later accepted by the Cloud Native Compute Foundation (CNCF), including Keda (accepted) and Dapr (incubating). In fact, Radius was just accepted into CNCF as a Sandbox project.