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.

Deploying Rack-based Apps

RackベースのアプリをGemfileに書いて、rackup用にconfig.ruをコミットしろと。

で、今まではわからないまま放置していたのですけど、そもそもrackって何?ってのが、

実はあまりよくわかったいなかったので調べてみました。

「5分でわかるRack」

RackはWebアプリ用のフレームワークと、Webサーバの間を取り持ってくれるライブラリだ。

「第23回 Rackとは何か(1)Rackの生まれた背景」

既存のWebアプリケーションをサーバ側の構成を変えることなく新しいフレームワークでリプレイスしたり,あるフレームワークで実装されたアプリケーションを様々な環境に移したり,といったことが容易になります。

なるほど、つまりはフレームワークとサーバーを繋ぐインターフェースなんですね。Rack対応にしておけばどんなフレームワークとサーバー上の組み合わせでも動のだと。

結局Rack対応アプリケーションてのはrackupで起動することのできるアプリケーションってことでいいのかな。