Terraform is one of those tools that many people talk about, but which can be a bit frightening for a Java developer.
There are several reasons for this, but mainly it's because Terraform is an infrastructure tool: this is going to create cloud resources for you, which isn't something most Java developers are used to do, and while doing so it's going to cost you some money.
And obviously, you are afraid that doing a wrong configuration is going to cost you a lot!
This series of videos is made exactly with this issue in mind: using a classical Java project, the Spring Petclinic, we'll gently introduce the most important Terraform concepts, so that at the end you'll be able to deploy with confidence a Spring Boot and MySQL infrastructure to the cloud.
Each video is about 10 minutes long, so they are easy to consume, and they all have subtitles: if you have any issue following them, don't forget to turn those subtitles on!
The final project is avaible on https://github.com/jdubois/spring-petclinic/tree/deploy-to-azure/terraform.
In this first video, we describe what Terraform is, and we fork the Spring Petclinic project (available at https://github.com/spring-projects/spring-petclinic) to add a Terraform configuration.
In this second video, we create a MySQL server and configure it using Terraform, learning how Terraform manages state, and how it can create or update resources.
In this third video, we talk about best practices to improve your Terraform code, as well as tooling to facilitate understanding your code.
In this fourth video, we complete our Terraform configuration and add a Java application service, configure our Spring Boot project to be deployed on Azure, run everything in the cloud, and finish by destroying our infrastructure.
Don't forget to subscribe to the Java on Azure YouTube channel for more Java tutorials and content!