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

Cloud Services (extended support) retires 2027-03-31. Microsoft ships no migration tool and grants no extensions.

This is the last stop for web and worker roles. The price per VM does not change; the shape of the bill does. And you can no longer spin up a fresh copy to rehearse on.

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.compute/cloudservices' | project name, resourceGroup, location, properties" --first 1000 -o json > cses.json
node check.js cses.json
node check.js --demo
$ node check.js --demo Azure Cloud Services (extended support) retires 2027-03-31 . 1 deployment(s) [DEMO DATA] DEPLOYMENT billing-prod (rg-billing) role WebRole1 2 x Standard_D2_v2 code must be re-hosted: "no one-click migration tooling available" role InvoiceWorker 1 x Standard_D2_v2 code must be re-hosted: "no one-click migration tooling available" △ 2 Key Vault certificate(s) wired through osProfile: re-plumb them for the new host. △ extension RDPExtension: has no Cloud Services-style equivalent on the new host; decide what replaces it. △ extension Microsoft.Insights.VMDiagnosticsSettings_WebRole1: has no Cloud Services-style equivalent on the new host; decide what replaces it. Service Fabric managed cluster Basic : min 3 nodes -> at least 3 VMs with every role on one node type (now 3) Service Fabric managed cluster Standard: min 5 nodes -> at least 5 VMs with every role on one node type (now 3), 1.7x the VM-hours FROM MICROSOFT · "there's no one-click migration tooling available. Each application must determine how its code runs on the VM/node and make custom adjustments" https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-cloud-services-migration-faq · "Unfortunately, we can't grant extension requests" https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-cloud-services-migration-faq · Managed cluster: Basic needs at least 3 nodes with no zone redundancy; Standard needs at least 5 https://learn.microsoft.com/en-us/azure/service-fabric/overview-managed-cluster · "Manually making changes to the resources in a managed cluster isn't supported." https://learn.microsoft.com/en-us/azure/service-fabric/overview-managed-cluster REPORTED ON MICROSOFT Q&A (not vendor-confirmed): new dev/stage deployments are already refused with "BadRequest: Cloud Services (extended support) will be retired on 31 March 2027", so you cannot rehearse on a fresh copy.

The part nobody checks

Because new Cloud Services deployments are refused, the usual rehearsal (clone production, migrate the clone) is gone. The replacement has to be proven on its own terms: the same requests answered, the same queues drained by the worker roles, the same certificates served, under production-like load, before DNS moves. Plan that verification before the code change, not after it.

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.