Delivering modern cloud native applications with open source technologies on Azure
This workshop will guide you through migrating an application from "on-premise" to containers running in Azure Kubernetes Service.
The labs are based upon a node.js application that allows for voting on the Justice League Superheroes (with more options coming soon). Data is stored in MongoDB.
Note: These labs are designed to run on a Linux CentOS VM running in Azure (jumpbox) along with Azure Cloud Shell. They can potentially be run locally on a Mac or Windows, but the instructions are not written towards that experience. ie - "You're on your own."
Note: Since we are working on a jumpbox, note that Copy and Paste are a bit different when working in the terminal. You can use Shift+Ctrl+C for Copy and Shift+Ctrl+V for Paste when working in the terminal. Outside of the terminal Copy and Paste behaves as expected using Ctrl+C and Ctrl+V.
- Setup Lab environment
- Run app locally to test components
- Create Docker images for apps and push to Azure Container Registry(ACR Build)
- Create Docker images for apps and push to Azure Container Registry
- Create an Azure Kubernetes Service (AKS) cluster
- Deploy application to Azure Kubernetes Service
- Kubernetes UI Overview
- Operational Monitoring and Log Management
- Application and Infrastructure Scaling
- Moving your data services to Azure PaaS (CosmosDB)
- Update and Deploy New Version of Application
- Upgrade an Azure Kubernetes Service (AKS) cluster
These labs can be completed in no particular order.
- CI/CD Automation
- Kubernetes Ingress Controllers
- Kubernetes InitContainers
- Azure Service Broker
- Persistent Storage
- Azure Container Instances and ACI Connector
- Kubernetes Stateful Sets (coming soon)
- Secrets and ConfigMaps (coming soon)
- Helm Charts deep dive (coming soon)
- Troubleshooting and debugging (coming soon)
- RBAC and Azure AD integration (coming soon)
This project welcomes contributions and suggestions, unless you are Bruce Wayne. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
This software is covered under the MIT license. You can read the license here.
This software contains code from Heroku Buildpacks, which are also covered by the MIT license.
This software contains code from [Helm][], which is covered by the Apache v2.0 license.
You can read third-party software licenses [here][Third-Party Licenses].