Serverless-microservices-reference-architecture
This reference architecture walks you through the decision-making process involved in designing, developing, and delivering a serverless application using a microservices architecture through hands-on instructions for configuring and deploying all of the architecture's components along the way. The goal is to provide practical hands-on experience in working with several Azure services and the technologies that effectively use them in a cohesive and unified way to build a serverless-based microservices architecture.
File Explorer
Download Latest Version (.zip)- bicep-audit.yml
- dotnet.yml
- nodejs.yml
- spa.yml
- ISSUE_TEMPLATE.md
- PULL_REQUEST_TEMPLATE.md
- launch.json
- settings.json
- parameters.json
- template.json
- apim.bicep
- apimAPI.bicep
- applicationInsights.bicep
- cosmosdb.bicep
- eventgrid.bicep
- functions.bicep
- keyvault.bicep
- signalr.bicep
- sqldb.bicep
- staticwebapp.bicep
- main.bicep
- main.json
- main.test.bicep
- parameters.json
- aad-b2c-user-settings.png
- apim-api-creation.png
- apim-browse.png
- apim-config-required-settings.png
- apim-copy-primary-key.png
- apim-creation.png
- apim-driver-functions.png
- apim-function.png
- apim-hierarchy.png
- apim-operation-creation.png
- apim-product-creation.png
- apim-product-not-published.png
- apim-publish-product.png
- apim-users.png
- app-insights-custom-events.png
- app-insights-custom-metrics.png
- app-insights-normal.png
- app-service-creation.png
- app-service-plan-creation.png
- application-insights-creation.png
- application-insights-creation1.png
- archiver-01-folder-structure.png
- azure-active-directory-b2c-login.png
- azure-ad-b2c-add-susi-policy.png
- azure-ad-b2c-overview-blade.png
- azure-ad-b2c-published-scopes.png
- azure-ad-b2c-reply-urls.png
- azure-ad-b2c-tenant-id.png
- azure-devops-add-artifact.png
- azure-devops-azure-sub.png
- azure-devops-build-pipelines.png
- azure-devops-builds-page.png
- azure-devops-choose-yaml-template.png
- azure-devops-complete-drivers-app-stage.png
- azure-devops-complete-drivers-app-stage2.png
- azure-devops-deploy-app-service-task-1.png
- azure-devops-dotnet-function-app-successful-release.png
- azure-devops-import-release-pipeline-2.png
- azure-devops-import-release-pipeline.png
- azure-devops-imported-function-apps-release-pipeline.png
- azure-devops-new-build-pipeline.png
- azure-devops-new-release-pipeline-templates.png
- azure-devops-node-function-app-aasdeploy.png
- azure-devops-node-function-app-successful-release.png
- azure-devops-queue-build.png
- azure-devops-release-created-notification.png
- azure-devops-release-pipeline-set-stage-name.png
- azure-devops-release-pipelines.png
- azure-devops-release-succeeded.png
- azure-devops-releases-new-import.png
- azure-devops-select-artifacts-dialog.png
- azure-devops-select-repository-authorized.png
- azure-devops-select-repository.png
- azure-devops-stage-tasks-link.png
- azure-devops-static-website-release-pipeline.png
- azure-devops-trip-archiver.png
- azure-devops-web-app-stage.png
- azure-devops-yaml-form1.png
- azure-devops-yaml-form2.png
- azure-devops-yaml-select-path.png
- azure-devops-zip.png
- azurue-devops-create-release.png
- comos-creation.png
- comos-creation1.png
- comos-creation2.png
- create-tenant.png
- dataflow-architecture.png
- dotnet-source-structure.png
- drivers-page-information.png
- drivers-page.png
- event-grid-fire-event.png
- event-grid-listeners.png
- event-grid-topic-creation.png
- event-grid-topic-creation1.png
- event-grid-topic-creation2.png
- function-apis-architecture.png
- function-app-configuration.png
- function-app-identity.png
- function-app-search-box.png
- graph-api-required-permissions.png
- illustrations.pptx
- key-vault-access-policies.png
- key-vault-add-access-policy-select-principal.png
- key-vault-creation.png
- key-vault-generate.png
- key-vault-get-secret-policy.png
- key-vault-principal.png
- key-vault-secret-current-version.png
- key-vault-secret-identifier.png
- key-vault-secrets.png
- kudu-file-edit-link.png
- kudu-manual-site-deployment.png
- kudu-new-file-button.png
- kudu-new-file-settings.png
- kudu-settings-in-editor.png
- logic-app-creation.png
- logic-app-creation1.png
- logic-app-creation2.png
- logic-app-creation3.png
- logic-app-creation4.png
- logic-app-creation5.png
- logic-app-listener.png
- macro-architecture.png
- my-trip-page-completed-trip.png
- new-function-app-form.png
- no-access.png
- orchestrators-architecture.png
- orchestrators-demo-architecture.png
- orchestrators-double-architecture.png
- passengers-page-information.png
- passengers-page.png
- resource-group-creation.png
- resource-group-function-apps.png
- sample-trip-powerbi-report.png
- SampleTripReport.pbix
- select-azure-active-directory.png
- select-azure-ad-b2c-tenant.png
- Serverless-microservices-reference-architecture.vsdx
- signalr-01-create-resources.png
- signalr-02-create.png
- signalr-03-settings.png
- signalr-04-progress.png
- signalr-04-succeeded.png
- signalr-06-connection-strings.png
- signalr-07-create-functionsApp.png
- signalr-creation.png
- signalr-creation1.png
- sql-database-creation.png
- sql-database-creation1.png
- sql-database-server-creation.png
- storage-creation.png
- storage-creation2.png
- switch-directories.png
- switch-directory-subscription.png
- trip-request-submitted.png
- trips-function-app-cors-01.png
- trips-function-app-cors-02.png
- trips-function-app-functions.png
- trips-function-app-link.png
- vuejs.png
- website-folder-structure.png
- api-endpoints.md
- api-management.md
- architecture-overview.md
- client-application.md
- data-storage.md
- introduction.md
- monitoring-testing.md
- README.md
- services-intercommunication.md
- setup.md
- source-code-structure.md
- paths.cake
- drivers
- orchestrators
- passengers
- trips
- rg_resources.png
- RideShareDevPostmanCollection.json
- RideShareProdPostmanCollection.json
- .gitignore
- DriverFunctions.cs
- host.json
- local.settings.example.json
- ServerlessMicroservices.FunctionApp.Drivers.csproj
- launchSettings.json
- .gitignore
- Extensions.cs
- host.json
- local.settings.example.json
- ServerlessMicroservices.FunctionApp.Orchestrators.csproj
- TripDemoOrchestrator.cs
- TripDemoOrchestratorTriggers.cs
- TripManagerOrchestrator.cs
- TripManagerOrchestratorTriggers.cs
- TripMonitorOrchestrator.cs
- TripMonitorOrchestratorTriggers.cs
- launchSettings.json
- .gitignore
- host.json
- local.settings.example.json
- PassengerFunctions.cs
- ServerlessMicroservices.FunctionApp.Passengers.csproj
- launchSettings.json
- .gitignore
- host.json
- local.settings.example.json
- ServerlessMicroservices.FunctionApp.Trips.csproj
- TripFunctions.cs
- BaseItem.cs
- CarItem.cs
- DriverItem.cs
- PassengerItem.cs
- ServerlessMicroservices.Models.csproj
- TripItem.cs
- launchSettings.json
- Program.cs
- ServerlessMicroservices.Seeder.csproj
- B2cValidationAttribute.cs
- Constants.cs
- Utilities.cs
- ChangeNotifierService.cs
- CosmosPersistenceService.cs
- IChangeNotifierService.cs
- ILoggerService.cs
- IPersistenceService.cs
- IPowerBIService.cs
- IRoutesService.cs
- ISettingService.cs
- IStorageService.cs
- ITokenValidationService.cs
- IUserService.cs
- LoggerService.cs
- PowerBIService.cs
- RoutesService.cs
- ServiceFactory.cs
- SettingService.cs
- SqlPersistenceService.cs
- StorageService.cs
- TokenValidationService.cs
- UserService.cs
- ServerlessMicroservices.Shared.csproj
- RideShareDriversDocker-AppSettings.csv
- RideShareDriversDockerDev-AppSettings.csv
- RideShareDriversFunctionApp-AppSettings.csv
- RideShareDriversFunctionAppDev-AppSettings.csv
- RideShareOrchestratorsDocker-AppSettings.csv
- RideShareOrchestratorsDockerDev-AppSettings.csv
- RideShareOrchestratorsFunctionApp-AppSettings.csv
- RideShareOrchestratorsFunctionAppDev-AppSettings.csv
- RideSharePassengersDocker-AppSettings.csv
- RideSharePassengersDockerDev-AppSettings.csv
- RideSharePassengersFunctionApp-AppSettings.csv
- RideSharePassengersFunctionAppDev-AppSettings.csv
- RideShareTripsDocker-AppSettings.csv
- RideShareTripsDockerDev-AppSettings.csv
- RideShareTripsFunctionApp-AppSettings.csv
- RideShareTripsFunctionAppDev-AppSettings.csv
- aci_drivers.yaml
- aci_orchestrators.yaml
- aci_passengers.yaml
- aci_trips.yaml
- .gitignore
- build.cake
- build.ps1
- cake.config
- dotnet.sln
- provision-deploy-aks.ps1
- rideshare-aks-app.yaml
- setup-azure-auth.ps1
- extensions.json
- launch.json
- settings.json
- tasks.json
- function.json
- host.json
- index.js
- .gitignore
- host.json
- local.settings.example.json
- package-lock.json
- package.json
- Rideshare-DotnetFunctionApps-CI.yaml
- Rideshare-NodeFunctionApps-CI.yaml
- Rideshare-StaticWebsite-CI.yaml
- Function-apps-release-pipeline.json
- Node-function-apps-release-pipeline.json
- Static-website-release-pipeline.json
- build-dotnet.ps1
- run-local.ps1
- test-local.ps1
- local.http
- settings.example.js
- testparams.json
- bootstrap.min.css
- settings.sample.js
- favicon.ico
- index.html
- drivers.js
- passengers.js
- trips.js
- app-store-badge.svg
- bg-cta.jpg
- bg-pattern.png
- driver-icon.png
- google-play-badge.svg
- iphone_6_plus_white_port.png
- ride-icon.png
- rider-icon.png
- rideshare-mock-app.png
- yellow-car.png
- AppFooter.vue
- SignalRTrips.vue
- common.js
- drivers.js
- index.js
- passengers.js
- trips.js
- Authentication.js
- http.js
- Drivers.vue
- Home.vue
- NoAuth.vue
- Passengers.vue
- Trip.vue
- App.vue
- main.js
- router.js
- .browserslistrc
- .deployment
- .eslintrc.js
- .gitignore
- .postcssrc.js
- babel.config.js
- package-lock.json
- package.json
- README.md
- vue.config.js
- .gitignore
- CHANGELOG.md
- CONTRIBUTING.md
- LICENSE.md
- ps-rule.yaml
- README.md
π Installation Guide
git clone https://github.com/Azure-Samples/Serverless-microservices-reference-architecture
Downloads the entire project code from GitHub to your computer.
cd Serverless-microservices-reference-architecture
Moves into the project folder you just downloaded.
2. .NET
Medium Recommended- [.NET SignalR client](/documentation/services-intercommunication.md#dotnet-signalr-client)
Type this command into your terminal and run it.
Pulled directly from this repo's README.
3. Node.js
Easycd nodejs/serverless-microservices-functionapp-triparchiver
This project's files live in a subfolder, so move into it first.
npm install
Downloads and installs the libraries listed in package.json.
npm start
Starts the development/run server.
