DEV Community

Cover image for Why I Switched from WSL to Ubuntu for DevOps: A Personal Journey
David Oyewole
David Oyewole

Posted on

Why I Switched from WSL to Ubuntu for DevOps: A Personal Journey

πŸ‘‹ Introduction

For a long time, I ran my development and DevOps tooling inside Windows Subsystem for Linux (WSL). It felt like the best of both worlds: I could run Linux commands and tools while still using my Windows desktop apps. I even configured Docker, Minikube, Microk8s and a bunch of other tools to work inside WSL. But as my DevOps workflow grew more complex especially around Kubernetes, CI/CD, and observability I kept running into annoying limitations.

So I made a decision: I wiped the whole windows OS and WSL then installed Ubuntu as my main OS. The result? Everything just works better. Faster. Cleaner. More reliable.

This post walks you through why I switched, what changed, and why I’m never looking back.


🧠 WSL vs Native Ubuntu: A DevOps-Focused Comparison

Let’s get straight to the core differences I noticed after making the switch:

Feature Ubuntu (Native) WSL (Windows)
Networking Full, native networking Isolated VM networking
Systemd Support βœ… Full systemctl and timers ❌ WSL1 lacks it, WSL2 partial
Docker Support Native Docker daemon Needs Docker Desktop
Kubernetes Runs smoothly (MicroK8s/Minikube) Requires tunneling & workarounds
GUI Apps GNOME, Postman, VS Code, etc. WSLg is decent, but glitchy
File Access Native ext4 filesystem Slower across /mnt/c/
Hardware Support Direct access to USB, GPU, etc. Limited or indirect

WSL is amazing for lightweight scripting and simple setups. But when you need production-grade workflows or want to simulate real infrastructure, it becomes a struggle.


πŸš€ The Moment That Blew My Mind

I deployed a sample app on Kubernetes with a NodePort service, and without doing any port forwarding, I opened my browser and hit http://localhost:30000. It worked.

Coming from WSL, where I had to constantly run:

kubectl port-forward svc/my-service 8080:80
Enter fullscreen mode Exit fullscreen mode

to get anything into the browser, this felt like pure magic. No hacks. No tunnels. No separate IP guessing.

That was the first moment I realized just how much friction I had been tolerating under WSL.


πŸ› οΈ What I Love About Ubuntu as a DevOps Engineer

Since making the switch, here’s how my workflow has improved:

βœ… Full Docker & Kubernetes Support

I now run MicroK8s natively with all the bells and whistles: Helm, Prometheus, Grafana, Ingress, and more. No need for Docker Desktop or weird socket tricks everything is integrated and lightweight.

βœ… systemd for Automation

I use systemd to run background agents like Jenkins, Prometheus Node Exporter, and even test CI runners. I can enable them with:

sudo systemctl enable my-service
Enter fullscreen mode Exit fullscreen mode

Something I always missed in WSL.

βœ… Real Networking

I use nmap, tcpdump, iptables, and even set up firewall rules with ufw. These tools either don't work or require complex setup in WSL.

βœ… Better Resource Utilization

I can control my containers using real cgroups, assign memory limits, and monitor system metrics accurately no Docker Desktop abstractions.

βœ… Native File I/O Performance

Building containers and running tools like Ansible or Terraform is significantly faster. No slow-downs when writing files.

βœ… GUI Just Works

I’ve installed Postman, DBeaver, VS Code, and everything runs like native apps because they are. WSLg is improving, but it still feels a bit clunky.


πŸ§ͺ Real-World Use Case

I recently built a full-stack app with Flask, React, PostgreSQL, and NGINX all containerized and deployed on MicroK8s. In Ubuntu:

  • I deployed with Helm
  • Monitored with Prometheus + Grafana
  • Logged with the ELK stack
  • Used VS Code + Terminal in split screen
  • Browsed the app without needing a single port-forward

This would have been possible in WSL but not without hours of config, tunneling, and frustration.


πŸ€” Should You Switch?

If you:

  • Work heavily with Docker or Kubernetes
  • Build or test cloud-native apps
  • Want to use tools like Ansible, Terraform, Helm
  • Need fast builds, native services, or background agents

Then yes, switching to Ubuntu is absolutely worth it.

But if you're doing light scripting, occasional CLI work, or you rely heavily on Windows apps, WSL might still be the better fit for you.


🧡 Final Thoughts

WSL was a great bridge between worlds, but for serious DevOps engineering, native Ubuntu is where the real power lies. I’ve spent less time fighting the environment and more time shipping features, building infrastructure, and learning tools that behave exactly how they do in production.

If you've been feeling the same friction I was, consider making the leap.

Let me know your experience have you switched? Still thinking about it? Let's chat in the comments! πŸš€


Follow me for more DevOps tips, real-world experiences, and Kubernetes content.

Top comments (0)