How do you deploy your web application?
2017-11-16 Hiroshima.rb #59 論理の飛躍や雑なところがあります
他のみんながどうしているのか知りたいので自分の場合を発表した
あんまり聞けなかったかんじ
In simple case
git clone
rsync
...
Deployment tasks
Upload application code
Install/Update dependencies (libraries)
DB migration
Assets (JS, CSS) compilation
Restart/Reload application server
...
Automate deployment
Many many tasks
Manual operations
make mistakes
大変
属人化
手順がわからない
手順書が更新されない
...
→ automate deployment and use deployment tool
In my case
on-premises
one server
roles: web, db, app
Rails/Sinatra application
→ Capistrano
単純な場合: Makefile, Rakefile, Shell script, rsync
Capistrano
made by ruby
like rake
configured by ruby dsl
execute commands over ssh (SSHKit)
many plugins (deployment task)
...
やること
Install capistrano and plugins as needed
cap install
generate configuration files
Edit Capfile, config/deploy.rb, config/deploy/production.rb
cap production deploy
普段使っているプラグイン
capistrano-chruby
capistrano-bundler
capistrano-rails
capistrano-passenger
capistrano3-unicorn
capistrano-npm
capistrano-withrsync
capistrano-bundle_rsync
Demo
https://gyazo.com/998c13d4309624034041fc5d765454cd
悩み
どこでやればよいのか
first deploy
rake db:create
rake db:seeds
database.yml など