Kamal is a great utility for deploying your application to a server. It can handle many different kinds of use cases. However, there is some disconnect on how to use it within a CI/CD pipeline. In this episode, we'll look at deploying a Rails 7.1 application with SQLite to a virtual machine using Kamal within GitHub Actions.
Continuing from the previous episode, we look at speeding up the build times with a remote builder, continued warning about accessories, implementing background jobs, setting up the infrastructure for background workers and diving more into the Kamal (MRSK) commands.
Kamal (MRSK) deploys web apps anywhere from bare metal to cloud VMs using Docker with zero downtime. In this episode, we will set up a Digital Ocean infrastructure with a Load Balancer, Virtual Machines, and a PostgreSQL database. We'll use Kamal (MRSK) to provision and deploy our Rails application to the Virtual Machines.
Heroku is a Platform as a Service (PaaS), where you can deploy and manage your Ruby on Rails applications. It is one of the easiest platforms to deploy to; allowing you to focus on the development side of things instead of worrying about managing an infrastructure.
Back in Episode #106, we configured and deployed to a very simple AWS Beanstalk environment. However, in this episode, we take things a bit further and explore security groups, an existing database and redis service. Also, there are a few changes that we have to do in order to get Rails 6 working within Beanstalk.