[Screencast] Deploying a remote Kubernetes development environment with Garden

Hi everyone, we’ve started working on a new screencasts series made up of short videos (ideally, less than 2 minutes) that show what it’s like to use Garden on a day-to-day basis and/or explain key Garden concepts.

The first screencast is ready to share, so here’s "Deploying a remote Kubernetes development environment with Garden. I’m just the messenger—all credit for the video goes to my colleague Thor (@thsig) :slight_smile:

I’ve typed up the transcript below the embed, and here’s a link to the vote project that Thor uses: garden/examples/vote at master · garden-io/garden · GitHub

Enjoy!

Transcript:

[0:05] In this video, we will be deploying a development environment with Garden. What we’re looking at here is the vote example project, which you can also find in our GitHub repo.

[0:16] This project consists of several application services for voting and for viewing the results; a database for storing the votes; and a message queue for processing the votes in real time.

[0:28] To deploy this project from the ground up, several things need to happen. The database needs to be up and running, its schema intialized and seeded with test data, and then, all of the application services need to be built at the correct version and then deployed in the correct dependency order.

[0:45] Thankfully, because I’ve configured this project with Garden, all I have to do is run garden deploy. Now, Garden will figure out which services need to be rebuilt, which ones are at the same version as during the last build. It will make sure that the database is up and running, that it’s been seeded with the schema and test data, and then it will deploy all the services in the stack in the correct dependency order.

[1:08] It will also use the dynamically generated hostnames for the services’ endpoints that are specified in my project configuration, which means that as I’m working on my code, I can view these live endpoints to see the latest user interface changes that I’ve been making.

[1:23] Note that none of this is using local Docker or local Kubernetes. I actually don’t have Docker or Kubernetes running on my laptop as I’m making this demo. It is all running in a remote Kuberentes cluster that I’m sharing with the other developers on my team.