Nabeel Sulieman

Kubernetes (Part 1)


I've been using Docker for a couple of years now, but only for running local development environments. That on its own is a great way to use it. With a simple "docker run" or "docker-compose up" you can have a project running locally without installing any prerequisites on your machine. It's amazing how quickly technology advances. A few years ago, I wouldn't have believed that you could run a WordPress site locally without installing nginx, php and mariadb (or Xampp). Today you can spin up a WordPress site (and much more) with a single Docker command.

Until recently, I've been running and deploying my sites manually. I would spin up a blank VPS and setup it up to run my sites. This included setting up the firewall and installing everything from NodeJS to nginx and letsencrypt. This is not an ideal setup. Besides the fact that I was manually configuring each application, this approach also has some serious security risks: A successful hack into one system could easily compromise everything running on that VPS.

I've been wanting to use containers in production for a while now, and thanks to Kubernetes and its consistent adoption across the industry, this has become very feasible. I was finally convinced that it was time to jump on that train when Digital Ocean started offering Kubernetes as a service. With the rise of Kubernetes, managing your own cloud and distributed systems is finally something any developer can leverage, even for small personal sites and on a tiny budget.

That's all I'm going to write in this particular post, but I intend to write a lot more about my Kubernetes journey. My hope is that shorter articles will be easier to read and allow me to post more frequently.

In future posts I intend to cover the basics of Kubernetes and how I migrated from my manual setup to a Kubernetes cluster. So stay tuned...