部署Node應用程序選擇Heroku還是Now.sh?

責任編輯:editor006

作者:鈺瑩

2017-11-08 16:19:31

摘自:it168網(wǎng)站

隨著Node js的不斷流行,新教程層出不窮,教程序員如何編寫服務器端JavaScript應用程序和API。應用程序的URL可以在控制臺日志中找到,有關(guān)部署或其他命令的更多常規(guī)日志可以在儀表板找到。

隨著Node.js的不斷流行,新教程層出不窮,教程序員如何編寫服務器端JavaScript應用程序和API。本文將介紹兩大用于部署Node應用程序的項目:Now.sh和Heroku。解釋如何將代碼部署到上述兩個平臺,在監(jiān)控選項、易用性、提供的功能以及免費托管計劃方面各有哪些利弊。

用Heroku進行部署

為了能夠?qū)贸绦虿渴鸬紿eroku,程序員必須在Heroku上注冊并為機器安裝Heroku CLI。

開始之前,需要向Procfile添加一些代碼。因為,Heroku將利用這個文件來確定如何執(zhí)行上傳的代碼。

如果將下面的代碼添加到文件中,Heroku就知道應該執(zhí)行什么命令來啟動應用程序:

一旦完成,請嘗試通過從終端輸入heroku login的方式登陸,Heroku會要求輸入登錄憑證。

接下來,導航到項目的根目錄并輸入命令:heroku create。這將在Heroku上創(chuàng)建一個應用程序,該應用程序已準備好接收項目的源代碼。Heroku上的應用程序名稱是隨機創(chuàng)建的。

要將代碼部署到Heroku,只需使用git push heroku master。程序員可以使用heroku open命令來訪問應用程序,這將打開生成的URL。

推動對Heroku的更改

遵循正常的Github流程可以推動更改:

部署Node應用程序:一文看懂Heroku和Now.sh的最大區(qū)別!

  有用的Heroku命令

要確保至少有一個應用程序?qū)嵗谶\行:heroku ps:scale web = 1

因為正在使用免費平臺,所以不可能擴展應用程序。但是,可以縮減比例,因此不運行的應用程序?qū)嵗篽eroku ps:scale web = 0。

按照Heroku生成的時間順序查看最新的日志(流):heroku logs --tail

可以只顯示應用程序日志。應用程序日志是代碼中console.log()語句的輸出,可以使用如下語句查看:heroku logs--source app-name

Heroku提供了在本地//localhost:5000上運行應用程序的可能性:heroku local web

列出所有Heroku應用程序:heroku apps

刪除部署:heroku apps:destroy--app app-name

添加所有者(帳戶)來訪問應用程序:heroku access:add me@email.com,刪除heroku access:remove

Heroku環(huán)境變量

如果在本地使用.env文件,則可能需要為Heroku部署使用其他環(huán)境變量??梢允褂胔eroku config來設置它們:heroku config:setPORT=3001.。這些值將覆蓋用戶在.env文件中設置的變量。

要查看所有定義的Heroku環(huán)境變量,只需使用heroku config。如果想刪除一個環(huán)境變量例如 PORT,使用heroku config:unset PORT。

免費可用的版本

允許最多五個Heroku應用程序

512 MB RAM

不可升級可用,只可以同時運行一個應用程序?qū)嵗?/p>

閑置30分鐘后進入睡眠狀態(tài)

隨機生成應用程序名稱

有關(guān)內(nèi)存使用情況,響應時間和可用吞吐量的度量標準,但無法添加自定義度量標準

部署Node應用程序:一文看懂Heroku和Now.sh的最大區(qū)別!

  使用now.sh進行部署

Now.sh著重于開發(fā)者體驗(DX),這是一種獨特的方式。他們試圖提供靈活的工具,使用起來非常簡單。Now.sh是Zeit.cowhich開發(fā)的一些工具的一部分。

為了簡單起見,我們將只通過npm安裝Now.sh CLI:

部署Node應用程序:一文看懂Heroku和Now.sh的最大區(qū)別!

接下來,需要注冊以便可以在控制臺中使用。登錄和注冊都發(fā)生在login page。每次登錄時,都必須通過電子郵件驗證來確認登錄嘗試。 確認后,將被重定向到儀表板,程序員可以查看日志和部署。

現(xiàn)在開始使用,只需在控制臺中輸入now即可??刂婆_將提示輸入電子郵件,填寫正確的電子郵件,并通過點擊驗證電子郵件。

登錄之后,讓我們來看看package.json中的啟動腳本。 Now.sh使用這個來啟動應用程序。這是scripts字段的樣子:

部署Node應用程序:一文看懂Heroku和Now.sh的最大區(qū)別!

讓我們開始將代碼部署到now.sh. 確保在代碼示例的根目錄下。要開始部署過程,只需點擊now即可。我想你可以看到developer experience,一切都可以用一個關(guān)鍵字now執(zhí)行!如果對應用程序進行更改,并且想要重新部署應用程序,那么只需在控制臺中點擊now即可。

應用程序的URL可以在控制臺日志中找到,有關(guān)部署或其他命令的更多常規(guī)日志可以在儀表板找到。

部署Node應用程序:一文看懂Heroku和Now.sh的最大區(qū)別!

  定制和定義環(huán)境變量

定制Now.sh部署的一種方法是使用now.json文件。但是,由于已經(jīng)使用了package.json文件,因此可以在now鍵下添加所需的自定義。此配置允許自定義應用程序名稱和別名,設置環(huán)境變量,指定部署類型并定義引擎。

部署Node應用程序:一文看懂Heroku和Now.sh的最大區(qū)別!

程序員也可以通過CLI設置環(huán)境變量:now -e NODE_ENV =“production”-e PORT =“3001”。

如果想提供一個dotenv文件,可以設置選項--dotenv,如果想使用.env.production而不是.env?,可以考慮用--dotenv=.env.production來解決。最后,還可以將生產(chǎn)dotenv文件添加到你的package.json。

部署Node應用程序:一文看懂Heroku和Now.sh的最大區(qū)別!

  有用的Now.sh命令

可以為部署添加一個別名:now alias deploy-url aliasname

列出所有部署與他們唯一的代碼:now ls

刪除部署:now rm unique-code

強制新建(如有問題):now-f

擴展web應用程序(免費版最多3個):now scale deployment-url3。有時,預測流量是不容易的。Now.sh允許設置自動縮放比例的最小值和最大值:now scale deployment-url min max。

監(jiān)視日志

日志輸出可以通過以下命令獲?。簄owlogs[deployment-url|deployment-id]。更高級的日志記錄也是可能的。

now logs-a-q"GET"-n10deployment-url:顯示包含單詞GET的10個最新日志。

now logs--since=20171028:顯示2017年10月28日的所有日志(ISO 8601格式)

點擊Now.sh儀表板中的應用程序也可以訪問日志。

Now.sh的OSS計劃

OSS計劃可以免費使用,并提供以下內(nèi)容:

帶寬:1GB

日志存儲高達100MB

無限的部署可能

并發(fā)實例限制為3個

不支持自定義域

最大文件大小:1MB

沒有自動擴展支持

比較

Heroku和Now.sh都提供了很好的功能。Now.sh通過提供易于使用的CLI更多地關(guān)注開發(fā)者的體驗。另一方面,Heroku更注重可視化的記錄,特別是用度量指標進行監(jiān)控。

就個人而言,我更喜歡簡單的Now.sh,現(xiàn)在只需使用一個關(guān)鍵字now來進行(重新)部署。對于Node應用程序,我喜歡在.package.json文件中添加now屬性來自定義Now.sh部署。不需要像Procfile Heroku所要求的那樣添加額外的文件。

這兩個平臺之間很難選擇, 但這只取決于你的喜好和需求。除了上述一些關(guān)于免費版本可以獲得的支持,從易用性方面來說,Now.sh或許更棒!

鏈接已復制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號