Lately I’ve been on a mission to separate my development environments by project, and by category (personal/work/Gophercon/etc). The writeup on the Gopheracademy blog describes a fun way to create an isolated container-based environment for each project by using LXD on Ubuntu. Last night I wondered to myself if there was a way to get a similar experience by manipulating Windows Subsystem for Linux somehow. That was a rabbit hole of searching, let me tell ya true.
I want to document a setup that I’ve found that works really well for me using Windows 10 and Windows Subsystem for Linux for general development. Before we dive into any specifics, though, I want to provide some background and explain my objectives which will help to frame the decisions I’ve made and the trade-offs chosen to reach a more ideal environment. Objective My objective is to build a development environment that is comfortable for Open Source development with a target of mostly Linux servers.
I’ve recently taken on a new role at Microsoft as a Cloud Developer Advocate for Open Source projects on Azure. My purview is Go, Linux, Containers, and Kubernetes. While brainstorming ways to learn about all that Azure has to offer an idea occured to me: Why not move Gophercon over to Azure as a learning tool. I’ve decided to do just that and share my learnings along the way. This year we used Buffalo and Ponzu as the main components of the website for Gophercon.
Not like the brazen giant of Greek fame, With conquering limbs astride from land to land; Here at our sea-washed, sunset gates shall stand A mighty woman with a torch, whose flame Is the imprisoned lightning, and her name Mother of Exiles. From her beacon-hand Glows world-wide welcome; her mild eyes command The air-bridged harbor that twin cities frame. “Keep, ancient lands, your storied pomp!” cries she With silent lips.
TLDR; I’ve traded in my Mac on a Surface Pro. Here’s why: