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.
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.
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.
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! 🤩
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.
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.
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.
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.
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.
Just finished walking through @abevoelker's "Kubernetes On Rails" screencasts. Great introduction to practical k8s usage! https://t.co/grL4xOtn6s
— Glen Bettridge (@asimy) January 9, 2019
I hesitated on buying Kubernetes on Rails ((link: https://t.co/eSGQ0wtxDE) https://t.co/M8NU0PCEx3), but that was a mistake. @abevoelker has done a fantastic job! If you're a junior engineer who wants to learn about kubernetes and/or GCP, I'll pay for your copy as well.
— k. rainbolt-greene (@krainboltgreene) February 14, 2019
@abevoelker Hi Abe! I found your kubernetes on rails course and I'm super happy that someone took the time to explain how to deploy rails on GC the way your course does. For a newbie on the matter like me, I can't thank for this resource enough.
— Rodrigo Puente (@ro_puente) January 9, 2019
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!
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.
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.
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.
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.
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.
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.
Yes! Email me for more info. If you buy five or more licenses you qualify for a discount.
Sure, just email me and we'll figure something out.
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.
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.