【Ruby】そもそもRackって何なのだ?
Sinatraを使っていると、
ruby app.rb
でWEBrickが起動したりしますが、
HerokuやAWSのElasticBeanStalkなど、PaaS的な環境にデプロイするにはcondig.ru を作って、rack対応アプリケーション形式?にしてあげないと駄目ですよね。
Heroku supports Rack and Rack-based web frameworks like Sinatra, Ramaze, and Camping.
To run a Rack-based app, include a Gemfile, as well as a rackup file namedconfig.ru in the app’s root directory.
RackベースのアプリをGemfileに書いて、rackup用にconfig.ruをコミットしろと。
で、今まではわからないまま放置していたのですけど、そもそもrackって何?ってのが、
実はあまりよくわかったいなかったので調べてみました。
RackはWebアプリ用のフレームワークと、Webサーバの間を取り持ってくれるライブラリだ。
既存のWebアプリケーションをサーバ側の構成を変えることなく新しいフレームワークでリプレイスしたり,あるフレームワークで実装されたアプリケーションを様々な環境に移したり,といったことが容易になります。
なるほど、つまりはフレームワークとサーバーを繋ぐインターフェースなんですね。Rack対応にしておけばどんなフレームワークとサーバー上の組み合わせでも動のだと。
結局Rack対応アプリケーションてのはrackupで起動することのできるアプリケーションってことでいいのかな。