Kubernetes on Rails

A premium training course to get you up-to-speed on deploying web applications using Kubernetes

Episode listing

Episode #1 image preview

Intro

We'll clone the starter files repo in preparation for working through the course. We'll take a peek under the covers at and locally spin up Captioned Image Uploader, the example Rails application that we'll be deploying to Kubernetes throughout the rest of the course.

#1 08:20
Episode #2 image preview

Introduction to Google Cloud

We'll register for a Google Cloud account, create a project, and prep for our application deployment by creating our database, our GKE cluster, building and pushing our Docker image, and so on using both the GCP Web console as well as the gcloud CLI.

#2 25:40
Episode #3 image preview

Introduction to Kubernetes concepts

A guided talk through the fundamental Kubernetes resources that we'll use to build our deployment. We'll learn about Pods, Deployments, Jobs, CronJobs, Services, and Ingresses, and sketch a diagram of how they'll all fit together to run our app.

#3 21:24
Episode #4 image preview

Deploying our code

We'll get kubectl installed and connected to our GKE cluster, start using it to manipulate our cluster, write manifests for the Kubernetes resources we'll need (Job, Deployment, Secrets, Service), and finally create them to get our application up and running! 🤩

#4 34:39
Episode #5 image preview

Fixing image upload using Google Cloud Storage

It's alive! 😍 But it's got a problem. 😭 We'll fix an issue with image uploads by setting up Google Cloud Storage. Along the way we'll learn how to use IAM Service Accounts and how to pop a remote Rails console.

#5 14:45
Episode #6 image preview

Ingress, domain name, and HTTPS!

So far we've been accessing our application directly over an internal Service. We'll replace this with a more scalable solution by creating our first Ingress, giving it a domain name, and getting a TLS certificate through Let's Encrypt to enable HTTPS.

#6 30:47
Episode #7 image preview

Boosting static asset performance using Cloud CDN

Up until now we've been serving our static assets directly from our Rails server (boo, slow!). We'll replace this with Cloud CDN (hooray, fast!). To accomplish this we'll meet a new Kubernetes resource, BackendConfig, and learn how to wire it up through a new Service port and our Ingress.

#7 23:00
Episode #B1 image preview

Provisioning cloud resources with Terraform

While building our application, we provisioned GCP resources using the web console and the gcloud CLI. We'll investigate using Terraform to replace our manual work with declarative templates which will make our deploys repeatable, versionable, and all the other benefits of moving infrastructure management to code.

#B1 01:33:19
Episode #B2 image preview

Charting our app with Helm

We get sick of running `kubectl apply` over and over and decide to use Helm, Kubernetes's package manager, to template and package up our app into a reusable chart for simplified app deployment.

#B2 01:04:42
Buy - join 72 others in learning now!

Testimonials

What you will learn

Kubernetes (obviously!)

This is a hands-on course in which we'll deploy a real Rails application (with database, cloud resources and everything!) - Captioned Image Uploader - to a Google Kubernetes Engine (GKE) cluster.

You'll become comfortable with Kubernetes' core abstractions, write Kubernetes manifests, use kubectl to create, manage and inspect resources, run one-off jobs such as database migrations, attach to running containers to troubleshoot issues, inspect log files, use annotations to enhance our application with HTTPS and CDN support, and much more!

Google Cloud (GCP)

We'll use Google Kubernetes Engine (GKE) as the hosted Kubernetes service to deploy our application to. While there, we'll explore GCP's other excellent components such as the GCLB load balancer, Cloud CDN, Cloud Storage, Container Registry, Cloud Build, and more.

With this experience you'll become comfortable with navigating and provisioning resources both with the GCP web console as well as the gcloud suite of CLI commands.

What you won't learn

Kubernetes cluster administration minutiae

This is a guided tutorial on deploying a real application to Kubernetes using Google's best-in-class managed Kubernetes Engine. To that end we punt to Google for the low-level cluster administration headaches. If you want resources on Kubernetes cluster administration check out some of Kelsey Hightower's content.

Buy - name a price

Frequently Asked Questions

Do I have to know Ruby or Rails for this?

Not at all! There are a few simple edits to the Rails application code done in the videos, but they can be copied without understanding Rails. And there is a Dockerfile and docker-compose.yml provided so you don't even need Ruby installed on your system to follow along with the lessons completely.

Kubernetes on Rails? Shouldn't it be Rails on Kubernetes?

It's a pun on Ruby on Rails. The course is "on rails" because you're guided in a step-by-step manner. Also I want that "kubernetes rails" Google juice.

What format are the videos? How do I watch them?

After entering your payment information, you'll immediately be logged in to a members-only area where you can stream all the videos or download them for personal offline viewing.

How long do I get access for?

There is no time limit, and no monthly or yearly fee to maintain access. Log in whenever you like and the course will be there for you.

Do you offer team licenses?

Yes! Email me for more info. If you buy five or more licenses you qualify for a discount.

Do you offer a discount for students or people in special circumstances?

Sure, just email me and we'll figure something out.

What if I don't like the course?

I want you to get real value out of this, so if you buy the course and are unhappy, please email me from the address you registered with and I will refund you.

Acknowledgements

Thanks to Sunny R. Juneja (@sunnyrjuneja) and Daniel Brice (@fried_brice) for reviewing the series of blog posts the screencasts are based on.

Thanks to Cortland Walker (@CortlandWalker) for suggesting the name Kubernetes on Rails.

© 2018-2019 Abe Voelker 🞄 Privacy Policy