This is the repository associated with the FREE e-book Globally-distributed applications with Microsoft Azure
Online.Store
is a web application designed to scale across multiple regions over the globe. It does that by leveraging the following Azure Services
:
- Azure CDN
- Azure Traffic Manager
- Azure Storage
- Azure Cosmos DB
- Azure Search
- Azure Redis Cache
- Service Bus
- App Services & WebJobs
- Azure SQL Databases
- SQL Active Geo-Replication
- Azure Active Directory B2C
Users authenticate using either ASP.NET Core Identity or Azure Active Directory B2C
The first 4 parts describe the features for each Azure Service
used and their role in the design of the Online.Store
application. It provides step by step instructions to configure Online.Store
application settings and secret keys so that you can deploy it all over the globe. The final chapter explains the PowerShell
scripts that you can use to automate processes in a globally distributed application (resource provisioning, releases or rolling back updates)
Continuous Intregration & Delivery
is based in AppVeyor which is totally free to use for open-source projects
Online.Store
is a cross-platform application built with .NET Core
and Angular
. In order to follow along with the book, create Azure Services and build the project you need the following:
- An Azure free account. It's absolutely free, plus you get a $200 credit you can spend during the first 30 days. In a nutchell, to register a free account you need a Microsoft email and a credit cart. Don't worry your credit cart will not be charged. You can read more about the Azure free account here
- Install Microsoft - NET Core
- Install Node JS. Version v6.11.2 and later should be good enough
- Install Git
In case you are in a Windows
OS it is highly advised to install Visual Studio 2017. The project however can be built and run outside of Visual Studio as well (using the .NET Core CLI)
For each Azure Service
there is a corresponding library project with generic repositories. The front-tier is built with Angular
and ngrx/store