tag-app-delivery
tag-app-delivery copied to clipboard
Radius sandbox submission review
Radius is a framework for building cloud-native app platforms proposed to CNCF sandbox in https://github.com/cncf/sandbox/issues/65. This issue tracks discussions and reviews of Radius to help with accepting it in CNCF sandbox.
We've asked @jonvsm and team to join an upcoming TAG meeting to discuss the following about the project. Please plan to present for about 20 minutes, followed by 5-10 minutes of questions and answers from TAG members.
- the values this project proposes to end users
- the project's high-level technical architecture
- a brief demo of experiences and UIs
- the project's near-term roadmap
- state of the project's community and governance
- comparison with existing projects
Thank you to the team for presenting Radius to us at Kubecon in Chicago.
The recording starts here: https://youtu.be/NZCmYRVziGY?t=3996 The presentation is here: https://drive.google.com/file/d/1bhrVWwwT9Si-1NVFQhr3gtqMyQF4zrVR/view Project repo is here: https://github.com/radius-project/radius
Here's a summary of what was presented.
Project
- part of Azure Incubations, charged with contributing to open source community, contributed KEDA, Dapr and others in the past
- goal is to show potential, get community feedback
- currently developed by Azure team only, seeking more contributors now
Problems to solve
- Kubernetes is a standard across clouds, but more than K8s is needed for cloud-native applications, such as managed services in clouds, or capabilities provided by platform teams
- Cloud-native applications involve complex architectures and are difficult to understand and troubleshoot
- Requires cross-platform deployments - multiple clouds and datacenters
- Need to enforce good practices in a central way
- today's apps are viewed as a flat collection of pieces, no relationships
Values project offers
- enable collaboration between app developers and infrastructure operators
- infrastructure recipes - descriptions of what needs to be done following best practices
- application graph - show interconnections between services and components
- cloud neutral - a toolset that works across any cloud or datacenter
Architecture of Recipes
- a recipe defines an interface for a collection of dependencies, developed by a platform team
- several implementations of the same recipe can be provided, appropriate for different service providers and datacenters
- run
rad initCLI to configure Radius on a K8s cluster - add a recipe to an existing application when it's time to deploy
- bind recipe service to workload with custom annotation - consistent env vars are added to application
- opportunity to create an industry standard for writing to specific env vars etc. for secrets - if there's momentum around Open Service Broker could use that
- some services are relatively standard, like Redis, but not so easy for custom services
- recipes have a way to find and publish connection details to app
- recipe controller creates implementation and publishes bindings
- recipes can discover some parameters from context - recipe authors can use them via variables - allows automation in different environments
- recipes declare their output
- recipes can include components described in bicep, Kubernetes YAML, Terraform modules, etc. Top level of recipe is bicep.
- once deployed can display full app graph with recipes connected to applications, including actual implementation of recipe, which differs based on environment (e.g., AWS or Azure)
Questions
- Is this related to OAM? A: Yes, came from same team, but OAM was just a spec.
- Can we learn from Radius and apply to OAM?
- "It should feel magical" that components connect together. We'd like to do it automatically.
- Specs only go so far - till an implementation is made hard to determine how it should work.
- Will bicep be required? A: That's an area to work together, don't intend for bicep to be required.
- Are you built on Kubernetes? A: intend to be able to target all kinds of runtime services, including things like Azure Web Apps or AWS Lambda.
- How much bicep do you have to use? Operators (platform engineers) will need to write bicep at least for now; developers can simply use "recipe" Kubernetes resources.
- Can you use Kubernetes YAML directly? You can embed K8s resources in a recipe, but Kubernetes YAML/APIs aren't the top-level API. Don't believe K8s is an ideal base for framework.
Hi @dims, can you expand a bit more on what you are asking for here? Are you asking for more details from Radius submission team or more details from the TAG leadership? Thanks!
Whooops! wrong repo. sorry :)
deleted a couple of comments earlier to make sure i don't confuse folks other than myself!
No worries @dims! That is why I wanted to ask 😄
I think if you ask https://github.com/cncf/sandbox/issues/65 with specific questions you may get the best response possible 🤞
Presentation is done and currently no open action items. Therefore closing this ticket.