Render | 來試試用來取代 Heroku 的服務吧 - Render 的網路服務部署介紹!

神Q超人
Starbugs Weekly 星巴哥技術專欄
7 min readJan 27, 2023
https://render.com/

Hi!大家好,我是神 Q 超人!相信有許多人在去年 2022 Heroku 說要取消免費計劃的同時,就開始尋覓下個能夠繼續免費使用的平台 😂。就我來說畢竟也是有一些食之無味,棄之可惜的作品服務在那上面放著,而它們也都在免費計畫結束後就都掛了,像變心的女朋友一樣,不論給什麼 request 永遠等不到 response 回來。

而前陣子也比較忙,所以沒什麼時間去找這方面的資源,不過好不容易等到年假,終於可以來做一些平常沒時間做的事情,今天就振作起來將之前的作品放到新的平台吧!

Render

這篇文章中介紹要取代 Heroku 的服務叫做 Render,在 Render 的文件中可以看到,它支援非常多種語言的建構服務,幾乎涵蓋平常會用到的需求了,且值得一提的是 Render 能夠直接部署 Static Sites,雖然目前用不到,但也可以記下來如果之後有需要的話能知道有個地方可以丟:

https://render.com/docs

接下來看一下它的免費計畫內容,其實除了 Cron Jobs 外,其他都是免費的,以 Services 為例免費和付費版的差別就在 cpu、ram,還有一些額外的功能:

https://render.com/pricing#compute

另外需要注意的是免費計畫提供的建構時間是每月 500 分鐘,然後所有服務加起來的免費運行時間是每個月 450 個小時。也就是說如果一個服務的部署時間是 10 分鐘,那一個月內就可以部署 50 次,而 450 小時運行時間在只有一個服務,且 24 小時不間斷使用下可以用 18 天左右,所以如果是用量很高的服務就要考慮一下 Render 是否足夠了。

至於在 Heroku 上的自動休眠機制 Render 也有,如果有連續 15 分鐘未使用會進入休眠,休眠後的甦醒時間約是 30 秒。雖然甦醒時間有點久,但對於不超出免費時數這機制非常重要 😂。

最後要注意,每種類型的免費限制也都有一些不同,詳細內容可以看 這裡

部署網路服務

介紹完以後,就開始建立我們的服務啦!我要先從 Heroku 搬過來的 project 是用 Python 做的,Render 在文件中對每種語言要求的部署方式講得滿清楚的,以 Python 的 Flask 為例子,文件內容就這樣短短的一頁:

https://render.com/docs/deploy-flask

如果看不懂的話也可以點選文件中提供的範例 repository,它就提供了一個最簡短可部署的範例,我覺得這個真的很讚,這樣就不用到處找教學文章看了(咦?)

首先在 Render 上註冊一個帳號後,就能夠進入它的 Dashboard,如果什麼服務都還沒有的話應該會長這樣子:

初始的 https://dashboard.render.com/

這篇文章要建立的是一個 Web Services,所以就點 New Web Service 那個按鈕,會跳到下方的頁面:

在建立的頁面中,你可以連結你 GitHub 或 GitLab 中的公開或私人的 repository,那如果 repository 是公開也不想要連結 GitHub 的話,可以直接將 repository 的網址複製貼到下面的輸入框中點 Continue。下一步就會要求填寫服務的資訊,像是名稱、Branch(有新 commit 會自動部署)、環境、建構和開始的指令等等:

建立的服務資訊

再更下面一點會有選擇的計畫,如果還沒有綁定信用卡的話,應該就只會有免費計畫可以選擇:

最後的 Advanced 展開後會有其他額外的設置,包含環境變數或文件、是否要自動部署等等,都可以在這邊處理:

確定沒問題後就能點 Create Web Service 新增啦!新增完後就能看到剛剛新增的服務已經在部署中了。部署完成後就可以點選服務名稱下的網址測試看看服務是否正常,如果沒問題就大功告成了 🎉:

那既然有服務了,就想說是不是有個地方可以查看目前使用了多少免費額度,這裡也可以衡量看看 Render 的免費計畫是否適合你。首先點選右上角的名稱(如果在右上角沒看到名稱,可以先回到 Dashboard),點選後裡面會有個 Billing:

在 Billing 頁面裡面,就會有一個區塊能夠看到免費額度的使用情況,就我來說目前看起來應非常有餘裕,都忍不住要多搬幾個服務過來了。但也不用時刻緊盯著這個數字不放啦!因為 Render 會在接近或超過免費使用量的時候寄信和你說,然後因為超過額度被暫停的服務也會在每個月 1 號重置時恢復:

https://dashboard.render.com/billing

總結

最後來整理一下 Render 的免費計畫和它的優缺點,首先是優點的部分:

  1. 有免費計畫,且不用先綁信用卡,用起來比較安心
  2. 每個月免費 500 分鐘建構,和 450 小時免費使用時數
  3. 文件非常容易懂,且有包含一個最簡短可使用的專案直接參考(至少 Node 和 Python 都有)
  4. 目前似乎沒有看到免費計畫能夠建立的服務上限數(Heroku 是 5 個)

其他功能沒有用到,所以只以 Web Service 來說,缺點的部分目前只想到一個,那就是只能連結 GitHub 或 GitLab,雖然 private 的 repository 也可以,但如果還是有不想或不是上傳到 GitHub 或 GitLab 的專案,那就不能使用 Render 了。

多虧 Render,讓我將之前在 Line 上面做的機器人給復活了,本來想說可能會搞一陣子,但 Render 真的太容易使用了,結果不到一小時就把服務建好,算是了結一顆大石頭 😂,很推薦大家如果有 Side Project,然後又是放在 GitHub 或 GitLab 上的話,可以玩看看 Render!

最後如果大家有任何關於 Render 的新發現,或是有其他更棒能取代 Heroku 的服務再麻煩留言和我說!非常感謝! 🙏

--

--