Death of the Dev Machine?
Here's a takeaway from this week's Ignite 2020 event: An advanced Azure cloud portends the death of the traditional, high-powered dev machine packed with computing, memory and storage components.
All you need is Azure, GitHub and a Visual Studio shell to provide a full development environment -- complete with CI/CD -- to let you code with a first-generation Surface Go, which was designed for students, mobile users and other lightweight use cases.
That's my take from watching one of the few development-oriented videos in this week's Microsoft Ignite 2020 online event, this one titled "Are we there yet? App Development in Azure with Scott Hanselman and Friends."
"With Visual Studio, GitHub, and Azure, your developer teams can code, collaborate, and ship from anywhere," said Hanselman, Microsoft's partner program manager. "We call this our developer cloud, and with it, developers can code from anywhere. That means cloud-aware development tools, cloud-powered development environments, that make any device a development machine -- allows you to work flexibly from anywhere."
One of those aforementioned friends was Abel Wang, a principal cloud advocate, DevOps lead at Microsoft, who demonstrated how he can use GitHub Codespaces -- for cloud-powered dev environments -- to provide the heavy lifting normally associated with dev machines. That means he can quickly spin up a Visual Studio shell (without the workloads) and get started with the full development lifecycle, including debugging.
"All I need to do now is just connect up to my Codespace for this project," Wang said. "Once I log in with my GitHub account, I can see all my Codespaces, or I can create a brand new one. But since I already created one, I'll just go ahead and connect to it. Now, once I connect up to my Codespace, my experience, it is exactly the same as if I open this project up locally.
"Now I can write code, I can build, I can debug as fast as if I was using a real dev machine."
Codespaces, formerly called Visual Studio Online, before being called Visual Studio Codespaces, before being merged into GitHub Codespaces (it's complicated) now works -- in a beta -- thanks to a new Visual Studio 2019 v16.8 update. It previously worked with an online browser editor or the Visual Studio Code editor.
As mentioned, Wang's demo was conducted on a first-generation Surface Go. He didn't detail his exact configuration, but that device, introduced in 2018, comes with specs like:
- 4 GB or 8 GB of memory
- 10-inch display (1800 x 1200 -- 2.1M pixels)
- 7th Gen Intel Pentium Gold Processor 4415Y -- 2 cores, 4 threads, 1.60 GHz, 2MB SmartCache, 6W
- Storage options including: 64GB eMMC, 128GB or 256GB SSD
- Integrated Intel HD Graphics 615
Wikipedia illustrates those options also:
Let's contrast that with a modern, optimal dev machine, as presented by eComputerTips.com:
- Storage: 8TB
- RAM: 64 GB
- Processor: Intel Xeon E3-1225 v5 Quad-Core
Prices for such Dell PowerEdge T30 Tower Servers seem to range up to slightly more than $2,000, though I didn't spend a lot of time to price out the exact configuration. You get the idea.
Two years ago, Hanselman's own setup featured components such as:
- Intel Core i9-7900X 10-Core 3.3 Ghz Desktop Processor
- 288-pin DDR4 3200Mhz (PC4 25600) Memory 4 x 8G
- WD Black 512GB Performance SSD - M.2 2280 PCIe NVMe Solid State Drive
- ASUS ROG GeForce GTX 1080 Ti 11 gig Video Card
- Three Dell Ultra HD 4k Monitors P2715Q 27"
He builds up his machine modularly, it seems, but he indicated a total cost range of $3,500 to $4,000 (hmm, I wonder: how does one becomes a partner program manager at Microsoft?).
And remember, that was slightly more than two years ago.
The 1.15 lb. Surface Go starts at $399 and does not include a Type Cover or Surface Pen, which must be purchased separately, Wikipedia said.
There's quite a visual contrast, too:
"There you go, dude, from nothing to debugging in less than seven minutes," Wang said near the end of his demo. "All done on a first-gen Surface Go."
"That's pretty awesome," Hanselman replied. "Using just a regular Surface Go first-gen you said, you install Visual Studio from nothing. You didn't have the machine setup like a raw machine, and then you started not just installing, bringing the code down because you didn't do it in Codespaces, started debugging with projects, a project in minutes."
Here's how Wang described what's going on architectually, under the hood:
Visual Studio is super powerful and can do all kinds of things. But really it consists of two parts. You've got Visual Studio the UI with all the windows, the menus, and the editors, and you also have the muscle behind Visual Studio, like the language services, the compilers, the runtimes, and the extensions. That's what powers things like syntax highlighting, IntelliSense, and Live Share. But with Codespaces, you can now split these two things apart.
Locally, I just have my Visual Studio shell. That's what I installed on my Surface Go. It's small, it's light, it's super fast, and all of the Visual Studio muscle, that's not going to be running locally. That's going to be running in my own personal dev environment hosted up in GitHub Codespaces.
My Codespace, it's a dedicated resource,completely isolated from my other projects and each Codespace, it's fully customizable. Out of the box, Codespaces, it comes with a standard set of software installed, so most projects just work. But if you need to install other things you can. Like your Orchard project, that's using bleeding-edge tech, like the .NET 5 release candidate bits. I've added a file into my repo that literally tells Codespaces to go ahead and install this release candidate along with all the other libraries that we're using.
Now, when I type FOO., and IntelliSense pops up with my choices, or when I'm typing and my Roslyn Analyzers kick in, or when I'm debugging a whole bunch of threads or even compiling your massive Orchard solution with its some projects, all that heavy lifting is done up in the cloud.
Literally this first-gen Surface Go, there's nothing devy about it. But by using Visual Studio and GitHub Codespaces, it now performs like I'm using a fully decked out Surface Book. So bam, how cool is that, Scott? But seriously, like Codespaces, freaking awesome.You get your own customized dev environments the way you want it, the way you need it, and you get super fast onboarding for your projects. Instead of spending days setting up your machine, now you can go from nothing to debugging in minutes.
Finally, by offloading the heavy lifting to the cloud, any machine can now be your high-powered dev machine.
So there you have it: You can now save yourself $3K - $4K and just go buy a mobile device to code on.
But why bother? You'll just be replaced by AI soon anyway.
Probably in the Azure cloud.
For more coverage of Microsoft Ignite 2020 from Visual Studio Magazine and sister sites, see:
David Ramel is an editor and writer for Converge360.