Cuber: a Capistrano alternative for deploying Rails applications on Kubernetes

Cuber is an automation and deployment tool written in Ruby: it is similar to Capistrano, but it deploys on Kubernetes, so you don’t need to configure all the servers and it’s more scalable.

Basically you can deploy your application by defining a Cuber…


This content originally appeared on DEV Community and was authored by Marco Colli

Cuber is an automation and deployment tool written in Ruby: it is similar to Capistrano, but it deploys on Kubernetes, so you don’t need to configure all the servers and it’s more scalable.

Basically you can deploy your application by defining a Cuberfile (a few lines of Ruby code, like a Capfile for Capistrano) and then typing cuber deploy in your terminal.

Cuber has been designed for monolithic Rails applications, but it can actually deploy any application, in any language and framework.

It has all the features needed to run an application in production.

Here’s an example Cuberfile that you can use to deploy any Rails app on Kubernetes:

app 'myapp'
repo '.'
buildpacks 'heroku/buildpacks:20'
image 'username/myapp'
dockerconfig 'dockerconfig.json'
kubeconfig 'kubeconfig.yml'
migrate 'rails db:migrate', check: 'rake db:abort_if_pending_migrations'
proc :web, 'bundle exec puma', scale: 3
proc :worker, 'bundle exec sidekiq', scale: 2
cron :mytask, '@daily', 'rake mytask'
env 'RAILS_ENV', 'production'
env 'RAILS_LOG_TO_STDOUT', 'enabled'
env 'RAILS_SERVE_STATIC_FILES', 'enabled'
env 'RAILS_MASTER_KEY', File.read('config/credentials/production.key').strip, secret: true

That's it. Save that file in a directory (usually your application root), type cuber deploy and let the magic happen.

There is also lot of information and technical documentation on the project website.

Finally note that Kubernetes can be 80% cheaper than Heroku or other PaaS, because it is bare infrastructure. Kubernetes is also offered by most cloud providers, and thus you avoid lock-in with a single service provider.


This content originally appeared on DEV Community and was authored by Marco Colli


Print Share Comment Cite Upload Translate Updates
APA

Marco Colli | Sciencx (2022-07-13T12:34:40+00:00) Cuber: a Capistrano alternative for deploying Rails applications on Kubernetes. Retrieved from https://www.scien.cx/2022/07/13/cuber-a-capistrano-alternative-for-deploying-rails-applications-on-kubernetes/

MLA
" » Cuber: a Capistrano alternative for deploying Rails applications on Kubernetes." Marco Colli | Sciencx - Wednesday July 13, 2022, https://www.scien.cx/2022/07/13/cuber-a-capistrano-alternative-for-deploying-rails-applications-on-kubernetes/
HARVARD
Marco Colli | Sciencx Wednesday July 13, 2022 » Cuber: a Capistrano alternative for deploying Rails applications on Kubernetes., viewed ,<https://www.scien.cx/2022/07/13/cuber-a-capistrano-alternative-for-deploying-rails-applications-on-kubernetes/>
VANCOUVER
Marco Colli | Sciencx - » Cuber: a Capistrano alternative for deploying Rails applications on Kubernetes. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/07/13/cuber-a-capistrano-alternative-for-deploying-rails-applications-on-kubernetes/
CHICAGO
" » Cuber: a Capistrano alternative for deploying Rails applications on Kubernetes." Marco Colli | Sciencx - Accessed . https://www.scien.cx/2022/07/13/cuber-a-capistrano-alternative-for-deploying-rails-applications-on-kubernetes/
IEEE
" » Cuber: a Capistrano alternative for deploying Rails applications on Kubernetes." Marco Colli | Sciencx [Online]. Available: https://www.scien.cx/2022/07/13/cuber-a-capistrano-alternative-for-deploying-rails-applications-on-kubernetes/. [Accessed: ]
rf:citation
» Cuber: a Capistrano alternative for deploying Rails applications on Kubernetes | Marco Colli | Sciencx | https://www.scien.cx/2022/07/13/cuber-a-capistrano-alternative-for-deploying-rails-applications-on-kubernetes/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.