Skip to content

Overview

This chapter describes how to connect your Schoolyear Exams to internal services like License Servers that students may require during the exam. If you wanted to do an exam that required an application with a License Server and you didn’t know how, this guide is for you.

The general solution is that you will provide a working Azure Private Link Service and then the deployment template will create an Azure Private Endpoint inside the services subnet that will allow sessionhosts to connect to it and pass traffic to said service. The deployment template will also create a Private DNS Zone with a specific subdomain to simplify using the Private Endpoint inside the exam. All of this can be configured in the Image Building step.

If you already have a working Azure Private Link Service you can skip ahead to setting up the Private Endpoint connection.

The rest of this guide will assume you already have a Virtual Network and at least one VM running with your internal service installed in a subscription of your Tenant. Setting this up is dependant on your infrastructure and not a part of this guide. We will only go through the steps necessary to expose that service for the Private Endpoint to connect to it.

Your internal service Virtual Network can be in an entirely different region and subscription from the one that Schoolyear Exams will be taking place in. Using Private Endpoints allows us to not have to worry about this.

Overview of the process

Exposing your Service (License Server) from Azure:

  1. Create a Virtual Network in your tenant if you haven’t already where your License Server will live. (Out of scope for this guide)
  2. Create a Virtual Machine in that VNet. (Out of scope for this guide)
  3. Install the License Server on that VM. (Out of scope for this guide)
  4. Create a Load Balancer and connect that VM to it.
  5. Create a Private Link Service that connects to your Load Balancer and exposes your service.

Configuring Schoolyear Exams to use that Service:

  1. Update avdcli to latest version.
  2. Update deployment template to latest version.
  3. Create new layer for new image.
  4. Specify the internalServices in our properties.json5 file.
  5. Configure application build steps to use the License Server.
  6. Deploy package and resolve variables specified in internalServices.
  7. Deploy a new exam with your application.

Architecture Overview