Skip to content

Latest commit

 

History

History
79 lines (65 loc) · 5.79 KB

README.md

File metadata and controls

79 lines (65 loc) · 5.79 KB

Portability Patterns Library

The portability patterns library provides reusable application patterns, reference implementations, and guidance for building workloads that can operate consistently across Azure cloud, sovereign environments, and Azure Local. It supports business continuity by helping teams design adaptive applications that can be deployed, moved, or recovered across environments while minimizing dependencies on location-specific services.

Disclaimer

The sample applications and portability patterns ("Reference Materials") are provided for reference only, on an "as is" basis, and without warranties of any kind. Customers are solely responsible for validating the Reference Materials in their environment and for their final implementation and configuration. Microsoft assumes no responsibility or liability for any use of, reliance on, or results arising from the Reference Materials.

How the repository is organized

portability-patterns-library/
├── README.md
├── resources/                                # One folder per Azure resource
│   └── <slug>/                               # e.g. service-bus, blob-storage, postgresql
│       ├── README.md                         # Guide
│       └── alternatives/                     # One page per alternative
├── targets/                                  # One page per target environment
├── recipes/                                  # <capability>/<platform>/<implementation>
│   └── object-storage/azure-local/seaweedfs/ # Recipe source
├── recipe-packs/                             # One pack per environment, e.g. azure-local
└── samples/                                  # End-to-end apps, e.g. OrderManagementApp
Folder What it holds
resources/ One guide per Azure resource: what carries over to Azure Local, what you change, and the alternatives, with their limitations.
recipes/ Radius Recipes: how each platform provides a resource, for example Azure Service Bus on Azure and RabbitMQ on Azure Local.
recipe-packs/ One Recipe Pack per platform, choosing the Recipe for each resource.
samples/ End-to-end applications that use the Recipes and Recipe Packs on Azure and on Azure Local.

Some folders, such as targets/, are planned and not there yet. Repository structure explains each building block, the guide format and the labels the guides use.

Getting started

  1. Run a sample. Start with the Order Management sample. It runs one application definition and one set of container images on AKS with Azure services, and on AKS on Azure Local, where it keeps running when the site loses its link to Azure. Its README shows how to run it on your machine, on Azure and on Azure Local.
  2. Reuse the Recipes and Recipe Packs. Recipes and Recipe Packs explains how an application uses them, how the sample does it, and how to use the ones in this repository for your own app.
  3. Check the guide for each Azure service your app uses. The resource guides say what carries over to Azure Local, what you change and which alternative to use.

Contributing and support

License and third-party materials

This project is licensed under the MIT License. Third-party materials remain subject to their respective licenses and terms:

  • The Order Management sample includes the Microsoft Authentication Library for JavaScript (MSAL.js) browser bundle under wwwroot/lib/msal-browser. Its MIT license is included alongside the bundle.
  • The container Recipe recipes/kubernetes/kubernetes-containers.bicep is adapted from the Kubernetes container Recipe in radius-project/resource-types-contrib, under the Apache License 2.0. The file marks the changes, and its license is included alongside it.
  • NuGet dependencies, including Azure SDK libraries, the AWS SDK for .NET (S3), Microsoft.Identity.Web, Dapper, Microsoft.Data.SqlClient, and RabbitMQ.Client, are referenced by the sample's project files and restored during the build. Refer to each package for its license and notices.
  • Deployment definitions use external tools and container images, including Radius, Kubernetes, RabbitMQ, SeaweedFS, SQL Server, and Keycloak. These components have their own licenses and usage terms; this repository's license does not replace them.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.