-
Notifications
You must be signed in to change notification settings - Fork 9
Production check
プロダクションチェックはあなたのアプリケーションの設定が、オプションではあるけども高いレベルで推奨される、ある基準の集合に適しているかを確かめます。あなたのアプリケーションの設定が最大限アップタイムであるための助けに成っているか、それを確かにするのを簡単にします。更にこれで、アップタイムでいることに貢献する要素を確認し理解することが出来るツールを持てるようになります。
プロダクションチェックを実行するために、Herokuのダッシュボードのあるアプリケーションのヘッダ部分にある「Run Production Check」のリンクをクリックします。
プロダクションチェックは利用可能性を確認したり、維持したりするために推奨される一連のテストをあなたのアプリケーション上で実行します。それぞれの確認項目はリソースと関係する便利なリンクを含みます。
CedarはHerokuの最もパフォーマンスがあり堅牢なスタックで、すべてのアプリケーションにとって推奨されます。Cedarにはプラットフォームのエンジニアリングと利用可能性に関する努力のほとんどが集中しています。
今あなたのアプリケーションがデプロイされているスタックを指定するためには、heroku stack
コマンドを使用します。
:::term
$ heroku stack -a ha-app
=== ha-app Available Stacks
bamboo-mri-1.9.2
bamboo-ree-1.8.7
* cedar
まだCedarを使っていない場合は、アプリケーションの移行を検討してください。
ミッションクリティカルなアプリケーションでいるために、最低でも2つのWeb Dynoを稼働させることは、悲惨な出来事の間でも利用可能性を維持できる確率をあげます。複数のDynoはまた別の物理的な基盤(例えば、隔離されたAWSの利用可能地域)で実行される可能性が高く、更なる冗長性を与えます。
現在あなたのアプリケーションでどのタイプのDynoがどれだけ稼働しているかを確認するためにはheroku ps
コマンドを、そしてDynoの冗長性を増やすためにはheroku ps:scale
を使います。
:::term
$ heroku ps -a ha-app
=== web:
web.1: up for 17m
$ heroku ps:scale web+2
Scaling web processes... done, now running 3
これはweb
Dynoだけでなく、 backgroundやworkerのDynoにも同様に適応されます。
Cedarスタック上のアプリケーションは、app-name.herokuapp.com
を指すCNAMEレコードを持っているべきです。SSLが必要な場合、SSLエンドポイントを設置し、endpoint-name.herokussl.com
へ、あなたのCNAMEレコードを指してください。別の設定では結果的に利便性を損なう事になるでしょう。
host
コマンドライン機能を使って、あなたのDNSレコードが適切に設定されているかどうかを素早く確認することができます。
:::term
$ host www.example.com
www.example.com is an alias for nara-1234.herokussl.com.
nara-1234.herokussl.com is an alias for elb002776-242519199.us-east-1.elb.amazonaws.com.
elb002776-242519199.us-east-1.elb.amazonaws.com has address 107.21.240.226
…
エイリアスが、www.example.com
からapp-name.herokuapp.com
かendpoint-name.herokussl.com
にマッピングされていることを確認できるはずです。
もし仕事でHerokuを使っている場合、プロダクション-グレードのHeroku Postgres databaseを使用するべきです。
サービスのプロダクション版は最も高いアップタイムが期待でき、自動のヘルスチェック、データスナップショットとフォークやフォローを含んだ一歩先の機能を含みます。
:::term
$ heroku pg:info -a ha-app
=== HEROKU_POSTGRESQL_RED
Plan: Ronin
Status: available
Data Size: 5.9 MB
Tables: 0
PG Version: 9.1.4
Fork/Follow: Available
Created: 2012-07-13 16:59 UTC
Maintenance: not required
もしアプリケーションがノンリレーショナルデータストアを必要賭する場合、Amazon DynamoDBは高い利用可能性を持つデータストアとしての、別の素晴らしい候補です。
あなたのアプリケーションの利用可能性を向上させる前に、あなたはアプリケーションの状態に対する優れた検知能力と反応能力を備えているべきです。これはいろいろなツールを使って達成する事が出来ます。
New Relicであなたのアプリケーションの全ての時間のパフォーマンスを確認し、細部まで見る事ができます。サービス内の悪化によって、利用可能性の損失が事前に起こるたくさんのケースがあります。
観察している適切な期間の中で、あなたのアプリケーションの適切な動作上の境界線を作ったり、あなたのシステムが適切に動かなくなり始めたときに通知するアラートを設定しましょう。
あなたのアプリケーションが確かな状況で動いているかどうかと、どこか一番もろいかをより理解するために、New Relicの豊かなグラフィックとパフォーマンスの分析能力を使いましょう。これらの観察は、変わりやすい期間の悪化のまわりで動かし、診断するのに役立ちます。
Herokuのアドオンマーケットプレイスは、あなたのアプリケーションのログストリームに対して、消費したり、保存したり、道具を提供する多くのサービスを含んでいます。クレジットカードによるサインアップの成功のような、関心があるイベントのログを取る事で、異常なアクティビティを知らせるためのこれらのサービスを使う事が出来ます。問題があがった時は、これはまたログイベントのヒストリを検索できることで、デバッグを簡素化してくれます。
Papertrailは、あなたのログデータのパターンを基準としたアラートを提供してくれるようなサービスの例です。あなたのアプリの中のイベントとエラーの検索アラートを設定し、Librato, PegerDuty, Campfireを統合させましょう。検索アラートはHerokuのエラーコードやあなたのアプリケーションの関心のあるイベントの為になります。