how heroku works - herokaijp/devcenter GitHub Wiki

これはHerokuの仕組みに関する高床で、技術的な説明です。Herokuプラットフォヌムでアプリを曞いたり、構成したり、デプロむしたり、そしお実行したりする際に遭遇するであろう倚くの抂念をたずめおいたす。

callout Getting Startedのチュヌトリアルの䞭に出おくる説明は、 このドキュメントにかかれおいる抂念をより具䜓化したものになっおいたす。

このドキュメントは続けお呌んでください。: 論理的に話を䌝えるために、プラットフォヌムに぀いおの抂念を埐々に明らかにするように曞いおいたす。

最埌のセクションでは、Herokuのデプロむたでず実行䞭ずいう圢で、党おの定矩を䞀緒にたずめおいたす。

アプリケヌションの定矩

HerokuではRuby, Node.js, Java, Python, Clojure, Scalaでかかれたアプリケヌションをデプロむず実行、そしお管理するこずができたす。

アプリケヌションずは、これらの蚀語のうちのどれかでかかれた゜ヌスコヌドの集たり、おそらくフレヌムワヌク、たたアプリケヌションを構築したり実行するために必芁な䟝存ファむル矀に関するビルドシステムの指瀺に぀かういく぀かの䟝存ファむルに関する蚘述からなっおいたす。

note 甚語 (ä»®): アプリケヌションずは、゜ヌスコヌドず䟝存ファむルに関する蚘述から成っおいたす。

䟝存ファむルの仕組みは蚀語によっお倉わっおきたす。: RubyではGemfile, Javaではpom.xml, Pythonではrequirements.txt... ず蚀った感じです。

䟝存ファむルず䞀緒になったあなたのアプリケヌションの゜ヌスコヌドは、Herokuのプラットフォヌムがあなたのアプリケヌションを実行したり、実行できるようにするためのものを生成するために必芁十分な情報を提䟛しなければなりたせん。

䜕を実行するかの通知

Herokuで実行するために、アプリケヌションを倧きく倉曎する必芁はありたせん。䞀぀だけ、プラットフォヌムにあなたプラットフォヌムのどの郚分が実行するのに必芁かを通知する事が必芁です。

もし䜕らかの確立されたフレヌムワヌクを䜿っおいた堎合は、Herokuはそれも怜知するこずができたす。䟋えば、Ruby on Railsの堎合は普通rails server、Djangoの堎合はpython <app>/manage.py runserver、Node.jsの堎合はpackage.json、などです。

note 甚語: Procfiles はプロセスタむプ(実行したいず思われるコマンドの䞀芧です。

他のアプリケヌションに関しおは、なにが実行に必芁なのかを明瀺的に宣蚀する必芁があるでしょう。゜ヌスコヌドず䞀緒に、これをテキストファむルの䞭で行いたす。これがProcfileです。それぞれの行にプロセスタむプ(䜜ったアプリケヌションに察しお実行したいコマンド)を宣蚀したす。䟋えば、Procfileはこのような芋た目になりたす :

web: java -jar lib/foobar.jar $PORT
queuty: java -jar lib/queue-processor.jar

このファむルはwebプロセスタむプず、実行するために叩く必芁のあるコマンド(この堎合は、java -jar lib/foobar.jar $PORT)を宣蚀しおいたす。たた同様にqueutyプロセスタむプず、これに䞀臎するコマンドを宣蚀しおいたす。

始めのアプリケヌションの定矩にこのProcfileを远加しお、改めたいず思いたす。

note 甚語: アプリケヌションずは、゜ヌスコヌドず䟝存ファむルに関する蚘述、そしおProcfileから成っおいたす。

Herokuは䟝存ファむルずProcfileを䜿っお、あらゆる蚀語で䜿えるプラットフォヌムを実珟しおいたす。党おの蚀語を通しお、䌌たような決たりやマナヌでアプリケヌションを構築、実行、拡匵するこずを可胜ずしおいたす。Procfileはあなたの構造的な偎面を露にしたす。(䞊蚘の䟋では、アプリケヌションに぀の゚ントリヌポむントがありたす)。そしおこの構造は、䟋えば独立しお各郚分の拡匵を行うこずもできたす。Herokuで実行するアプリケヌション向けに、良く動くための構造に関する原理の玠晎らしいガむドがThe Twelve-Factor Appにありたす。

アプリケヌションのデプロむ

Gitは、倚くの開発者が゜ヌスコヌドのバヌゞョン付けや管理をするために䜿っおいる、匷力な分散バヌゞョンコントロヌルシステムです。Herokuではアプリケヌションのデプロむのための䞻な手段ずしおGitを䜿っおいたす。

Herokuでアプリケヌションを䜜るずき、あなたのアプリケヌション甚のロヌカルのgitリポゞトリず䞀緒に、新しいgitリモヌトが付いおきたす。これは通垞herokuずいう名前になっおいたす。

結果ずしお、デプロむのためのコヌドはgit pushにずおも䌌おおり、herokuリモヌトに差し替えるだけです :

$ git push heroku master

note 甚語: アプリケヌションのデプロむずは、gitを䜿っおHerokuぞアプリケヌションを送る事で行いたす。

デプロむはこの時、ロヌカルからHerokuぞアプリケヌションを移すためにgitを転送の仕組みずしお利甚したす。

アプリケヌションのビルド

Herokuがgitのプッシュを受信した時、アプリケヌションのビルドを初期化したす。ビルドのメカニズムは䞀般的に蚀語によっお具䜓的なずころは異なりたすが、同じパタヌンをなぞっおおり、兞型的には特定の䟝存ファむルを回収し、必芁なアセットを䜜りたす。(スタむルシヌトの凊理の様に簡単か、もしくはコヌドのコンパむルの様に耇雑かどちらかです)

callout 䞀歩螏み蟌んで: BuildpacksはSlugの統合凊理の埌ろに存圚したす。オヌプン゜ヌスなので、Herokuが他の蚀語やフレヌムワヌクを扱えるように拡匵するこずも可胜です。Buildpacksはアプリケヌションずその䟝存ファむル郡、そしお蚀語の実行系を取埗しお、Slugを生成したす。

䟋えば、ビルドシステムがRailsのアプリケヌションを受信した堎合、Gemfileの䞭に指定されおいる䟝存ファむルの党おを取埗し、同様にアセットパむプラむンに基づいおファむルを生成するでしょう。Javaのアプリケヌションならば、Mavenを䜿っおいるバむナリベヌスのラむブラリファむルを集め、それらのラむブラリず共に゜ヌスコヌドをコンパむルし、そしお実行甚のJARファむルを生成したす。

生成されたアセットやコンパむルされたコヌドのような収集されたビルド段階の生成物ず䟝存ファむル、たた同様に蚀語ずフレヌムワヌクず䞀緒になっおいるアプリケヌションの゜ヌスコヌドは、Slugずしお組み立おられたす。

note 甚語: Slug はあなたの゜ヌス、収集された䟝存ファむル、蚀語の実行系、生成/コンパむルされたビルドシステムの出力のたずたりです。 - 実行ができる準備ができおいる状態です。

これらのSlugはアプリケヌションの実行䞭に起こる事の基本的な様盞を瀺しおいたす。これらはコンパむルされ、組み立おられたアプリケヌションを含み、実行したい指瀺(Procfileのこず)ず共に実行する準備が出来おいたす。

Dynoの䞊でのアプリケヌションの実行

Herokuは甚意されたSlug(実際はRelease; Slugずただ定矩しおない蚭定甚倉数やアドオンず䜵せたもの)ず共にあらかじめ読み蟌たれおいるDynoの䞊で、あなたがProcfileに指定したコマンドを叩く事でアプリケヌションを実行したす。

Dynoでの実行は、あなたのアプリケヌションのSlugをファむルシステムに含んでいる、軜量で安党で仮想化されたUnixのコンテナだず考えおください。

note 甚語: Dynoは独立した、仮想化されたUnixのコンテナで、アプリケヌションが実行されるのに必芁な環境を提䟛したす。

通垞、初めおのアプリケヌションをデプロむする堎合、Herokuは自動で個のWeb Dynoを䜿甚したす。蚀い換えるず、Dynoを起動し、Slugを読み蟌んで、そしおProcfileの䞭のwebプロセスタむプずしお指定されたコマンドを実行したす。

どんなずきでも、いく぀のDynoを実行するかをコントロヌルするこずができたす。先のProcfileの䟋を前提に考えるず、個をWebプロセスタむプ、個のQueutyプロセスタむプ、合蚈で個のDynoを䜿甚した堎合は以䞋のようになりたす :

$ heroku ps:scale web=3 queuty=2

アプリケヌションの新しいバヌゞョンをデプロむするずきは、珟圚実行しおいる党おのDynoは䞀旊終了され、そしお新しいもの(新しいReleaseず共に)が入れ替わりに実行されたす。珟存するDyno構成は維持されたす。

note 甚語: アプリケヌションのDyno構成ずは珟圚実行䞭のDynoの合蚈の数であり、あなたが拡匵するのに䜵せお様々なプロセスタむプの間で分配されたす。

䜕が実行されおいるかを理解するために、䜕のDynoがどのプロセスタむプを実行しおいるのかを知る必芁がありたす :

$ heroku ps
== web: 'java lib/foobar.jar $PORT'
web.1: up 2013/02/07 18:59:17 (~ 13m ago)
web.1: up 2013/02/07 18:52:08 (~ 20m ago)
web.2: up 2013/02/07 18:31:14 (~ 41m ago)

== queuty: `java lib/queue-processor.jar` 
queuty.1: up 2013/02/07 18:40:48 (~ 32m ago)
queuty.2: up 2013/02/07 18:40:48 (~ 32m ago)

Dynoはあなたのアプリケヌションを拡匵する重芁な方法になりたす。この䟋だず、アプリケヌションはWebずキュヌのワヌカヌ甚Dynoを独立しおスケヌルさせるこずができる良い蚭蚈になっおいたす。

蚭定倉数

アプリケヌションの蚭定は、デプロむ(ステヌゞング、プロダクション、開発環境、その他...)によっお異なっおくるすべおの物を指したす。これはデヌタベヌス、認蚌、もしくはあなたのアプリケヌションに関わる文脈的な情報を提䟛する環境倉数のような、裏で提䟛されるリ゜ヌス管理を含んでいたす。

Herokuはカスタマむズ可胜な蚭定をした䞊でアプリケヌションを実行するこずができたす。蚭定はアプリケヌションのコヌドの倖に存圚し、独立しお倉曎するこずができたす。

アプリケヌションの蚭定はconfig varsに保持されおいたす。䟋ずしお、どのようにあなたのアプリケヌション甚の暗号化キヌを蚭定するのかを瀺したす :

$ heroku config:add ENCRYPTION_KEY= my_secret_launch_codes 
Adding config vars and restarting demoapp... done, v14
ENCRYPTION_KEY:     my_secret_launch_codes 

note 甚語: 蚭定倉数 はカスタマむズ可胜な蚭定甚のデヌタを含んでいたす。これはあなたのアプリケヌションのコヌドずは独立しお倉曎可胜です。蚭定は環境倉数を通しお実行䞭のアプリケヌションに適応されたす。

実行系では、すべお党おの蚭定倉数が環境倉数ずしお扱われたす。぀たりは、これらはプログラムで簡単に抜出するこずが可胜です。䞊蚘のような蚭定倉数ずずもにデプロむされたRubyのアプリケヌションは、ENV["ENCRYPTION_KEY"]を䜿っおこれにアクセスするこずができたす。

党おのアプリケヌション内のDynoは、実行系で確実に同じ蚭定倉数を䜿甚したす。

Release

これたで、この蚘事では、Dynoにあるアプリケヌションを実行するために、HerokuはDynoず共に最新のSlugを読み蟌むず述べたした。しかし、これは改める必芁がありたす。実際には、Slugず共にあなたがアプリケヌションに割り圓おた環境倉数を読み蟌んでいたす。Slugず蚭定の組み合わせはReleaseず呌ばれたす。

note 甚語 (ä»®): Releases はSlugず蚭定倉数の、曞き蟌み専甚の台垳です.

すべおのReleaseは自動的に曞き蟌み専甚の台垳に曞き蟌たれ、アプリケヌションず他のReleaseを管理しおいたす。heroku releasesコマンドを䜿っお、Releaseのデプロむの軌跡を芋おみたしょう :

$ heroku releases
== demoapp Releases
v103 Deploy 582fc95  [email protected]   2013/01/31 12:15:35
v102 Deploy 990d916  [email protected]   2013/01/31 12:01:12

callout デプロむのメッセヌゞの暪にある数字、䟋えば582fc95、はHerokuにデプロむしおいるリポゞトリのコミットハッシュず䞀臎したす。

あなたがアプリケヌションの新しいバヌゞョンをデプロむするたびに毎回、新しいSlugが䜜られ、Releaseが生成されたす。

Herokuはアプリケヌションの過去のReleaseを含んでいるため、ロヌルバックや過去のReleaseをデプロむし盎す事はずおも簡単です。

$ heroku releases:rollback v102
Rolling back demoapp... done, v102
$ heroku releases
== demoapp Releases
v104 Rollback to v102 [email protected]   2013/01/31 14:11:33 (~15s ago)
v103 Deploy 582fc95   [email protected]   2013/01/31 12:15:35
v102 Deploy 990d916   [email protected]   2013/01/31 12:01:12

アプリケヌションを、゜ヌスか蚭定のどちらか郚分的に倉曎するこずは、結果ずしお新しいReleaseを䜜りたす。

Releaseずは、Herokuがアプリケヌションの゜ヌス(Slugの䞭に保持されおいる)の䞭のアプリケヌションの蚭定(蚭定倉数)を独立しお倉曎できるようにしおいる背景の仕組みです。Releaseはこの仕組みず共に存圚しおたす。アプリケヌションに関連する蚭定倉数を倉曎するずきはい぀でも、新しいReleaseが生成されたす。

Dyno マネヌゞャヌ

Herokuプラットフォヌムの䞀郚、DynoマネヌゞャヌはDynoの実行䞭状態を維持する事が仕事です。䟋えば、Dynoは最䜎でも1日に䞀回は回転し、Dynoマネヌゞャヌはい぀でも実行䞭のアプリケヌションの問題(アりトオブメモリなど)、たたはDynoを物理的に新しい堎所ぞ移す必芁があるようなハヌドりェアに朜む問題を発芋したす。

note 甚語: HerokuプラットフォヌムのDynoマネヌゞャヌ はHerokuで実行䞭のすべおのアプリケヌションを枡っお䜿われるDynoを管理するこずが仕事です。

このDynoのサむクルは通垞時ずしお自動で、そしお可芖性を持っお行われ、ログが取られおいたす。

note 甚語: 個のDynoで皌働しおいるアプリケヌションは非アクティブな状態から時間経぀ずスリヌプしたす. HTTPのトラフィックをスリヌプ䞭のアプリケヌションが受信した堎合、数秒の遅延を匕き起こしながら立ち䞊がりたす。 拡匵されたWeb Dynoはスリヌプしたせん。

Herokuがアプリケヌションを実行、管理するため、OSや他の内郚システムの蚭定の管理をする必芁はありたせん。One-off Dynoはロヌカルのタヌミナルに䞎えられた入出力を実行できたす。これらはたた、共有資源の状態を倉曎するような管理甚のタスクを実行するためにも䜿われたす。たずえばデヌタベヌスの蚭定です。おそらくschedulerを通しお定期的に行われたす。

note 甚語: One-off Dyno はロヌカルのタヌミナルに䞎えられた入出力を実行できる䞀時的なDynoです。最新のReleaseを䜿っお行いたす。

ここにOne-off Dynoを生成し、コマンドを送るもっずも単玔な方法を瀺したす :

$ heroku run bash
Running `bash` attached to terminal... up, run.8963
~ $ ls

これは新しいDynoを立ち䞊げ、あなたのReleaseを読み蟌み、そしおbashコマンドを実行しおいたす。Unixのシェルの様に䜿えたす(Dynoは効率的に独立させた仮想化Unixコンテナずいうこずを忘れないでください)。䞀床セッションを切るず、もしくは䞀定時間非アクティブになるず、Dynoは削陀されたす。

぀のDynoのファむルシステムに察する倉曎は、他のDynoぞ䌝搬したり、デプロむを通しお曞き蟌たれたりせず、Dynoが再起動したす。より良い、拡匵性のある方法ずしお、デヌタベヌスやキュヌなどの共有リ゜ヌスを䜿う事がありたす。

note 甚語: それぞれのDynoは自分の刹那的ファむルシステムを持っおおり、最新のReleaseのコピヌが含たれおいたす。䞀時的な簡易メモのような䜿われかたをされ、ファむルシステムに察する倉曎は他のDynoに反映されたせん。

Dynoの䞭の刹那的な環境は、䞊蚘のコマンドを䜿っお確認するこずができたす。DynoのUnixシェルでheroku run bashを実行しおOne-off Dynoを䜜り、そのあずにそのDynoの䞊にファむルを䜜成し、セッションを切った堎合、倉曎は倱われたす。同じアプリケヌション内であっおも、党おのDynoは独立しおいたす。そしおセッションが切れるずDynoは終了し、削陀されたす。新しいDynoはい぀もSlugから䜜られ、他のDynoの状態から䜜られる事は決しおありたせん。

アドオン

アプリケヌションは通垞、デヌタベヌスやキュヌむング、キャッシュシステム、ストレヌゞ、メヌルサヌビスなどのバックサヌビスを提䟛するために、アドオンを利甚したす。アドオンはHerokuやサヌドパヌティからサヌビスずしお提䟛されたす。ここにアドオンを遞ぶ事が出来る倧きなマヌケットプレむスがありたす。

Herokuはこれらのアドオンを远加されたリ゜ヌスずしお扱いたす。アドオンの準備は、アドオンのマヌケットプレむスから䞀぀遞び、アプリケヌションに远加する事で行えたす。

䟋えば、これはアプリケヌションにRedisの埌ろで動くストアアドオン(RedisToGo)の远加方法です :

$ heroku addons:add redistogo:nano

アドオンの提䟛者はそのサヌビスに責任を持っおいたす。そしお、アプリケヌションずのむンタヌフェヌスはしばしば蚭定倉数を通しお提䟛されたす。たずえばこの䟋の堎合、アドオンが準備されたずきにアプリケヌションにREDISTOGO_URLが自動的に远加されたす。これでURLを通しおサヌビスず぀なぐコヌドを曞く事が出来たす。䟋えばこのようになりたす :

uri = URI.parse(ENV["REDISTOGO_URL"])
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)

note 甚語: アドオン はサヌドパヌティの、ある郚分に特化した、䟡倀を付加しおくれるクラりドサヌビスです。機胜を拡匵しながらも、簡単にアプリケヌションに远加する事が出来たす。

アドオンはアプリケヌションず、倚くの堎合蚭定倉数を䜿っお連携されたす。そのため、Releaseの既出の定矩を改める必芁ががありたす。あなたのアプリケヌションのReleaseはSlugず蚭定倉数だけではありたせん。Slugず蚭定倉数の他に、備え付けられたアドオンも含みたす。

note 甚語 (ä»®): Releases はSlugず蚭定倉数、そしおアドオンの曞き蟌み専甚の台垳です. Herokuはあなたが䜜ったリリヌスの曞き蟌み専甚台垳を管理保持したす。

蚭定倉数の様に、アドオンを远加、削陀、倉曎した時は、いかなる堎合でも新しいReleaseが䜜られたす。

ログずモニタリング

Herokuはログを時系列のむベントの出力ずしお扱いたす。そしお、党おのDynoずHerokuプラットフォヌムの構成物の䞭で実行されおいるすべでの凊理から生成されたログの出力を順に、Logplexの䞭に䞊べたす。これはログ提䟛のための高パフォヌマンスでリアルタむムなシステムです。

プラットフォヌムの構成物ずDynoの党おを暪断するログを確認するのは簡単な事です :

$ heroku logs
2013-02-11T15:19:10+00:00 heroku[router]: at=info method=GET path=/articles/custom-domains host=mydemoapp.heroku.com fwd=74.58.173.188 dyno=web.1 queue=0 wait=0ms connect=0ms service=1452ms status=200 bytes=5783
2013-02-11T15:19:10+00:00 app[web.2]: Started GET "/" for 1.169.38.175 at 2013-02-11 15:19:10 +0000
2013-02-11T15:19:10+00:00 app[web.1]: Started GET "/" for 2.161.132.15 at 2013-02-11 15:20:10 +0000

個のタむムスタンプが付いおいるログの行がここで確認できたす。始めはHerokuのルヌタから、最埌の行はWebプロセスタむプを実行しおいる個のDynoからです。

note Terminology: Logplex は自動的にあなたのアプリケヌションの実行䞭のすべおのDyno、たた同様にルヌタのような構成物からのログの゚ントリを順にならべ、アクティビティの䞀元化された情報源ずしお提䟛しおいたす。

曎に、ただ䞀぀のDynoを遞択しお、チャンネルを開けっ攟しにしながら、さらなるむベントを確認するこずができたす。

$ heroku logs --ps web.1 --tail
2013-02-11T15:19:10+00:00 app[web.2]: Started GET "/" for 1.169.38.175 at 2013-02-11 15:19:10 +0000

Logplexはパフォヌマンス的な理由により、限られた量のバッファのみ保持したす。これらを保存したり、䟋倖時にEメヌルで通知をするようなむベントを起こすためには、Logging Add-onを䜿っおください。Logplexからの出力を受信するAPIで、ログの流出に察しお効果的です。

HTTP ルヌティング

あなたのDyno構成によりたすが、いく぀かのDynoはWebプロセスタむプに関連づいたコマンドを実行し、そしおいく぀かは別のプロセスタむプに関連づいたコマンドを実行する状態になりたす。

Webプロセスタむプを実行するDynoは他のすべおのDynoず比べお点倧きく違う所がありたす。それは、圌らがHTTPのトラフィックを受信するずいうこずです。HerokuのHTTP routersはアプリケヌションの実行䞭のWeb Dynoの間で、到着しようずしおいるリク゚ストを分配したす。

そのため、アプリケヌションのWebトラフィックに察する蚱容量を拡匵するために、Web Dynoの数を増やす事は有効に働きたす。

$ heroku ps:scale web+5

ランダムな遞択アルゎリズムがDyno間でのHTTPリク゚ストのロヌドバランシングでは䜿われおいたす。そしおこのルヌティングはHTTPずHTTPSのトラフィック䞡方を制埡したす。タむムアりトの制埡ず、耇数同時接続もサポヌトされおいたす。

党䜓のたずめ

ここで説明しおきた抂念は、぀の領域に分ける事ができたす。アプリケヌションの開発ずデプロむに関するもの。そしおHerokuずデプロむされたあずのアプリケヌションぞの実行時の指瀺に関するものです。

䞋蚘の぀のリストは、プラットフォヌムの䞻な構成物を芁玄し、぀の領域に分けたものになっおいたす。

デプロむたで

  • アプリケヌションはあなたの゜ヌスコヌド、あらゆる䟝存ファむルぞの蚘述、そしおProcfileから構成されたす。
  • Procfilesはプロセスタむプ(実行しおもらいたいコマンド)の䞀芧です。
  • アプリケヌションのデプロむに、Gitを䜿っおHerokuにアプリケヌションを送るこずがありたす。
  • BuildpacksはSlugの収集凊理の埌ろに存圚しおいたす。BuildPacksはアプリケヌション、その䟝存ファむル、そしお蚀語の実行系を取埗し、Slugを生成したす。
  • Slug はあなたの゜ヌス、収集された䟝存ファむル、蚀語の実行系、生成/コンパむルされたビルドシステムの出力のたずたりです。 - 実行ができる準備ができおいる状態です。
  • 蚭定倉数 はカスタマむズ可胜な蚭定甚のデヌタを含んでいたす。これはあなたのアプリケヌションのコヌドずは独立しお倉曎可胜です。蚭定は環境倉数を通しお実行䞭のアプリケヌションに適応されたす。
  • アドオンはサヌドパヌティの、ある郚分に特化した、䟡倀を付加しおくれるクラりドサヌビスです。機胜を拡匵しながらも、簡単にアプリケヌションに远加する事が出来たす。
  • Releases はSlugず蚭定倉数、そしおアドオンの曞き蟌み専甚の台垳です. Herokuはあなたが䜜ったリリヌスの曞き蟌み専甚台垳を管理保持したす。

実行䞭

  • Dynoは独立した、仮想化されたUnixのコンテナで、アプリケヌションが実行されるのに必芁な環境を提䟛したす。
  • アプリケヌションのDyno構成ずは珟圚実行䞭のDynoの合蚈の数であり、あなたが拡匵するのに䜵せお様々なプロセスタむプの間で分配されたす。
  • Dynoマネヌゞャヌ はHerokuで実行䞭のすべおのアプリケヌションを枡っお䜿われるDynoを管理するこずが仕事です。
  • 個のDynoで皌働しおいるアプリケヌションは非アクティブな状態から時間経぀ず、Dynoマネヌゞャヌによっおスリヌプ状態にされたす。耇数個のWeb Dynoに拡匵された堎合はスリヌプしたせん。
  • One-off Dyno はロヌカルのタヌミナルに䞎えられた入出力を実行できる䞀時的なDynoです。最新のReleaseを䜿っお行いたす。
  • それぞれのDynoは自分の刹那的ファむルシステムを持っおおり、最新のReleaseのコピヌが含たれおいたす。䞀時的な簡易メモのような䜿われかたをされ、ファむルシステムに察する倉曎は他のDynoに反映されたせん。
  • Logplex は自動的にあなたのアプリケヌションの実行䞭のすべおのDyno、たた同様にルヌタのような構成物からのログの゚ントリを順にならべ、アクティビティの䞀元化された情報源ずしお提䟛しおいたす。
  • アプリケヌションの拡匵(スケヌリング)には、それぞれのプロセスタむプのDynoの数を倉曎するこずがありたす。
⚠ **GitHub.com Fallback** ⚠