2012-02-07 72 views
20

隨着Heroku,如何在需要時根據網絡動態調整擴展一個AUTO?假設我們每2-3分鐘就有100個併發用戶激增。如果我們的應用程序停留在5-6個Web dynos上。我們被搞砸了。Heroku上的一個自動縮放web dynos如何?

其次,我無法監控24小時的流量,以確定是否需要向上或向下放大。

到目前爲止,我見過http://hirefireapp.com/http://www.heroscale.com/ 有關這兩者的任何建議?

回答

24

heroku原本不這樣做的原因是它是一個難以置信的複雜問題需要解決。例如,想象一下上面的場景,你突然開始看到一個隊列形成,並且想要改變射手的位置。你還有十個曲柄。然而,這不是一個動態的問題,你的數據庫運行緩慢,所以現在你有更多的動態庫都在等待數據庫,現在有更多的需求放在它上面。

雖然有自動縮放產品,但我沒有嘗試過其中任何一種,並且完全相信目前只有人類可以對縮放進行正確調用。你的旅費可能會改變。

我在過去的資源設置爲預期的使用級別(這可能是目前使用以上)往往最適合,不包括大量的流量涌入發現(如被Hacker News上等)

+0

嗯,但會發生什麼,如果你得到通過黑客新聞擊中,沒有人在辦公室手動擴大?這不會導致請求超時彈出各地/把應用程序半脫機(500錯誤)? – 2012-02-07 17:40:16

+0

不幸的是,對於每個應用程序以及它在硬件上運行的簽名,答案都會有所不同。 – 2012-02-07 20:38:13

+0

那麼,如果一個應用程序因流量涌入而獲得20-30倍以上的點擊率。我很確定一些頁面瀏覽不會通過。即沒有足夠的web處理程序來回。我相信Heroku的請求超時時間爲55秒,然後終止連接 – 2012-02-08 00:25:15

24

我建HireFire並希望分享一些先進的最新信息:

HireFire能夠自動縮放你都Web和工人DYNOS基於各種指標。我們目前支持以下度量來源/類型:

  • HireFire(Response Time)| Web Dynos
  • HireFire(Job Queue)|工人Dynos
  • Heroku Logplex(Response Time)| Web Dynos
  • Heroku Logplex(每分鐘的請求)| Web Dynos
  • Heroku Logplex(Dyno CPU負載)| Web Dynos
  • NewRelic(Apdex)| Web Dynos
  • NewRelic(Response Time)| Web Dynos
  • NewRelic(每分鐘的請求)|幅DYNOS

HireFire(響應時間)執行基本的HTTP請求來測量響應時間。

HireFire(作業隊列)允許您根據自己的隊列大小自動縮放您的工作指針。您將在您的最終設置一個非常簡單的終端(我們有一個RubyGem用於此目的,但它可以非常容易地以任何語言與任何庫進行)。我們會定期執行檢查,並相應地縮放您的工人動態測試編隊。

New Relic允許您與New Relic集成。它會定期獲取最新的指標數據,例如平均響應時間,每分鐘請求數和Apdex,以確定您的網絡測試代碼的形成。

Heroku Logplex是我們的最新成員。這種方法依賴於你的(和Heroku的)日誌。您的日誌將從Heroku的Logplex流式傳輸到HireFire的Logdrain,在那裏將解析度量數據。這使您能夠以比HireFire/ResponseTime更可靠的方式自動擴展Web dynos,因爲它直接從Heroku的路由器獲取數據。這種方法不需要任何外部依賴,如New Relic。

如果您有任何問題,請與我們聯繫!

+0

我可以再次僱用火力。它在www.streetbank.com上對我們的工作非常好。 – superluminary 2014-09-17 14:07:05

+0

它每分鐘測試一次延遲和作業隊列長度,並適當地擴大或縮小。顯然你還需要一個人參與,因爲除了dynos之外還有更多的擴展,但是到目前爲止,它在處理塊狀流量方面做得非常好。 – superluminary 2014-09-17 14:25:33

3

我寫了一個名爲Heroku Vector的Heroku自動縮放引擎。它可以讓你根據流量您收到(而不是在響應時間等待的等待時間)捲上規模的網絡和sidekiq DYNOS:

https://github.com/wpeterson/heroku-vector

您可以運行它作爲一個獨立的測功機的過程。

0

截至2017年1月,Heroku正式支持自動縮放。

自動縮放比較容易設置和使用,它根據您的應用過去24小時的響應時間推薦閾值。 基於響應的自動縮放確保您的網絡測試版編號爲 始終按照最佳效率進行調整大小,同時根據您設置的 限制限制成本。對於使用Performance和Private Web dynos的應用程序,Autoscaling目前不包括 費用。

下面是文檔: https://devcenter.heroku.com/articles/scaling#autoscaling

以下是公告:https://blog.heroku.com/heroku-autoscaling