Chris Tremblay

Helping developers build awesome stuff on Azure
Logo
Connect with me

LinkedIn
chris.tremblay@microsoft.com
christremblay.com
azurepetstore.com

View my Microsoft Learn Module https://aka.ms/learn-about-containers-on-azure-with-chris

Watch my How to migrate Java Tomcat apps to Azure Video on YouTube https://www.youtube.com/watch?v=lIeReNBNr48&t=201s

Watch my How to Monitor Java Tomcat Apps on Azure App Service Video on YouTube https://www.youtube.com/watch?v=dDZorrTzk_Q&t=6s

Watch my How to deploy Java Tomcat Apps with GitHub Actions to Azure Video on YouTube https://www.youtube.com/watch?v=MTBzsHcIH_U

View Azure Pet Store on GitHub chtrembl/azure-cloud

Azure Pet Store Learning Guides

Often, it is handy to have an N-Tiered Azure architected deployment ready to go, complete with functional code, CI/CD and various services for you to experiment Azure with. Since it is usually hard to find one that hits many of the App Dev Services of Azure, I’ve decided to build one. Perhaps you’re learning new Azure technologies, giving Azure demos, looking for a prototype with Azure or simply just curious about Azure, these guides will get you on your way to running a full Hypothetical Azure Pet Store Application and its dependencies, using the Azure technologies illustrated below. Already built and cloud agnostic are a Pet Store web app and 3 Pet Store micro services that you can deploy into Azure App Service (petstoreapp) and Azure Kubernetes Service (petstorepetservice, petstoreproductservice & petstoreorderservice). You will first build and run these locally (optional) and slowly add in the other services depicted (Azure B2C, Application Insights, API Management, Function App, Power App, Regression Suite etc…). These applications were built with Java/Spring Boot and while the guides are not necessarily focused on coding (not required) you are encouraged to build/deploy them locally (All you need is Docker locally) to get the full developer experience. You can however use Azure DevOps Pipelines and GitHub Actions to do the build & deploys for you and make changes directly in your cloud repository instead of locally.

For a video overview of Azure Pet Store click below

Azure Pet Store video overview

You can view the live deployment here https://azurepetstore.com

As mentioned above, the objective is for you to be able to learn and showcase the many uses of App Dev Services within Azure. Below are some of the useful scenarios that are currently available in these guides.

This is NOT official Microsoft documentation but rather an opinionated approach/guidance

This is hands-on and will be hands on keyboard. However, once complete, this will be running in your subscription and always readily available. The Pet Store Application and Pet Store Services are built with Java and Spring Boot. You’re welcome to import these into your IDE of choice, write code and/or contribute back, however that is not mandatory for these guides. As mentioned above, you can use Azure DevOps Pipelines and GitHub Actions to handle the build & deploys for you.

📝 Please Note, you will need an Azure Subscription and GitHub account for these guides. If not, you you can sign up here to get started.

00 - Setup your environment

Prerequisites and environment setup (Optionaly you can build/deploy locally)

01 - Build the Docker Images

Build the Docker Images

02 - Push the Docker Images to Azure Container Registry

Push the Docker Images to Azure Container Registy

03 - Configure App Service for continuous deployment

Configure App Service for continuous deployments of Azure Container Registry Docker image updates

04 - Configure Git Hub Action for CI/CD into App Service

Configure Git Hub Action for CI/CD into App Service

05 - Create an Azure Kubernetes Cluster and configure NGINX Ingress controller

Create an Azure Kubernetes Cluster

06 - Configure Azure DevOps Pipeline for CI/CD into Azure Kubernetes Service

Configure Azure DevOps Pipeline for CI/CD into Azure Kubernetes Service

07 - Connect PetStoreApp and PetStoreService Together

Connect PetStoreApp and PetStoreService Together

08 - Configure Apps to use Application Insights

Configure Apps to use Application Insights

09 - Configure API Management in front of PetStoreService

Configure API Management in front of PetStoreService

10 - Configure B2C for PetStoreApp Identity Management

Configure B2C for PetStoreApp Identity Management

11 - DataOps: Configure Azure DevOps Pipeline for CI/CD into Azure Databricks

Configure Azure DevOps Pipeline for CI/CD into Azure Databricks

12 - Configure Azure DevOps pipelines to execute automated regression tests

Configure Azure DevOps pipelines to execute automated regression tests

13 - Build and Deploy Azure Functions

Build and Deploy Azure Functions

14 - Build a Canvas Power App that uses a Custom Connector to Pull Data

Build a Canvas Power App that uses a Custom Connector to Pull Data

15 - Build a Logic App to send an email when a message is received in a Service Bus topic

Build a Logic App to send an email when a message is received in a Service Bus topic

16 - Build a Bicep IaC Template and Configure a DevOps Pipeline for Self Service Deployment of Azure Infrastructure

17 - Configure SignalR to send Real-Time Analytics to Client Browser

18 - Build an Intelligent and more Accessible Experience into your Application


Microsoft and any contributors grant you a license to the Microsoft documentation and other content in this repository under the Creative Commons Attribution 4.0 International Public License, see the LICENSE file, and grant you a license to any code in the repository under the MIT License, see the LICENSE-CODE file.

Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft’s general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.

Privacy information can be found at https://privacy.microsoft.com/en-us/

Microsoft and any contributors reserve all other rights, whether under their respective copyrights, patents, or trademarks, whether by implication, estoppel or otherwise.