Cuber: Kubernetes에 Rails 애플리케이션을 배포하기 위한 Capistrano 대안

3105 단어 kubernetesrailsdevops
Cuber은 Ruby로 작성된 자동화 및 배포 도구입니다. Capistrano와 비슷하지만 Kubernetes에 배포하므로 모든 서버를 구성할 필요가 없고 확장성이 더 좋습니다.

기본적으로 Cuberfile(Capistrano용 Capfile과 같은 몇 줄의 Ruby 코드)를 정의한 다음 터미널에 cuber deploy를 입력하여 애플리케이션을 배포할 수 있습니다.

Cuber는 모놀리식 Rails 애플리케이션용으로 설계되었지만 실제로 모든 언어 및 프레임워크에서 모든 애플리케이션을 배포할 수 있습니다.

프로덕션 환경에서 애플리케이션을 실행하는 데 필요한 모든 기능을 갖추고 있습니다.

다음은 Kubernetes에 Rails 앱을 배포하는 데 사용할 수 있는 예Cuberfile입니다.

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


그게 다야. 해당 파일을 디렉터리(일반적으로 응용 프로그램 루트)에 저장하고 cuber deploy를 입력하면 마법이 일어납니다.

the project website에 대한 많은 정보 및 기술 문서도 있습니다.

마지막으로 Kubernetes는 베어 인프라이기 때문에 Heroku 또는 다른 PaaS보다 80% 저렴할 수 있습니다. Kubernetes는 또한 대부분의 클라우드 제공업체에서 제공하므로 단일 서비스 제공업체에 종속되지 않습니다.

좋은 웹페이지 즐겨찾기