Skip to content

Commit

Permalink
Downmerge 10-18-2023 (#878)
Browse files Browse the repository at this point in the history
* Adding "Why Radius?" concept doc (#827)

* Adding "Why Radius?" concept doc

* Apply suggestions from code review

Co-authored-by: Jonathan Smith <[email protected]>
Co-authored-by: Ryan Waite <[email protected]>

* More feedback

* third draft

---------

Co-authored-by: Jonathan Smith <[email protected]>
Co-authored-by: Ryan Waite <[email protected]>

* Update rad CLI documentation (#868)

* Autogenerate rad CLI reference docs

* Spellcheck

---------

Co-authored-by: rad-ci-bot <[email protected]>
Co-authored-by: Aaron Crawfis <[email protected]>

* Autogenerate rad CLI reference docs (#872)

Co-authored-by: rad-ci-bot <[email protected]>

* Autogenerate rad CLI reference docs (#873)

Co-authored-by: rad-ci-bot <[email protected]>

* Autogenerate rad CLI reference docs (#874)

Co-authored-by: rad-ci-bot <[email protected]>

* Upmerge 10-18-2023 (#877)

* Merge edge to v0.26 (#838)

* Add how-to guide on local dev recipes  (#822)

* Add supported resource types

* Add how-to guideto use local dev recipes

* Apply suggestions from code review

Co-authored-by: Jonathan Smith <[email protected]>

* Update docs/content/guides/recipes/howto-dev-recipes/index.md

* Adddress feedback

* Address feedback

* Apply suggestions from code review

Co-authored-by: Aaron Crawfis <[email protected]>

* Minor tweaks

* minor tweaks

---------

Co-authored-by: Jonathan Smith <[email protected]>
Co-authored-by: Aaron Crawfis <[email protected]>

* Standardize pre-reqs for all how-tos (#836)

* Standardixe pre-reqs for all how-tos

* Update docs/content/guides/author-apps/azure/howto-azure-resources/index.md

---------

Co-authored-by: Jonathan Smith <[email protected]>
Co-authored-by: Aaron Crawfis <[email protected]>

* Sanitize docs for release references (#837)

* Add how-to guide on local dev recipes  (#822)

* Add supported resource types

* Add how-to guideto use local dev recipes

* Apply suggestions from code review

Co-authored-by: Jonathan Smith <[email protected]>

* Update docs/content/guides/recipes/howto-dev-recipes/index.md

* Adddress feedback

* Address feedback

* Apply suggestions from code review

Co-authored-by: Aaron Crawfis <[email protected]>

* Minor tweaks

* minor tweaks

---------

Co-authored-by: Jonathan Smith <[email protected]>
Co-authored-by: Aaron Crawfis <[email protected]>

* Sanitize docs for release references

* Revert spelling fix

* Apply suggestions from code review

Co-authored-by: Aaron Crawfis <[email protected]>

---------

Co-authored-by: Jonathan Smith <[email protected]>
Co-authored-by: Aaron Crawfis <[email protected]>

* Add Codespace docs

Signed-off-by: Aaron Crawfis <[email protected]>

* Update instructions for `How To Configure AWS Provider` (#839)

* Fixing a typo from the rad install kubernetes command (#846)

* Update pull_request_template.md (#844)

* Update steps after port forward to view the contents of /tmpdir (#847)

Update steps after port forward to view the contents of /tmpdir

Co-authored-by: Aaron Crawfis <[email protected]>

* Updating the initialization verification doc (#843)

Co-authored-by: Aaron Crawfis <[email protected]>

* Update index.md with '<container_name>' instead of 'frontend' (#848)

In commend to 'inspect container logs' update current value 'frontend' with a more generic '<container_name>' similar to other commands in the document

* Updating How To Connect Dependencies doc (#850)

* Multi-cloud and OSS concept doc (#821)

* 1st draft of multi-cloud and OSS concept doc

* Fixing spelling errors

* Apply suggestions from code review

Co-authored-by: Aaron Crawfis <[email protected]>

* Update to correct open-source spelling

Co-authored-by: Aaron Crawfis <[email protected]>

* Changing doc weight to 100 per Aaron.

Co-authored-by: Aaron Crawfis <[email protected]>

* Apply break after header

Co-authored-by: Aaron Crawfis <[email protected]>

* Correct spelling error for "application"

Co-authored-by: Ryan Nowak <[email protected]>

* Add blank line after heading

Co-authored-by: Aaron Crawfis <[email protected]>

* Add blank line after heading

Co-authored-by: Aaron Crawfis <[email protected]>

* Include Helm charts in description of deployment assets

Co-authored-by: Ryan Nowak <[email protected]>

* Amazon S3 is not valid Dapr state store, so use DynamoDB instead

Co-authored-by: Ryan Nowak <[email protected]>

* More substantial changes based on Nowak's feedback

* Updating en-custom.txt spelling

* Put the "Concept:" in quotes to prevent build errors

Co-authored-by: Ryan Nowak <[email protected]>

* Get more specific about publicly available

Co-authored-by: Ryan Nowak <[email protected]>

* Update docs/content/concepts/multi-cloud-concept/index.md

Co-authored-by: Aaron Crawfis <[email protected]>

* Spellcheck

---------

Co-authored-by: Aaron Crawfis <[email protected]>
Co-authored-by: Ryan Nowak <[email protected]>

* Update index.md (#854)

Updating local dev recipes docs to use correct pod name

* Update link to initialize page (#853)

* Update link

Signed-off-by: Aaron Crawfis <[email protected]>

* Update vscode link

Signed-off-by: Aaron Crawfis <[email protected]>

---------

Signed-off-by: Aaron Crawfis <[email protected]>

* Update copy logic (#855)

Signed-off-by: Aaron Crawfis <[email protected]>

* Fix code formatting (#856)

* Add how to guide on Secret stores (#834)

* Add supported resource types

* Add how-to secret store

* Split into two howto-s

* Fix ref

* Updates

* Apply suggestions from code review

Co-authored-by: Aaron Crawfis <[email protected]>

* Adddress feedback

* Address feedback

---------

Co-authored-by: Aaron Crawfis <[email protected]>

* Fix installation instructions

Signed-off-by: Aaron Crawfis <[email protected]>

* Add pre-requisites

Signed-off-by: Aaron Crawfis <[email protected]>

* Update api-ucp.md (#859)

* Update index.md (#858)

* Update index.md

Update to verify Helm installation

* nit

Co-authored-by: Aaron Crawfis <[email protected]>

* Spellcheck

Signed-off-by: Aaron Crawfis <[email protected]>

---------

Signed-off-by: Aaron Crawfis <[email protected]>
Co-authored-by: Aaron Crawfis <[email protected]>

* Update title

Signed-off-by: Aaron Crawfis <[email protected]>

* Add docs to install Radius Bicep extension from VSCode marketplace (#865)

* Add docs to install Radius Bicep extension from VSCode marketplace

* Revert wrong upd

* Revert upd to initialize

* Update docs/shared-content/installation/install-radius/initialize-radius.md

* Update docs/shared-content/installation/vscode-bicep/install-vscode-bicep.md

Co-authored-by: Aaron Crawfis <[email protected]>

---------

Co-authored-by: Aaron Crawfis <[email protected]>

* Update get.radapp.dev references (#866)

* Switch to radapp.io

Signed-off-by: Aaron Crawfis <[email protected]>

* add link to blog (#875)

Signed-off-by: Will Tsai <[email protected]>

* Remove clarity AAD integration

Signed-off-by: Aaron Crawfis <[email protected]>

* revert config changes

* revert config changes

---------

Signed-off-by: Aaron Crawfis <[email protected]>
Signed-off-by: Aaron Crawfis <[email protected]>
Signed-off-by: Will Tsai <[email protected]>
Co-authored-by: Aaron Crawfis <[email protected]>
Co-authored-by: Jonathan Smith <[email protected]>
Co-authored-by: Karishma Chawla <[email protected]>
Co-authored-by: Vishwanath Hiremath <[email protected]>
Co-authored-by: Shalabh Mohan Shrivastava <[email protected]>
Co-authored-by: Lakshmi Javadekar <[email protected]>
Co-authored-by: Yetkin Timocin <[email protected]>
Co-authored-by: Ryan Waite <[email protected]>
Co-authored-by: Ryan Nowak <[email protected]>
Co-authored-by: Shruthi Kumar <[email protected]>
Co-authored-by: Will <[email protected]>

* Revert config changes

---------

Signed-off-by: Aaron Crawfis <[email protected]>
Signed-off-by: Aaron Crawfis <[email protected]>
Signed-off-by: Will Tsai <[email protected]>
Co-authored-by: Ryan Nowak <[email protected]>
Co-authored-by: Jonathan Smith <[email protected]>
Co-authored-by: Ryan Waite <[email protected]>
Co-authored-by: rad-ci-bot <[email protected]>
Co-authored-by: rad-ci-bot <[email protected]>
Co-authored-by: Aaron Crawfis <[email protected]>
Co-authored-by: Karishma Chawla <[email protected]>
Co-authored-by: Vishwanath Hiremath <[email protected]>
Co-authored-by: Shalabh Mohan Shrivastava <[email protected]>
Co-authored-by: Lakshmi Javadekar <[email protected]>
Co-authored-by: Yetkin Timocin <[email protected]>
Co-authored-by: Shruthi Kumar <[email protected]>
Co-authored-by: Will <[email protected]>
  • Loading branch information
14 people authored Oct 18, 2023
1 parent 57fd2bc commit dbf0877
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 13 deletions.
13 changes: 13 additions & 0 deletions .github/config/en-custom.txt
Original file line number Diff line number Diff line change
Expand Up @@ -967,3 +967,16 @@ secureString
btdgzez
bzmp
Webhook
Appi
ness
DevOps
DevSecOps
learnings
architected
customizable
Gitops
OSS
SRE
SREs
OSI
ghcr
1 change: 0 additions & 1 deletion docs/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ tag = "tags"

[params]
copyright = "Radius"

version = "v0.26"
tag_version = "latest"
chart_version = "0.26.0"
Expand Down
57 changes: 57 additions & 0 deletions docs/content/concepts/why-radius-concept/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
type: docs
title: "Concept: Why Radius?"
linkTitle: "Why Radius?"
description: "Describes the motivations for creating Radius."
weight: 300
categories: "Concept"
---

## Our starting point

We started Radius to simplify and improve upon tools application developers use to deploy and manage applications. Our initial goal was just to create a platform for deployment that developers would love but, as we talked to more cloud customers, we realized almost every enterprise is creating a custom internal developer platform to standardize the way they deploy and manage cloud-native applications

Most enterprises are not dev-tools experts and as a result they struggle with the cost and complexity of building a home-grown solution. If we could provide an open-source solution that solved these problems for enterprises we could have a big impact.

A few common problems rose to the top:

- **Applications are more than just Kubernetes:** standardizing on Kubernetes has been a successful strategy for most enterprises, but applications developers are tasked with managing applications on Kubernetes along with multiple resources in the cloud. Integrating Kubernetes with cloud services has added additional complexity while making compliance with best-practices almost a full-time job.
- **Developers, platform engineers, and IT operators need to collaborate:** to manage the complexity of the cloud, enterprises have specialized disciplines like sec-ops, fin-ops, and cloud centers of excellence. Application developers need to interface with all of these roles, and the tools they use should aid, not impede collaboration.
- **Applications lack an industry-wide definition:** the IT operators, SREs and other specialists that support an application usually lack context about the architecture. Application developers lack context about the underlying cloud infrastructure. As application developers and IT operators collaborate they need a common understanding and visualization of what an application **is**.

So, we started Radius to address these concerns and provide **our** opinions about how application management should work in today's complex cloud-native landscape. Along the way we came up with the concept of **Appi-ness**: the feeling of satisfaction one has when the application is at the center of every workflow.

## Applications are more than just Kubernetes

The modern cloud-native application includes much more than Kubernetes. Applications use databases, message queues, identity systems, SaaS accounts, and observability platforms. However, most of the tools that are available for developers are focused on the Kubernetes basics of compute, storage, and networking.

Our philosophy is to be inclusive when considering what is *part of the application*. Developers can use cloud resources directly or use Recipes configured by operators for on-demand provisioning of infrastructure. We automate best-practices like IAM/identity assignment, permissions management, diagnostics, and networking configuration based on the application architecture and developer intent. We hope that features like Connections feel like magic when its easy to wire up your dependencies. IT operators control the templates and credentials used to interact with the cloud ensuring that provisioning is done in a supported way.

## Developers and platform engineers need to collaborate

Enterprises are creating specialized roles and initiatives to improve their speed, efficiency, and security when adopting the cloud. Platform engineering is an emerging discipline that's combining a product mindset with learnings from DevOps and DevSecOps teams to create internal development platforms. When successful, platform engineers deliver a set of tools that provide sufficient automation, tracking, governance, and observability that guide development teams naturally fall “into the pit of success.” Often these endeavors can come up a little short, looking like a set of repository templates, cloud resource templates, and a software catalog for application developers to use. Unfortunately, the tools and assets that are frequently used don't encourage collaboration between developers and the platform engineers supporting those developers. Platform engineering is new as a discipline, and the patterns that will make enterprises successful long-term are still emerging.

Radius provides concepts like Environments and Recipes that support a separation of concerns. Platform engineers can create repository templates with CI/CD pipelines and starter code for deployment. IT operators can deploy and govern the Environments where those pipelines deploy applications. Cloud and security experts can provide the Recipes used to create and update cloud resources. Developers are only responsible for describing the requirements and architecture of the application, understanding which environments to use, and choosing dependencies from the supported set of Recipes.

## Applications need an industry-standard definition

The myriad of operational roles that support applications in production rarely have the full picture of how the application is architected or a complete picture of the infrastructure resources that are in use. It can be difficult for an organization to understand the impact of an outage or what is causing high consumption and high cost for a cloud resource without a holistic understanding of the application. Unless developers are creating the cloud resources themselves, its hard for them to understand the real infrastructure at work. Teams are adopting software catalogs to help address these problems but there is always drift between the catalog and the source of truth.

We wanted to do better by building a flexible and customizable picture of what an application *is*. To do this we capture the developer's understanding of the application during deployment and combine that picture with the cloud resources and Recipes used to provision the infrastructure. This data is used to build the Application Graph, a new kind of software catalog that describes the application's architecture, communication patterns, and dependencies as a shared view for the whole organization.

We hope that this holistic way of thinking about applications becomes the standard and that together with the rest of the cloud-native ecosystem we can build a set of tools that promote **Appi-ness**.

## What we're not rethinking

Many practices and technologies in cloud-native development are a success and don't need to be re-thought.

- Radius makes is easy for application developers to adopt because it supports your existing containerized code, Dockerfiles, and Helm charts.
- We believe that [twelve-factor](https://12factor.net/) is still a great set of ideas and so any twelve-factor style application should be easy to use with Radius.
- We like infrastructure-as-code as for its repeatability and use it for both Recipes and application descriptions.
- There are plenty of great CI/CD systems, application delivery pipelines, and Gitops systems out there and Radius can work with any of them.

## Open-source from the start

We planned for Radius to be open-source from the start because we want to reach as many developers, organizations, and ecosystem partners as we can. Open-source can mean different things to different people. For Radius, open-source means that our source code is publicly available under an OSI-approved permissive license. It also means that the Radius project uses an neutral and open governance model to continue the evolution of Radius as a multi-cloud technology going forward. Anyone should be able to contribute to Radius, extend the platform, self-host Radius for internal use, or use it to build a business hosting other people's applications.

We know from our conversations with enterprises that customization, extensibility, and a large ecosystem are key. Every organization is unique and will make different policy, workflow, and technology choices. Every large organization has critical internal technologies. Extensibility is the way to put those internal technologies on even-footing with the cloud. A large ecosystem of partners and integrations enables everyone to keep using the technologies they are already committed to. By participating in open-source, users have a direct channel to propose changes, give feedback, add features, or customize the version of Radius they use. Our commitment to open-source and neutral, open governance means any technology vendor can join the ecosystem and benefit from the level playing-field that's being created.
Original file line number Diff line number Diff line change
@@ -1,17 +1,5 @@
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.

1. Create a Kubernetes cluster

Radius runs inside [Kubernetes]({{< ref "guides/operations/kubernetes" >}}). Create one from the [supported k8s clusters]({{< ref "/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/), which runs a minimal Kubernetes distribution in Docker._
Ensure your cluster is set as your current context:

```bash
kubectl config current-context
```

1. Create a Kubernetes cluster

Radius runs inside [Kubernetes]({{< ref "guides/operations/kubernetes" >}}). Create one from the [supported k8s clusters]({{< ref "/guides/operations/kubernetes/overview#supported-kubernetes-clusters" >}})
Expand Down

0 comments on commit dbf0877

Please sign in to comment.