Skip to content

Latest commit

 

History

History
134 lines (108 loc) · 8.81 KB

0-prerequisites-ready-set-go.md

File metadata and controls

134 lines (108 loc) · 8.81 KB

Workshop: Prerequisites - Ready, Set, GO!

Prerequisites

Azure Subscription

You will need an Azure subscription with contributor role permissions to complete this course.

  • Microsoft employees can activate Azure $150 monthly credit benefit via Visual Studio Subscriptions Portal.

  • For non Microsoft employees you can sign up for a free Azure account here, If you've never used Azure, you will get:

    • $200 free credits for use for up to 30 days
    • 12 months of popular free services (includes storage, Linux VMs)
    • Then there are services that are free up to a certain quota

    Details can be found here on free services.

If you have used Azure before, we will still try to limit cost of services by suspending, shutting down services, or destroy services before end of the course. You will still be able to use the free services (up to their quotas) like App Service, or Functions.

GitHub Account (Optional)

With GitHub account you will be able to:

  • Easily track changes and navigate revisions of your course content, as well as contribute to the course content.
  • Participate in extra challenges that involve hands-on configuration of CI/CD.

If you don’t already have one, you can sign up for a free account here.

Installations

Getting familiar with the course content

In this course, you will gain hands-on experience by solving a series of challenges that enhance a complete ToDo application blueprint based on azure-samples/todo-csharp-cosmos-sql. This blueprint includes everything you need to build, deploy, and monitor an Azure solution. The initial application blueprint utilizes the following Azure resources:

The initial application blueprint utilizes the following Azure resources:

Here's a high level architecture diagram that illustrates these components. Notice that these are all contained withing a single resource group, that will be created for you when you create the resources.

visio

You will explore essential tools such as devcontainer, azd, and Bicep to author Infrastructure as Code (IaC) and Ev2 to deploy multiple environments for your solution.

Additionally, you will delve into real-world hero scenarios, covering essential topics such as security, serverless, and event-driven solutions. You will have hands-on experience by enhancing the solution with new Azure resources such as:

By doing so, you will be able to deploy a complete enhanced solution that is scalable, secure, and efficient and end up with an architecture diagram as below.

visio

To get started with the course, you will need to perform the following steps:

  1. Get the course content:
    1. If you have a GitHub account fork the techtrain-handson-azure-development repository to your GitHub account. Otherwise, you can skip this step.

      1. Navigate to the techtrain-handson-azure-development repository.
      2. Click Fork in the upper-right corner of the page.
      3. Select your GitHub account as the destination.
      4. Clone the forked repository to your local machine.
      GITHUB_USER=<yourGithubUser>
      
      git clone https://github.com/${GITHUB_USER}/techtrain-handson-azure-development
    2. If you don’t have a GitHub account and don’t wish to create one, clone the techtrain-handson-azure-development repository to your local machine

      git clone https://github.com/amih90/techtrain-handson-azure-development
  2. Open the repository in Visual Studio Code:
    cd techtrain-handson-azure-development
    
    # Open current directory in VS Code
    code .
  3. Open the file explorer or press Ctrl + Shift + E, and get familiar with the repository layout:
        .
        ├── .azdo                        # Azure DevOps Pipelines files
        ├── .azure                       # Stores Azure configurations and environment variables
        ├── .devcontainer                # Devcontainer files
        ├── .github                      # Configures a GitHub workflow
        ├── .vscode                      # VS Code workspace configurations
        ├── assets                       # Assets used in the documentation
        ├── bin                          # Contains ev2 artifcats after build
        ├── docs                         # Documentation supplements
        ├── ev2                          # Ev2 service artifacts
        │   ├── Configurations
        |   ├── Parameters
        |   ├── RolloutSpecs
        |   ├── ScopeBindins
        |   ├── ServiceModels
        |   └── ...
        ├── infra                        # Contains infrastructure as code files
        │   ├── app
        |   ├── core                     # Contains reusable Bicep modules
        |   ├── main.bicep               # Main infrastructure file
        |   ├── main.parameters.json     # Main infrastructure parameters file
        │   └── ...
        ├── src
        │   ├── api                      # Webapp API backend service
        |   ├── backend                  # Azure Functions backend service
        |   ├── web                      # Webapp frontend service
        ├── azure.yaml                   # Describes the app and type of Azure resources
        ├── openapi.yaml                 # OpenAPI specification for the application
        └── ...
    
  4. Open a new bash terminal by clicking and select Bash.
  5. In terminal, create a new branch where you can perform the tasks during the various workshops that will be held in the course.
    BRANCH_NAME=<yourAlias>
    
    # Switch to a new branch from the initial commit for the course
    git switch -c ${BRANCH_NAME} $(git rev-list HEAD | tail -2 | head -n 1)
    
    # Create your initial commit
    git commit --allow-empty -m "🚂 get on the train"

During the course, you will be asked to perform a number of workshops that build on each other. If you are confused, skip something, or want to see some samples and sources, you can check the git history of the main branch, where every commit has a workshop number as a prefix. Feel free to cherry-pick commits from the main branch to your branch if you need to, in order to keep up with the course.