Abe Voelker Programming stuff, mainly

On the death of my family's dairy farm

46 minute read

On the death of my family's dairy farm

Mar 6th, 2019

This Christmas, like every other, I traveled to northern Wisconsin to stay with my parents on the dairy farm I grew up on.

As usual I took the opportunity to help my dad and younger brother with barn chores and milk cows. The cows need to be milked twice a day, every day, roughly around 4AM and 4PM. I didn’t help out every shift but I worked more than enough to once again be humbled about the life I left behind and recalibrate my nostalgia.

Early morning walk to the barn

Speaking of which, I never had the work ethic to be a farmer. Ever since I was little and playing video games on our NES, I was enamored by electronics. By the time our family got a personal computer and dial-up internet for Christmas in 1997,1 when I was 11, I was completely and hopelessly sucked in. There followed many evenings where my dad would come flying in to the house to yell at me for being late for chores when I lost track of time on “that damn computer.”2 😅

Thankfully for all involved, my younger brother Noah inherited my dad’s insane work ethic and love of farming and took up the farm’s reins (he also picked up my slack when we were younger - thanks Brother). He loves the work and excels at it.

Sunset harvest on the farm

Barn panorama

I instead went to college and became a computer programmer, and haven’t lived in my hometown since.

I also have two older brothers; neither of them got the farming gene either. My eldest brother Jerry3 lives near Madison and also works in the software field. My second-eldest brother John lives near my folks and helps out quite often, but he also does other work and has other obligations, so most of the daily farming work falls on my youngest brother Noah and my dad, who is now into his seventies.

Sadly this year I found out that it will have been my final Christmas coming home and milking cows, because they’ll be selling off the cows over the coming spring and fall.

My dad and brother Noah getting ready to milk
  1. The computer was a Gateway 2000 with a Pentium II 233MHz CPU and 32MB RAM. My parents splurged on a gaming add-on that added a Microsoft SideWinder joystick and a few games (including Interstate ‘76, which may even be what pulled me toward computer programming, which introduced me to hex editing vehicle definition files in order to “hack” the game).

    I have to give props to my parents for going out of their way to make Christmas special every year. I’d share a sentimental pic but most of our home pictures and videos were destroyed in a house fire when I was in college. 

  2. I got good at spotting my dad walking the path between the barn and our house, and waiting until he was just kicking open the back door before I’d sprint out the front door. 😗 

  3. Not to leave brother Jerry out of the pics, 🤭 here he is with his nieces and nephews

     

Read more

Lessons learned from launching my first screencast series / training course, Kubernetes on Rails

29 minute read

Kubernetes on Rails website preview

Last month I recorded my first ever screencast series, Kubernetes on Rails. It’s a course that teaches Kubernetes by showing step-by-step how to deploy a sample Ruby on Rails application to Google Cloud’s Kubernetes Engine (GKE) (note: although “Rails” is in the title, there’s very little Rails-specific bits in the course1). In addition, since Google Cloud (GCP) is still a bit more exotic than AWS, I end up teaching some GCP basics as well so it’s not only about Kubernetes.

It’s now been two weeks since I launched it so I thought I’d share some notes on what I did and what I’ve learned from my experience so far.

  1. Maybe I should’ve titled the course differently to reflect this. But naming and marketing a thing like “Kubernetes for Web devs” seemed a bit too broad… also the course teaches Kubernetes without really even needing to focus on the Web app bits. So that wouldn’t even necessarily be more accurate. Oh well, whatever, naming is hard. 

Read more

Deploying a Ruby on Rails application to Google Kubernetes Engine: a step-by-step guide - Part 5: Conclusion, further topics and Rails extras

8 minute read

Update: I’ve now created a premium training course, Kubernetes on Rails, which takes some inspiration from this blog post series but updated with the latest changes in Kubernetes and Google Cloud and greatly simplified coursework based on feedback I got from these blog posts. All packaged up in an easy-to-follow screencast format. Please check it out! ☺️ - Abe

Neon Genesis-style congratulations

Welcome to the last post of this five-part series on deploying a Rails application to Google Kubernetes Engine. If you’ve arrived here out-of-order, you can visit the previous parts:
Part 1: Introduction and creating cloud resources
Part 2: Up and running with Kubernetes
Part 3: Cache static assets using Cloud CDN
Part 4: Enable HTTPS using Let’s Encrypt and cert-manager

Congratulations, we’ve finished deploying the application!

Conclusion

Docker was revolutionary, but it mainly gave us low-level primitives without a way to assemble them for production-ready application deployments. I hope through this tutorial I’ve shown that Kubernetes meets that need by providing the abstractions that let us express application deployments in logical terms, and that GKE is an excellent managed Kubernetes solution.

I’ll close with a great thought by Kelsey Hightower, in that Kubernetes isn’t the final word in a story that doesn’t end:

Thank you

HUGE thanks to my reviewers, Daniel Brice (@fried_brice) and Sunny R. Juneja (@sunnyrjuneja) for reviewing very rough drafts of this series of blog post and providing feedback. 😍 They stepped on a lot of rakes so that you didn’t have to - please give them a follow! 😀

Any mistakes in these posts remain of course solely my own.

Read more

Deploying a Ruby on Rails application to Google Kubernetes Engine: a step-by-step guide - Part 4: Enable HTTPS using Let's Encrypt and cert-manager

10 minute read

Update: I’ve now created a premium training course, Kubernetes on Rails, which takes some inspiration from this blog post series but updated with the latest changes in Kubernetes and Google Cloud and greatly simplified coursework based on feedback I got from these blog posts. All packaged up in an easy-to-follow screencast format. Please check it out! ☺️ - Abe

Let's Encrypt logo

Welcome to part four of this five-part series on deploying a Rails application to Google Kubernetes Engine. If you’ve arrived here out-of-order, you can jump to a different part:
Part 1: Introduction and creating cloud resources
Part 2: Up and running with Kubernetes
Part 3: Cache static assets using Cloud CDN
Part 5: Conclusion, further topics and Rails extras

Unfortunately TLS/SSL certificates is one area that GCP/GKE is at a major deficit compared to AWS, the latter of which has the AWS Certificate Manager (ACM) which can easily provision SSL/TLS certificates, attach them directly to load balancers (or CloudFront - their CDN), and automatically renew them. I’ve said many times on Twitter that this is the primary feature that I really miss migrating from AWS:

And I’m not the only one:

Read more