Hanselman's TechDays UK keynote, given remotely late at night his time, skips slides and tours Azure from the bottom of the stack up using his own paid account. His recurring claim is that nothing in Azure is a black box: storage, VMs, web apps and their logs can all be reached from the portal, the command line and Visual Studio. He ends on Docker, then in preview, as a lighter way to ship a small app than a whole VM.
Storage first. He works from one simplified stack diagram. Storage is the foundation: blobs such as his Hanselminutes images sit at public URLs, and VM disks are VHDs in the same accounts. A VHD made locally in Disk Management can be uploaded and attached, so the first step of a migration is lift and shift. After that he suggests rethinking the design, for example putting user uploads through a queue into storage.
Right-sizing VMs and finding IOPS. His Sendy newsletter runs on a shared quarter-core Linux VM reached over SSH. Its MySQL database is on a separate tiny Windows VM reached over RDP, because he wanted to experiment. The database was slow because everything sat on C:, which at the basic tier gets 300 IOPS per disk. Adding a 5 GB data disk with caching off doubled his IOPS at no meaningful cost. Bigger tiers allow more data disks, and the temporary D: drive adds more IOPS but is not persistent.
The new portal. He admits he disliked it at first. Since then he pressed the team for keyboard shortcuts (Shift+? lists them, J/K scroll, H goes home, A switches between active blades, # closes one). He also pins and edits metric charts.
Command line and templates. The Node.js CLI is open source, installs with npm, and runs on Mac and Linux. It calls the same resource-management backend as the portal. He shows a VM Depot Minecraft deployment script, then his own method from his blog: prep an Ubuntu server, run waagent -deprovision, which he calls Linux's sysprep, capture the VM, and create a web farm from the template.
Web apps. He creates a site from the CLI, deploys by git push, and switches back past a deliberate mistake. He argues you still want to think about the machine underneath, and the portal lets you: a console, process details, handles and module versions, where he hits a display bug live. Going off script, he publishes an ASP.NET MVC app with trace logging from Visual Studio. He then streams its logs in the CLI, portal and Visual Studio. Web jobs run as sidecars, and his pulls his blood sugar readings.
Containers. He questions whether a 10 MB PHP app needs a 5 GB VHD. Using the Visual Studio Docker tools preview, he publishes an ASP.NET 5 app into a Docker container on a Linux VM. He added Docker to that VM as an extension.