← deemwar engineering examples Runnable · Node · zero deps · free · offline

Azure Lab Services retires 2027-06-28. The hour quotas, the Teams roster and the pay-per-hour price do not come with you.

Lab Services was built for classes: pay for the hours students use, cap each student's hours, sync the roster from Teams or the LMS. The alternatives are built for employees. This page is about that gap, and it is written for the small training provider as much as the university.

The dates

What is not carried over

Two source classes, never blurred: the vendor's own docs are authoritative; community reports are real, dated and linked, but not vendor-confirmed, and they are labelled that way.

From the vendor's published docs

The price trap

Reported by users, not confirmed by the vendor

Check your own setup

Zero dependencies and offline: it reads a Resource Graph export you produce. It never asks for, stores or transmits a credential: you run it with your own login, and nothing leaves your machine.

az graph query -q "resources | where type =~ 'microsoft.labservices/labs' | project name, resourceGroup, location, properties" --first 1000 -o json > labs.json
node check.js labs.json
node check.js --demo
$ node check.js --demo Azure Lab Services retires 2027-06-28 ; after that "you won't have access to your lab accounts, lab plans, or labs". 2 lab(s) [DEMO DATA] LAB net-fundamentals-autumn: 24 seats, Classic_Fsv2_2_4GB_128_S_SSD, quota 10 h per learner ✗ per-learner hour quota: no equivalent named in the retirement guide (reported on Microsoft Q&A: DevTest Labs lacks a per-learner hours limit) ✗ Entra/Teams group roster: "other solutions don't offer Teams integration" △ image: "Azure Lab Services only exports specialized images"; AVD needs multi-session Marketplace images Windows 365 at $41/user/month flat = $984/month for these seats, i.e. $4.10 per quota hour per learner LAB cyber-lab-evening: 12 seats, Classic_Dsv4_4_16GB_128_P_SSD, quota 20 h per learner ✗ per-learner hour quota: no equivalent named in the retirement guide (reported on Microsoft Q&A: DevTest Labs lacks a per-learner hours limit) ✗ LMS roster sync (https://canvas.example.edu): rebuild enrolment in the new platform △ image: "Azure Lab Services only exports specialized images"; AVD needs multi-session Marketplace images Windows 365 at $41/user/month flat = $492/month for these seats, i.e. $2.05 per quota hour per learner FOR EVERY LAB ✗ "your Azure subscription core limits can't be transferred" to the replacement ✗ Microsoft ships no lab migration tool: "Partners might provide migration tooling" △ storage was complimentary; "Dedicated virtual machines with persistent storage might not be as cost efficient with other lab solutions" Sources: https://learn.microsoft.com/en-us/azure/lab-services/retirement-guide · Windows 365 Enterprise pricing https://www.microsoft.com/en-us/windows-365/enterprise/compare-plans-pricing

The part nobody checks

A lab migration is judged on the first morning of term, not the day the new platform is created. Before cutover, a real learner account has to sign in, get the right image, hit its hour limit, and be stopped. The roster has to be right before class, not after the first complaint. Rehearse one full class week on the new platform with real accounts.

If you would rather not do it yourself

We take this on as fixed scope, and we will say plainly that you would be among our first customers for this particular engagement. What we bring is the breakage map above and a hard habit of proving the new setup works rather than assuming it.