foremanとはなんでしょうか 使う利点は?
ddollar/foremanについてです。
ジョブ, プロセス
My apps no longer consist of a single web process; I usually have have
one or more types of background workers to run different types of jobs
and a clock process to handle scheduling.
種類の違うバックグラウンドで動くジョブをスケジューリングしているというようなことが書いてあります。
Foreman as Process Manager
ここにもProcess Managerとあり、ジョブのことをプロセスとも呼んでいるものと考えます。
具体的にジョブ, プロセスとは?
If you’re building Rails apps you probably found yourself installing
many external dependencies to run it. A database, a full text search
engine, an in memory cache, background worker processes and many other
tools that run as separate processes in your machine.
とあるので、具体的にジョブやプロセスと呼ばれているものは、
データベースやフルテキストサーチエンジンやキャッシュと理解しました。
具体的なソフトウェアで考えると...
上記では、データベースやキャッシュなどと表記されていますが、具体的なソフトウェアの名前を上げると、MySQL
,PostgreSQL
,Redis
,Unicorn(これもforemanの扱う対象?)
といったものが上がると思います。
Process Manager?
iPhoneアプリ開発ではObjective-C
を用い非同期処理を実現するために、GCD
を使ったりして処理の制御を頻繁にしておりました。
foreman
も似たようなことをしているのではないかと推測しているのですが、
PostgreSQL
,Redis
,Unicorn
というものをforeman
が管理するというのがいまいち想像がつきません。PostgreSQL
,Redis
,Unicorn
といったものを個別に立ち上げてもOS
がプロセスを扱う役目を担っているはずですので、foreman
がいったい内部でどのようなことをしていてどのようなメリットがあるのでしょうか?