MiniHack – Parts Unlimited
This Minihack is mostly based around the application PartsUnlimited, and they will walk you through implementing DevOps practices using Azure DevOps.
Parts Unlimited is an example eCommerce website for training purposes based on one of the website described in chapters 31-35 of The Phoenix Project, by Gene Kim, Kevin Behr and George Spafford.
The application code is on Azure DevOps and we will set up Continuous Integration (CI) and Continuous Deployment (CD) within the platform for the code. Continuous Integration builds the app and runs the unit tests whenever the code is pushed to the master branch. After the CI step succeeds it will trigger a deployment to a dev
deployment slot. The staging
slot and production
will require an approver before the app is deployed into them. Once the approver confirms that staging
slot is stable, the app will be deployed to the production site.
Any resemblance to actual scenarios, issues, or pain points that you are facing is not purely coincidental. The definitions of the challenges that will be presented to you during this event are inspired by real life.
Lab Task
- Import Source Code into your Azure DevOps Account with Git.
- Create local Git repo from your Azure DevOps Git repo.
- Set up Service Endpoint in Azure DevOps.
- Import Continuous Integration Build pipeline into Azure DevOps and kick off a build.
- Import Continuous Deployment Release pipeline into Azure DevOps.
- Export Build and Release pipelines from Azure DevOps and commit changes to Azure DevOps repo to kick off CI and CD.
- Confirm successful deployment to Azure.
Estimated Lab Time
- Approximately 30 minutes
PartsUnlimted Application – Key Features
- Works with Visual Studio 2017
- ASP.NET 5 support for Linux and Mono
- Updated to .NET Core 2.0 in Jan 2018
- Modern HTML5 responsive layout using bootstrap for mobile, tablet, and PC
- Includes a Dockerfile and sample publishing profile to publish to a Docker container
- Supports multiple authentication options including Azure Active Directory, Google, and Facebook
- Azure Machine Learning product recommendations based on Order History
- Designed for Azure Websites, including Testing in Production, Staging slots and environment variables for feature flags (to turn off recommendations)
- Includes Grunt tasks for publishing assets to Azure Storage for CDN ingestion for faster performance
- Entity Framework code-first using SQL Azure or an in-memory database (Mono)
- Basic administration pages to add or edit product information
- Includes Azure RM JSON templates and PowerShell automation scripts to easily build and provision your environment
Your Team Mission
Your mission, should you accept it, is to deploy the application currently on development stage in Azure DevOps into the Azure platform.
The success of your team depends on your ability to perform the migrations and minimize the downtime of your applications.
Cheat sheet
In this section, you will find a list of hints to help you get started with the technologies used during the Migration OpenHack.
Obtaining the credentials of your team environment
- Navigate to the Access Details tab.
- The usernames and passwords provided can be used to access your Azure subscription.
Connecting to the Azure portal
DevOps Projects creates a CI/CD pipeline in Azure DevOps. You can create a new Azure DevOps organization or use an existing organization. DevOps Projects also creates Azure resources in the Azure subscription of your choice.
- Sign in to the Microsoft Azure portal.
- In the left pane, select Create a resource icon in the left navigation bar, and then search for DevOps Projects.
- Select Create.