Hey folks, I’ve been wanting to write this one for a while.
If you’ve attended a Microsoft workshop, a Check Point training, or a hands-on lab at a major tech conference in the last few years, there’s a decent chance you used CloudLabs without even knowing it. That lab environment that magically appeared when you clicked a link? That was us. And getting to this point was one hell of a ride.
I’m Amit, COO at Spektra Systems, and CloudLabs is probably the thing I’m most proud of building with our team. I wrote a technical deep dive on the architecture back in 2020 that covered the Azure services and ARM template details. This post is different. I want to talk about why we built it, the problems we ran into along the way, and what it looks like to run a platform that provisions thousands of lab environments every single month.
The Problem We Couldn’t Ignore
Back when we started, hands-on tech training was a mess. And I don’t say that lightly.
Picture this: you’re running a workshop for 200 people at a conference. Each person needs their own Azure environment with specific VMs, networking configs, pre-installed software. The traditional approach? On-prem Hyper-V servers in the back room, PowerShell scripts that took hours to run, and an IT team babysitting the whole thing. Capacity issues were constant. Attendees would end up sharing VMs. Scripts would fail halfway through, and someone had to scramble to fix them while the instructor kept talking.
I watched this happen too many times.
The training content was great, but the delivery infrastructure was holding everything back. Instructors spent more time troubleshooting environments than actually teaching. Attendees got frustrated waiting 45 minutes for their lab to spin up. And nobody was having a good time.
We knew cloud could fix this. The question was how.
Starting Small, Breaking Things
The first version of CloudLabs was honestly pretty rough. We had a basic orchestration layer that could kick off ARM template deployments in Azure, and a portal where users could register and get access to their environment. That was about it.
It worked for small workshops. 20 people, 30 people, no problem. But the moment we tried to scale, the cracks showed up fast.
ARM template deployments are powerful, but they have quirks at scale. Azure subscription limits hit you hard when you’re deploying 500 environments simultaneously. Resource provider throttling is real. Region capacity can be unpredictable. We’d hit quotas nobody warned us about, and suddenly half the attendees at a conference couldn’t get their labs.
Those early failures taught us more than anything else. We started building retry logic, subscription rotation, multi-region deployment strategies. We learned to pre-validate capacity before events. We built monitoring that could tell us exactly which deployment was stuck and why, not just "something failed."
What CloudLabs Actually Does Today
Let me give you the short version without repeating all the architecture stuff from my earlier post.
CloudLabs handles the full lifecycle of lab environments. A customer (say, Microsoft running an Azure training) defines what each lab should look like: which VMs, what software, what networking, what access level. They upload their ARM templates, scripts, and custom images. CloudLabs takes that definition and can spin up hundreds or thousands of identical environments on demand.
When an attendee registers, they get a dedicated environment within minutes. Not a shared one. Their own subscription, their own resources, their own credentials. They do the lab, and when they’re done (or when time expires), CloudLabs tears everything down cleanly.
The numbers as of this writing: we’ve provisioned over 400,000 lab instances across 5,000+ events for close to 30,000 trained attendees. And those numbers keep climbing every month.
The Hard Parts Nobody Talks About
Building the happy path is the easy part. Here’s what actually kept us up at night.
Subscription Management
Each lab environment deploys into an Azure subscription. When you’re running thousands of labs, you need a lot of subscriptions. Managing those, keeping track of which ones are in use, cleaning them up properly afterward, handling billing across all of them, making sure security policies are consistent… this is a full-time job by itself.
We built an entire subscription lifecycle management system inside CloudLabs. Subscriptions get allocated, locked down with custom Azure roles and policies, used for a lab, then cleaned and recycled. It sounds straightforward when I describe it in one sentence, but getting this right took us over a year of iteration.
Image Management at Scale
Many labs need custom VM images with pre-installed software. A Kubernetes workshop needs specific tools. A security training needs vulnerable-by-design applications. A data engineering lab needs Spark clusters configured just right.
We maintain hundreds of these images in Azure Shared Image Galleries, replicated across multiple regions. Keeping them updated, versioned, and deployable at scale is something we’ve automated with Azure DevOps pipelines, but it was painful before we figured out that workflow. I covered the technical details in my 2020 post if you’re curious.
The Conference Crunch
This is the scenario that stress-tests everything. Major tech conference. Keynote ends. Speaker says "go to this URL to try it yourself." 2,000 people hit your platform simultaneously.
You can’t afford a 10-minute spin-up time in that scenario. So we built pre-provisioning. Before the event, CloudLabs deploys all the environments ahead of time and keeps them warm. When users register, they get matched to a pre-built environment instantly. It sounds simple, but the logistics of pre-provisioning 2,000 environments (without knowing exactly how many people will show up), keeping them alive for just the right amount of time, and dealing with no-shows who waste resources… that took real engineering effort.
Cost Control
Running thousands of Azure environments is expensive. Really expensive. If a lab environment stays running after the attendee leaves, that’s money burning. If someone accidentally deploys a GPU VM instead of a standard one, that’s money burning faster.
We built automated cost guardrails: time-based auto-shutdown, resource quotas, spending limits per environment, alerts when something looks abnormal. One of our customers ran a multi-day training and forgot to set an end date. We caught it because our monitoring flagged the cost anomaly. Without that, it would’ve been a very expensive mistake.
Why It Matters
I’ll be honest, when we started CloudLabs, I thought we were building a deployment automation tool. Turns out we were building something bigger.
The feedback we get from instructors is what keeps me motivated. One trainer told me that CloudLabs gave her back 40 minutes of teaching time per session because she wasn’t troubleshooting environments anymore. A workshop organizer at a Microsoft event said their attendee satisfaction scores went up 30% after switching to CloudLabs, just because people could actually do the labs instead of fighting with setup.
That’s the part you don’t see in architecture diagrams. Every one of those 400,000+ lab instances represents someone who got to learn something new without infrastructure getting in their way.
What’s Next
We’re not done. Not even close. The platform keeps evolving as Azure adds new capabilities and as our customers come up with use cases we never imagined. We started with training workshops, but now people use CloudLabs for sales demos, POCs, hackathons, certification prep, partner enablement. Each of those has different requirements and different scale patterns.
I’ll save the details for future posts, but I can say we’re working on some things that I think will change how people experience hands-on learning. Stay tuned for those.
If you’ve used CloudLabs at an event or training, I’d genuinely love to hear about your experience. Drop a comment or reach out to me. And if you’re running training programs and tired of dealing with lab infrastructure headaches, you know where to find us at cloudlabs.ai.
Happy building, folks!
Amit
Assisted by AI during writing