Traefik is great. It’s easy to setup and has sensible default settings that allow you to get up and running really fast. With just a couple of steps, you can deploy it as your Kubernetes Ingress controller, and it will automatically create and manage Let’s Encrypt certificates right out of the box.
There is one downside to the Let’s Encrypt functionality in Traefik: The community version only supports storing certificates to disk.
Sometimes the easiest way to test or debug a service is to have it running on your local machine. Oftentimes however, your service may be handling requests from an external system that you cannot run locally. Since your local machine is not usually accessible from the public internet, the easies thing to do is route requests from some public facing server to your local machine.
In the past I have done this using ngrok.
Meetings become necessary as soon as you have more than one person working on the same thing. And while none of us are ever perfectly efficient, time wasted in meetings is multiplied by the number of attendees. Ten minutes lost in a meeting of six people adds up to an hour of total wasted time.
For this reason, I believe we should be extra careful with how we spend time in meetings.
I had a couple of weeks off recently where I was staying at home for most of that time. I intended to relax and have fun, but there were also a few side projects I wanted to make sure I worked on. I thought: “I should keep myself reminded of how many days left I have before going back to work.”, the hope being that the frequent reminder keeps me motivated to get my stuff done.
Summary C++ Primer: book Head First Design Patterns: book Designing Data-Intensive Applications: book Data Structures and Algorithms: book Cracking the Coding Interview: book C++ Primer The last time I used C++ seriously was in 2009. I know that the language has evolved and changed quite a bit since then, so I’m not sure how relevant this book has remained. However, this book gave me both a deep understanding of the language as well as a great overview of OOP priniciples.
Just a friendly reminder: Keep backups of all your important files. Hard disks can fail any time.
My personal recommendations on this topic:
Use Google, OneDrive, Dropbox or equivalent for your day-to-day files Restic is a great tool for backing data up Use a service like Backblaze to backup online
This is the second article in a series I plan to write about my experience learning and using Kubernetes. In the previous post I talked about why I wanted to use Kubernetes. In this post I will go over the main concepts of Kubernetes.
Summary If you don’t have time to read the entire article, here are the most important things to know.
Key Components of Kubernetes:
Node: A machine (or VPS) in your cluster Pod: One or more containers that run together ReplicaSet: Manages multiple pods and controls concurrency/redundancy Deployment: Manages deploying new versions of pod by spinning ReplicaSets up and down Service: Routes communication between pods Ingress: Routes requests from the outside world into your cluster Secret: Manages secrets that are deployed to pods Important concepts:
In this post I explain how I converted three sites from PHP/MySQL into statically served sites. Each of these sites was converted using a different approach.
Intro I recently got interested in statically generated sites after hearing about Hugo. I started with moving this blog over from WordPress. Once I got that done and felt more comfortable with the idea, I decided two more of my sites would also be better run statically.
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).
When I started playing with Kubernetes a few months ago, there was one question that didn’t seem to have a clear answer: Where do I store the images that will be running in Kubernetes?
Most of the documentation and examples are for deploying ready-made services like nginx or MariaDB. The services tend to be open source with images publicly available on Docker Hub. But sooner or later you’re going to want to build a custom image and deploy it.