A series of Azure labs from my degree, moving past theory into actually provisioning, securing, and troubleshooting cloud infrastructure end to end.
Most of my cloud exposure before this was reading documentation and watching deploys happen on managed platforms like Railway and Vercel. These labs went the other direction — provisioning raw virtual machines, configuring their networking by hand, and watching things fail (and figuring out why) before they worked.
Each lab built on the last: starting with a single VM serving a static page, and ending with a load balancer distributing traffic across multiple VM instances.
Provisioned a Windows Server VM, installed IIS, and hosted a static site — then opened it to the internet by configuring inbound firewall and network security group rules.
Diagnosed a blocked ping between two VMs on the same virtual network down to Windows Firewall defaults, then fixed it with an explicit ICMP inbound rule.
Attached and partitioned a new data disk on a running VM, then configured SMB file sharing with granular read/write permissions between two machines.
Set up a NAT gateway, virtual network, and public load balancer routing traffic across two VMs in different availability zones — confirmed by watching requests alternate between backend instances.
The final lab tied everything together: a load balancer in front of two VMs in separate availability zones, each running IIS, with traffic distributed via a health-probed backend pool.
Configuring NSGs and load balancers by hand made it obvious what platforms like Railway and Vercel are actually doing under the hood — and gave me a much better instinct for debugging infrastructure issues when something in a managed deploy still goes wrong.