radius-project / radius

Radius is a cloud-native, portable application platform that makes app development easier for teams building cloud-native apps.
https://radapp.io
Apache License 2.0
1.47k stars 94 forks source link

Model and deploy 10 most commonly used AWS services via Radius #6380

Open Reshrahim opened 2 years ago

Reshrahim commented 2 years ago

Overview of the feature request

This feature is to validate the modeling and deployment of the most commonly used AWS services via Radius. This is an exercise to learn the unknowns in the AWS space and figure out the plan for Radius to fill in gaps via features and documentation

Features

Phase 1

asilverman commented 2 years ago

Here is a list of AWS services that are commonly used as part of a con

Storage/Caches

Connectivity, Queues, PubSub

Content Delivery

Compute

Identity, Security, Networking

AaronCrawfis commented 2 years ago

One thing I want to make sure we think through is what Radius lesson/skill are we teaching in each quickstart? If all of the above quickstarts are identical except for the AWS resource being modeled, then I would argue we only need one of them: a quickstart on modeling and deploying AWS resources. Having more than one makes all of them redundant.

Radius quickstarts shouldn't have the main focus be on an external service/concept. You shouldn't learn how to use an S3 blob container in a Radius quickstart, that's what the AWS docs are for. Instead, you can refer to the single "AWS quickstart" to learn how to do AWS, and then swap the resource out for S3.

If there are AWS tutorials or examples you want to highlight and "rad-ify", then I would recommend doing a Radius "reference application". We can have an open set of those, focused on rad-ifying other tutorials.

I see these fitting much better as a reference app instead of a quickstart.

asilverman commented 2 years ago

I think that there are multiple value propositions to this exercise:

1) We want to identify gaps and common questions that will arise as people begin modeling AWS services in Radius 2) We want to reduce the barrier for adoption for people transitioning their application models from where they are and to Radius. By offering these samples the customers can use them as a starting point for their own modeling. 3) We believe that these can in the future be published and exposed as recipes of sorts 4) We are looking to learn about common AWS Services and their applications in the product domain of Radius 5) We want to use the building blocks resulting from this exercise to compose a full reference application from AWS Architecture Blog to prove the value proposition of Radius

Reshrahim commented 2 years ago

Since bicep extensibility provider is built by us for AWS resource types, I think we'll have to provide enough to the AWS users trying to model and deploy different AWS resources in Bicep.

I agree quickstarts may not be the ideal place to put this content as Quickstarts are dedicated towards teaching a concept.

Long back when we did the competitive analysis on AWS Proton Template , one of the things that we wanted to do differently was to expand our reference apps samples like the extensive template library AWS proton has. This feature will help us move a step toward that.

Maybe we can rename the Reference apps page to Sample templates or Reference templates and have all the below content grouped underneath it.

AWS

This will help

  1. Ops and developers to discover sample content at various levels within Radius.
  2. We can promote best practices via these templates
  3. Ops and developers do not have to do back and forth between AWS docs and Radius (This will not go away completely, at least one step towards making it easier for them )

Similarly, we can have the content grouped for Azure and Kubernetes as well

Kubernetes

Azure